Connectors
Connectors sync your Pixee PIM catalog with e-commerce platforms, marketplaces, and headless commerce engines.
Supported platforms (15): Shopify, BigCommerce, Salesforce Commerce Cloud (SFCC), SAP Commerce, Wizishop, Cdiscount, Fnac, Sylius, Squarespace, Google Merchant Center, Mirakl, Medusa, Shopware 6, Saleor, Amazon SP-API.
WooCommerce, Magento 2, Dolibarr, Sage X3, PrestaShop, and Odoo are not part of this public REST API — they have dedicated sync modules covered on docs.pixeepim.com. Only their inbound webhook/push endpoints are exposed here (see Inbound webhooks).
All mutating connector endpoints require the MANAGE_SETTINGS permission. External URLs are validated against an SSRF allowlist. Credentials are stored Fernet-encrypted.
Platform catalog
Before creating a connector, browse the static platform registry to discover a platform's id, required credentials, and field mapping.
List platforms
Returns all 15 supported platforms with their tier, auth type, and capabilities.
Query parameters
- Name
tier- Type
- integer
- Description
Filter by tier:
1(high),2(medium),3(FR market),4(extra).
- Name
category- Type
- string
- Description
Filter by category:
e-commerce,marketplace, orenterprise.
Request
curl "https://api.pixeepim.com/api/v1/connectors/platforms?tier=1" \
-H "X-API-Key: {api_key}"
Response
[
{
"id": "shopify",
"name": "Shopify",
"tier": 1,
"auth_type": "api_key",
"capabilities": [
"push_products", "pull_products", "push_stock", "pull_stock",
"push_prices", "push_images", "push_categories", "receive_webhook"
],
"description": "Plateforme e-commerce hébergée. Auth via Private App Access Token.",
"logo_path": "/static/logos/shopify.svg",
"webhook_path": "/api/v1/connectors/shopify/webhook",
"is_marketplace": false,
"category": "e-commerce"
}
]
Get a platform
Returns the full definition of a single platform, including its config_schema (the credential fields required to create a connector for it).
Path parameters
- Name
platform_id- Type
- string
- Description
Platform identifier (e.g.
shopify,amazon_sp_api,google_merchant_center).
Request
curl https://api.pixeepim.com/api/v1/connectors/platforms/shopify \
-H "X-API-Key: {api_key}"
Platform field map
Returns the default field mapping between Pixee PIM fields and the platform's own field names (e.g. title → variants[0].barcode for Shopify's EAN).
Path parameters
- Name
platform_id- Type
- string
- Description
Platform identifier.
Request
curl https://api.pixeepim.com/api/v1/connectors/platforms/shopify/field-map \
-H "X-API-Key: {api_key}"
Platform guide
Returns the platform's integration guide (setup steps, where to find API credentials).
Path parameters
- Name
platform_id- Type
- string
- Description
Platform identifier.
Query parameters
- Name
format- Type
- string
- Description
Response format, e.g.
markdown.
Request
curl "https://api.pixeepim.com/api/v1/connectors/platforms/shopify/guide?format=markdown" \
-H "X-API-Key: {api_key}"
Sync status (dashboard)
Returns an aggregated sync status for your active connectors — a compact feed suited to a dashboard widget.
Query parameters
- Name
limit- Type
- integer
- Description
Maximum number of connectors to return.
Request
curl "https://api.pixeepim.com/api/v1/connectors/sync-status?limit=10" \
-H "X-API-Key: {api_key}"
Response
[
{
"id": "550e8400-e29b-41d4-a716-000000000010",
"platform_id": "shopify",
"name": "My Shopify Store",
"is_active": true,
"status": "active",
"last_sync_at": "2026-09-14T08:00:00Z",
"last_job": {
"job_type": "push_products",
"status": "completed",
"pushed": 1250,
"errors": 0
}
}
]
Connectors
List connectors
Returns all connectors configured on your account, as a plain array (not paginated).
The trailing slash is required — redirect_slashes=False is active on this router.
Request
curl https://api.pixeepim.com/api/v1/connectors/ \
-H "X-API-Key: {api_key}"
Response
[
{
"id": "550e8400-e29b-41d4-a716-000000000010",
"platform_id": "shopify",
"name": "My Shopify Store",
"description": "EU storefront",
"is_active": true,
"status": "active",
"status_message": null,
"last_tested_at": "2026-09-14T07:55:00Z",
"last_sync_at": "2026-09-14T08:00:00Z",
"created_at": "2026-01-15T00:00:00Z"
}
]
Create a connector
Creates a connector instance for a platform. credentials follows the config_schema returned by Get a platform.
Body parameters
- Name
platform_id- Type
- string
- Description
Platform identifier (see List platforms).
- Name
name- Type
- string
- Description
Descriptive name for this connector instance.
- Name
description- Type
- string
- Description
Optional free-text description.
- Name
credentials- Type
- object
- Description
Platform-specific credentials (API key, shop domain, OAuth tokens, etc.). Stored Fernet-encrypted.
- Name
sync_options- Type
- object
- Description
Platform-specific sync options (default:
{}).
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/ \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"platform_id": "shopify",
"name": "My Shopify Store",
"credentials": {
"shop_domain": "my-store.myshopify.com",
"access_token": "shpat_..."
}
}'
Response
{
"id": "550e8400-e29b-41d4-a716-000000000010",
"platform_id": "shopify",
"name": "My Shopify Store",
"is_active": true,
"status": "pending",
"created_at": "2026-09-17T10:00:00Z"
}
Get a connector
Returns a specific connector and its current status.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Request
curl https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010 \
-H "X-API-Key: {api_key}"
Response
{
"id": "550e8400-e29b-41d4-a716-000000000010",
"platform_id": "shopify",
"name": "My Shopify Store",
"description": "EU storefront",
"is_active": true,
"status": "active",
"status_message": null,
"last_tested_at": "2026-09-14T07:55:00Z",
"last_sync_at": "2026-09-14T08:00:00Z",
"created_at": "2026-01-15T00:00:00Z"
}
Update a connector
Updates a connector's name, description, credentials, sync options, or active flag. All fields are optional — only supplied fields are changed.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Body parameters
- Name
name- Type
- string
- Description
Updated name.
- Name
description- Type
- string
- Description
Updated description.
- Name
credentials- Type
- object
- Description
Replaces the stored credentials object.
- Name
sync_options- Type
- object
- Description
Replaces the stored sync options object.
- Name
is_active- Type
- boolean
- Description
Enable or disable the connector.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"is_active": false}'
Delete a connector
Removes a connector. Past sync job history is retained.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Request
curl -X DELETE https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010 \
-H "X-API-Key: {api_key}"
Test a connector
Tests the connection to the platform (authentication, reachability). Does not sync any data.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010/test \
-H "X-API-Key: {api_key}"
Response
{
"success": true,
"status": "ok",
"message": "Connection successful"
}
Sync job history
Returns the recent sync job history for a connector.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Query parameters
- Name
limit- Type
- integer
- Description
Maximum number of jobs to return.
Request
curl "https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010/jobs?limit=20" \
-H "X-API-Key: {api_key}"
Response
[
{
"id": "550e8400-e29b-41d4-a716-000000000011",
"job_type": "push_products",
"status": "completed",
"trigger": "manual",
"pushed": 2,
"pulled": 0,
"updated": 1,
"errors": 0,
"skipped": 0
}
]
Sync operations
Each sync direction is a separate endpoint. All four enqueue a Celery task on the connectors queue and return an acknowledgement immediately; track progress via Sync job history or Get a sync job status.
Push products
Pushes catalog data from Pixee PIM to the connected platform. Products are sent in chunks of 100.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Body parameters
- Name
product_ids- Type
- array
- Description
Optional list of product UUIDs to push. Pushes the entire catalog if omitted.
- Name
since_timestamp- Type
- string
- Description
Optional ISO 8601 datetime — pushes only products modified since this timestamp.
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010/sync/push-products \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"product_ids": [
"550e8400-e29b-41d4-a716-446655440000",
"550e8400-e29b-41d4-a716-446655440001"
]
}'
Response
{
"success": true,
"status": "processing",
"message": "Push products queued"
}
Pull products
Pulls product data from the connected platform into Pixee PIM. Existing products are matched by external ID or EAN and updated; new products are created.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Body parameters
- Name
since_timestamp- Type
- string
- Description
Optional ISO 8601 datetime — pulls only items modified since this timestamp.
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010/sync/pull-products \
-H "X-API-Key: {api_key}"
Response
{
"success": true,
"status": "processing",
"message": "Pull products queued"
}
Push stock
Pushes current stock levels from Pixee PIM to the connected platform. This is a lightweight operation — only stock quantities are transmitted.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010/sync/push-stock \
-H "X-API-Key: {api_key}"
Response
{
"success": true,
"status": "processing",
"message": "Push stock queued"
}
Push prices
Pushes pricing data to the connected platform. The connector uses the matching price list for the platform's channel if one is configured; otherwise it falls back to the product's base price.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010/sync/push-prices \
-H "X-API-Key: {api_key}"
Response
{
"success": true,
"status": "processing",
"message": "Push prices queued"
}
Get a sync job status
Returns the current status of a specific sync job triggered by one of the endpoints above.
Path parameters
- Name
connector_id- Type
- string
- Description
The connector ID.
- Name
job_id- Type
- string
- Description
The sync job ID.
Request
curl https://api.pixeepim.com/api/v1/connectors/550e8400-e29b-41d4-a716-000000000010/sync/jobs/550e8400-e29b-41d4-a716-000000000011 \
-H "X-API-Key: {api_key}"
Response
{
"id": "550e8400-e29b-41d4-a716-000000000011",
"job_type": "push_products",
"status": "completed",
"pushed": 2,
"errors": 0
}
Inbound webhooks
Some platforms push data or events into Pixee PIM instead of (or in addition to) being pulled. These endpoints are called by the platform itself, not by your integration.
Shopify
Receives Shopify webhook events (order/product changes). Verified via X-Shopify-Hmac-Sha256 against the connector's stored webhook secret.
Headers
- Name
x-shopify-hmac-sha256- Type
- string
- Description
HMAC-SHA256 signature of the raw request body, base64-encoded.
- Name
x-shopify-topic- Type
- string
- Description
Event topic (e.g.
products/update).
- Name
x-shopify-webhook-id- Type
- string
- Description
Shopify's delivery ID — used for replay protection (24h Redis dedup).
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/shopify/webhook \
-H "X-Shopify-Hmac-Sha256: {signature}" \
-H "X-Shopify-Topic: products/update" \
-H "X-Shopify-Webhook-Id: {delivery_id}" \
-H "Content-Type: application/json" \
-d '{ "id": 123456789, "title": "Updated product" }'
WooCommerce
Receives WooCommerce webhook events. Verified via X-WC-Webhook-Signature.
Headers
- Name
x-wc-webhook-signature- Type
- string
- Description
HMAC-SHA256 signature, base64-encoded.
- Name
x-wc-webhook-topic- Type
- string
- Description
Event topic (e.g.
product.updated).
- Name
x-wc-webhook-delivery-id- Type
- string
- Description
Delivery ID — used for replay protection (24h Redis dedup).
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/woocommerce/webhook \
-H "X-WC-Webhook-Signature: {signature}" \
-H "X-WC-Webhook-Topic: product.updated" \
-H "Content-Type: application/json" \
-d '{ "id": 42, "name": "Updated product" }'
BigCommerce
Receives BigCommerce webhook events. Verified via a shared X-Webhook-Token.
Headers
- Name
X-Webhook-Token- Type
- string
- Description
Shared token configured on the connector.
- Name
X-BC-Webhook-Id- Type
- string
- Description
BigCommerce's webhook ID — used for replay protection (24h Redis dedup).
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/bigcommerce/webhook \
-H "X-Webhook-Token: {token}" \
-H "X-BC-Webhook-Id: {webhook_id}" \
-H "Content-Type: application/json" \
-d '{ "scope": "store/product/updated", "data": { "id": 42 } }'
Magento 2
Receives push notifications from a Magento 2 instance, authenticated with Basic Auth.
Magento 2 has its own dedicated sync module (/api/v1/magento/) for full catalog sync, documented on docs.pixeepim.com. This endpoint only covers the inbound push notification.
Headers
- Name
authorization- Type
- string
- Description
Basiccredentials configured on the connector.
- Name
x-magento-webhook-id- Type
- string
- Description
Delivery ID — used for replay protection (24h Redis dedup).
Request
curl -X POST https://api.pixeepim.com/api/v1/connectors/magento/push \
-H "Authorization: Basic {base64_credentials}" \
-H "X-Magento-Webhook-Id: {delivery_id}" \
-H "Content-Type: application/json" \
-d '{ "sku": "ART-001", "qty": 42 }'