curl --request POST \
--url 'https://api.sync.stateset.com/v1/tenants/{tenant_id}/products/catalog-feed' \
--header 'x-stateset-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"channel": "chat_gpt",
"format": "json",
"merchant": "Acme Outdoors",
"maxProducts": 1,
"target": {
"endpoint": "https://example.com/webhooks/stateset",
"bearerToken": "YOUR_API_KEY",
"headers": {}
}
}'
{
"tenantId": "acme-outdoors",
"success": true,
"channel": "chat_gpt",
"format": "json",
"productCount": 1,
"totalAvailable": 1,
"generatedAt": "2026-08-31T14:22:05Z",
"delivery": {},
"feed": {
"feedMetadata": {},
"channel": "chat_gpt",
"format": "json",
"tenantId": "acme-outdoors",
"generatedAt": "2026-08-31T14:22:05Z",
"totalAvailable": 1,
"products": [
{
"id": null,
"sku": null,
"title": null,
"description": null,
"brand": null,
"productCategory": null,
"gtin": null,
"mpn": null,
"price": null,
"availability": null,
"itemGroupId": null,
"sellerName": null,
"channelAttributes": null
}
]
}
}
Generate or publish a product catalog feed for ChatGPT, TikTok Shop, Google…
Catalog feed generated or delivered
POST
/
v1
/
tenants
/
{tenant_id}
/
products
/
catalog-feed
curl --request POST \
--url 'https://api.sync.stateset.com/v1/tenants/{tenant_id}/products/catalog-feed' \
--header 'x-stateset-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"channel": "chat_gpt",
"format": "json",
"merchant": "Acme Outdoors",
"maxProducts": 1,
"target": {
"endpoint": "https://example.com/webhooks/stateset",
"bearerToken": "YOUR_API_KEY",
"headers": {}
}
}'
{
"tenantId": "acme-outdoors",
"success": true,
"channel": "chat_gpt",
"format": "json",
"productCount": 1,
"totalAvailable": 1,
"generatedAt": "2026-08-31T14:22:05Z",
"delivery": {},
"feed": {
"feedMetadata": {},
"channel": "chat_gpt",
"format": "json",
"tenantId": "acme-outdoors",
"generatedAt": "2026-08-31T14:22:05Z",
"totalAvailable": 1,
"products": [
{
"id": null,
"sku": null,
"title": null,
"description": null,
"brand": null,
"productCategory": null,
"gtin": null,
"mpn": null,
"price": null,
"availability": null,
"itemGroupId": null,
"sellerName": null,
"channelAttributes": null
}
]
}
}
Path parameters
string
required
Tenant identifier
Request body
object
string
Catalog feed channel (default
chat_gpt)string
Catalog feed format (default
json)string
integer
object
Response
object
string
required
boolean
required
string
required
Catalog feed channel (default
chat_gpt)string
required
Catalog feed format (default
json)integer
required
integer
required
string (date-time)
required
object
Delivery result when a
target was supplied; null otherwiseobject
required
Show feed
Show feed
object
required
string
required
Catalog feed channel (default
chat_gpt)string
required
Catalog feed format (default
json)string
required
string (date-time)
required
integer
required
Status codes
| Code | Meaning |
|---|---|
200 | Catalog feed generated or delivered |
401 | Unauthorized |
424 | Database not configured |
curl --request POST \
--url 'https://api.sync.stateset.com/v1/tenants/{tenant_id}/products/catalog-feed' \
--header 'x-stateset-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"channel": "chat_gpt",
"format": "json",
"merchant": "Acme Outdoors",
"maxProducts": 1,
"target": {
"endpoint": "https://example.com/webhooks/stateset",
"bearerToken": "YOUR_API_KEY",
"headers": {}
}
}'
{
"tenantId": "acme-outdoors",
"success": true,
"channel": "chat_gpt",
"format": "json",
"productCount": 1,
"totalAvailable": 1,
"generatedAt": "2026-08-31T14:22:05Z",
"delivery": {},
"feed": {
"feedMetadata": {},
"channel": "chat_gpt",
"format": "json",
"tenantId": "acme-outdoors",
"generatedAt": "2026-08-31T14:22:05Z",
"totalAvailable": 1,
"products": [
{
"id": null,
"sku": null,
"title": null,
"description": null,
"brand": null,
"productCategory": null,
"gtin": null,
"mpn": null,
"price": null,
"availability": null,
"itemGroupId": null,
"sellerName": null,
"channelAttributes": null
}
]
}
}