Supplier image API
API for syncing product images between the PIM and desktop tools or DAM workflows. It does not replace the customer catalog API — it is for supplier staff managing media.
Base URL: /api/supplier/v1
OpenAPI spec: /api/supplier/openapi.yaml
Interactive API reference
Browse the full endpoint reference (parameters, schemas, and response examples) in the interactive API reference.
Authentication
You can obtain a Bearer token in either of these ways:
- Company settings → API tokens in the supplier workspace (
/app) — create a named token and copy it once from the modal (recommended for integrations). POST /api/supplier/v1/auth/loginwith your supplier staff email and password (same credentials as/app/login).
Store the token and send it on all subsequent requests:
Authorization: Bearer {token}
Staff must have accepted their invitation before login succeeds. Use GET /api/supplier/v1/auth/me to verify the session and POST /api/supplier/v1/auth/logout to revoke the token.
Sync workflow
- Initial sync —
GET /api/supplier/v1/imageswithoutupdated_sincefor the full image index and empty product folders. - Incremental sync —
GET /api/supplier/v1/images?updated_since={iso8601}for created, updated, and deleted records. - Download — for active records (
deleted_atis null andis_folderis false), download from theurlfield. Comparecontent_hashto skip unchanged files. - Empty folders — records with
is_folder: trueare products without images yet. Create the local directory atfolder_path(for examplesuppliers/{id}/products/{sku}/) so users know where to drop files. - Tombstones — records with
deleted_atset mean remove the matching local file. - Push changes:
- New file →
POST /api/supplier/v1/products/{sku}/images - Replace →
PUT /api/supplier/v1/products/{sku}/images/{filename} - Delete →
DELETE /api/supplier/v1/images/{id}
- New file →
Images are stored at suppliers/{supplier_id}/products/{sku}/{filename}. Thumbnails under thumbs/ are generated server-side.
Endpoints summary
| Endpoint | Description |
|---|---|
POST /auth/login |
Obtain Bearer token |
GET /auth/me |
Current user and supplier |
POST /auth/logout |
Revoke token |
GET /images |
Image index (paginated, optional updated_since) |
POST /products/{sku}/images |
Upload image |
PUT /products/{sku}/images/{filename} |
Replace image |
DELETE /images/{id} |
Delete image |