Products
Products are the core resource of Pixee PIM. Each product is uniquely identified by its EAN (European Article Number).
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, orprice.
- Name
sort_order- Type
- string
- Description
Sort direction:
ascordesc.
Request
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 a product
Retrieves a single product by its UUID.
Path parameters
- Name
id- Type
- string
- Description
The product UUID.
Request
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"
}
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
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"
}
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
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 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
curl -X DELETE https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer {api_key}"
Response
{}
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
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": [...]
}
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
eanplus 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
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
}