Products API
Products represent items that can be distributed through experiences. Use these endpoints to create, manage, and organize products with their variants and media assets.Create Product
Create a new product or update an existing one (upsert when sync source is provided).POST /api/v1/products
Authentication
- Secret key required
Request Body
Response
Example
Upsert with Sync Source
When a sync source is provided, the endpoint will update an existing product with matching sync source:List Products
List all products in your organization.GET /api/v1/products
Authentication
- Secret key required
Query Parameters
| Parameter | Type | Description |
|---|---|---|
include | string | Relations to include (variants, mediaAssets) |
Example
Search Products
Search for products by sync source.GET /api/v1/products/search
Authentication
- Secret key required
Query Parameters
| Parameter | Type | Description |
|---|---|---|
syncSource | string | Sync source type (e.g., shopify) |
syncSourceId | string | External ID from the sync source |
Example
Get Product
Get a single product by ID.GET /api/v1/products/:productId
Authentication
- Secret key required
Path Parameters
| Parameter | Type | Description |
|---|---|---|
productId | string | The product ID |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
include | string | Relations to include (default: mediaAssets) |
Example
Error Responses
| Status | Error | Description |
|---|---|---|
| 404 | Product not found | Product ID does not exist |
Update Product
Update an existing product.PUT /api/v1/products/:productId
Authentication
- Secret key required
Path Parameters
| Parameter | Type | Description |
|---|---|---|
productId | string | The product ID |
Request Body
Example
Delete Product
Archive a product.DELETE /api/v1/products/:productId
Authentication
- Secret key required
Path Parameters
| Parameter | Type | Description |
|---|---|---|
productId | string | The product ID |
Example
Product Media Assets
Add Media Asset
Add a media asset to a product.POST /api/v1/products/:productId/media-assets
Request Body
Example
List Media Assets
GET /api/v1/products/:productId/media-assets
Update Media Asset
PUT /api/v1/products/:productId/media-assets/:assetId
Reorder Media Assets
PUT /api/v1/products/:productId/media-assets/reorder
Example
Remove Media Asset
DELETE /api/v1/products/:productId/media-assets/:assetId
Product Variant Options
Get Assigned Options
Get variant options assigned to a product.GET /api/v1/products/:productId/variant-options
Response
Example
Assign Options
Assign variant options to a product.POST /api/v1/products/:productId/variant-options
Request Body
Example
Remove Option
Remove a variant option from a product.DELETE /api/v1/products/:productId/variant-options/:optionId
Error Responses
| Status | Error | Description |
|---|---|---|
| 409 | Cannot remove: variants exist | Delete variants using this option first |
Product Variants
Create Variant
POST /api/v1/products/:productId/variants
Request Body
Example
List Variants
GET /api/v1/products/:productId/variants
Update Variant
PUT /api/v1/products/:productId/variants/:variantId
Delete Variant
DELETE /api/v1/products/:productId/variants/:variantId