Products

Products are the core resource of Pixee PIM. Each product is uniquely identified by its EAN (European Article Number).


GET/products

List products

Returns a paginated list of products in your catalog.

Query parameters

  • Name
    skip
    Type
    integer
    Description

    Number of items to skip (default: 0).

  • Name
    limit
    Type
    integer
    Description

    Items per page, max 500 (default: 50).

  • Name
    search
    Type
    string
    Description

    Full-text search on name, EAN, or SKU.

  • Name
    is_active
    Type
    boolean
    Description

    Filter by active/inactive status.

  • Name
    supplier_id
    Type
    string
    Description

    Filter by supplier UUID.

  • Name
    sort_by
    Type
    string
    Description

    Sort field: created_at, name, or price.

  • Name
    sort_order
    Type
    string
    Description

    Sort direction: asc or desc.

Request

GET
/products
curl "https://api.pixeepim.com/api/v1/products?skip=0&limit=50&is_active=true" \
  -H "Authorization: Bearer {api_key}"

Response

{
  "items": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "ean": "3760000000001",
      "name": "Produit exemple",
      "price": 29.99,
      "cost_price": 18.00,
      "weight": 0.5,
      "is_active": true,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-03-10T14:22:00Z"
    }
  ],
  "meta": {
    "total": 1234,
    "page": 1,
    "per_page": 50,
    "total_pages": 25,
    "has_next": true,
    "has_previous": false
  }
}

GET/products/{id}

Get a product

Retrieves a single product by its UUID.

Path parameters

  • Name
    id
    Type
    string
    Description

    The product UUID.

Request

GET
/products/{id}
curl https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer {api_key}"

Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "ean": "3760000000001",
  "name": "Produit exemple",
  "barcode": "3760000000001",
  "price": 29.99,
  "cost_price": 18.00,
  "weight": 0.5,
  "is_active": true,
  "created_at": "2026-01-15T10:30:00Z",
  "updated_at": "2026-03-10T14:22:00Z"
}

POST/products

Create a product

Creates a new product. The EAN must be unique.

Body parameters

  • Name
    ean
    Type
    string
    Description

    Product EAN (8 or 13 digits). Must be unique.

  • Name
    name
    Type
    string
    Description

    Product name (1–255 characters).

  • Name
    barcode
    Type
    string
    Description

    Barcode value (defaults to EAN if omitted).

  • Name
    price
    Type
    number
    Description

    Retail price (0–999 999.99).

  • Name
    cost_price
    Type
    number
    Description

    Cost / purchase price.

  • Name
    weight
    Type
    number
    Description

    Weight in kg (max: 99 999.99).

  • Name
    is_active
    Type
    boolean
    Description

    Whether the product is active (default: true).

Request

POST
/products
curl -X POST https://api.pixeepim.com/api/v1/products \
  -H "Authorization: Bearer {api_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "ean": "3760000000001",
    "name": "Produit exemple",
    "price": 29.99,
    "cost_price": 18.00,
    "weight": 0.5
  }'

Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "ean": "3760000000001",
  "name": "Produit exemple",
  "price": 29.99,
  "cost_price": 18.00,
  "weight": 0.5,
  "is_active": true,
  "created_at": "2026-03-15T09:00:00Z",
  "updated_at": "2026-03-15T09:00:00Z"
}

PATCH/products/{id}

Update a product

Partially updates a product. Only the fields you include will be changed.

Path parameters

  • Name
    id
    Type
    string
    Description

    The product UUID.

Body parameters

  • Name
    name
    Type
    string
    Description

    New product name.

  • Name
    price
    Type
    number
    Description

    Updated retail price.

  • Name
    cost_price
    Type
    number
    Description

    Updated cost price.

  • Name
    is_active
    Type
    boolean
    Description

    Enable or disable the product.

Request

PATCH
/products/{id}
curl -X PATCH https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer {api_key}" \
  -H "Content-Type: application/json" \
  -d '{"price": 24.99, "is_active": true}'

Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "ean": "3760000000001",
  "name": "Produit exemple",
  "price": 24.99,
  "is_active": true,
  "updated_at": "2026-03-15T10:00:00Z"
}

DELETE/products/{id}

Delete a product

Soft-deletes a product from your catalog (the record is retained for audit purposes).

Path parameters

  • Name
    id
    Type
    string
    Description

    The product UUID to delete.

Request

DELETE
/products/{id}
curl -X DELETE https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer {api_key}"

Response

{}

POST/products/bulk

Bulk create

Creates multiple products in a single request. Maximum 1,000 products per call.

Body parameters

  • Name
    products
    Type
    array
    Description

    Array of product objects. Each follows the same schema as the Create endpoint.

  • Name
    supplier_code
    Type
    string
    Description

    Optional supplier code to associate with all products.

  • Name
    skip_duplicates
    Type
    boolean
    Description

    Skip products with existing EANs instead of returning an error (default: false).

  • Name
    dry_run
    Type
    boolean
    Description

    Validate without persisting (default: false).

Request

POST
/products/bulk
curl -X POST https://api.pixeepim.com/api/v1/products/bulk \
  -H "Authorization: Bearer {api_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [
      {"ean": "3760000000001", "name": "Produit A", "price": 10.00},
      {"ean": "3760000000002", "name": "Produit B", "price": 20.00}
    ],
    "skip_duplicates": true
  }'

Response

{
  "created": 2,
  "skipped": 0,
  "errors": 0,
  "results": [...]
}

PATCH/products/bulk

Bulk update

Updates multiple products in a single request, matched by EAN.

Body parameters

  • Name
    products
    Type
    array
    Description

    Array of objects. Each must include ean plus the fields to update.

  • Name
    skip_not_found
    Type
    boolean
    Description

    Skip EANs that don't exist instead of returning an error (default: false).

  • Name
    dry_run
    Type
    boolean
    Description

    Validate without persisting (default: false).

Request

PATCH
/products/bulk
curl -X PATCH https://api.pixeepim.com/api/v1/products/bulk \
  -H "Authorization: Bearer {api_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [
      {"ean": "3760000000001", "price": 9.99},
      {"ean": "3760000000002", "is_active": false}
    ]
  }'

Response

{
  "updated": 2,
  "skipped": 0,
  "errors": 0
}

Was this page helpful?