Partner Data Projection Enabled contract
List product and variant records
Returns location-relevant product and variant facts with snapshot-bound pagination.
Runtime status: unavailable. This is a source contract, not a live access or availability guarantee. Learn more
GET
/partner/data/v1/productsRequest
| Parameter | Location | Requirement | Schema |
|---|---|---|---|
changedAfter | query | Optional | {"type":"string","format":"date-time"} |
changedBefore | query | Optional | {"type":"string","format":"date-time"} |
limit | query | Optional | {"type":"integer","minimum":1,"maximum":500,"default":100} |
cursor | query | Optional | {"type":"string","pattern":"^[A-Za-z0-9._~-]{32,4096}$"} |
smokestack-api-version | header | Required | {"type":"string","const":"2026-08-07"} |
x-smokestack-client-id | header | Required | {"type":"string"} |
x-smokestack-api-key | header | Required | {"type":"string"} |
x-request-id | header | Optional | {"type":"string"} |
x-correlation-id | header | Optional | {"type":"string"} |
Idempotency
This read-only contract does not declare a keyed replay policy. Do not assume a mutation replay guarantee.
Request examples
Templates for your server, not browser code. Replace every placeholder and use your approved origin. For requests with a body, construct request.json / requestBody / request_body from the schema.
# Replace placeholders using your approved server-side integration.
curl --request GET 'https://partner-api.invalid/partner/data/v1/products' \
--header 'smokestack-api-version: 2026-08-07' \
--header 'x-smokestack-client-id: <X_SMOKESTACK_CLIENT_ID>' \
--header 'x-smokestack-api-key: <X_SMOKESTACK_API_KEY>'Responses
200 Successful location-scoped response.
{
"description": "Successful location-scoped response.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataProductsResponse"
}
}
}
}400 Invalid request or cursor.
{
"description": "Invalid request or cursor.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataError"
}
}
}
}401 Client authentication required.
{
"description": "Client authentication required.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataError"
}
}
}
}403 The location credential does not permit this data set.
{
"description": "The location credential does not permit this data set.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataError"
}
}
}
}406 Unsupported contract revision.
{
"description": "Unsupported contract revision.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataError"
}
}
}
}429 Rate limit exceeded.
{
"description": "Rate limit exceeded.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
},
"Retry-After": {
"schema": {
"type": "integer"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataError"
}
}
}
}500 Unexpected internal error.
{
"description": "Unexpected internal error.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataError"
}
}
}
}503 Authoritative dependency unavailable.
{
"description": "Authoritative dependency unavailable.",
"headers": {
"SMOKESTACK-API-Version": {
"description": "The negotiated compatible contract revision.",
"schema": {
"type": "string",
"const": "2026-08-07"
}
},
"X-Request-ID": {
"description": "Request identifier.",
"schema": {
"type": "string"
}
},
"X-Correlation-ID": {
"description": "End-to-end correlation identifier.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PartnerDataError"
}
}
}
}Referenced schemas
Only schemas reachable from this operation are shown. The revision-pinned OpenAPI download includes their complete definitions.
PartnerDataProductsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"format": "uuid"
},
"variantId": {
"type": "string",
"format": "uuid"
},
"productSku": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"variantSku": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"variantName": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"category": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"productType": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"active": {
"type": "boolean"
},
"price": {
"type": "object",
"properties": {
"amountMinor": {
"type": "integer"
},
"currency": {
"type": "string",
"enum": [
"USD"
]
}
},
"required": [
"amountMinor",
"currency"
]
},
"netWeight": {
"type": "object",
"properties": {
"value": {
"type": "string",
"pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]{1,3})?$"
},
"unit": {
"type": "string",
"enum": [
"g",
"mg",
"oz",
"lb",
"ml",
"each"
]
},
"basis": {
"type": "string",
"enum": [
"product_mass",
"thc_mass"
]
}
},
"required": [
"value",
"unit",
"basis"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"changedAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"productId",
"variantId",
"productSku",
"variantSku",
"name",
"category",
"active",
"price",
"createdAt",
"changedAt"
]
}
},
"page": {
"type": "object",
"properties": {
"nextCursor": {
"type": "string",
"pattern": "^[A-Za-z0-9._~-]{32,4096}$"
},
"cursorExpiresAt": {
"type": "string",
"format": "date-time"
}
}
},
"meta": {
"type": "object",
"properties": {
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9._:~-]{1,256}$"
},
"correlationId": {
"type": "string",
"pattern": "^[A-Za-z0-9._:~-]{1,256}$"
},
"apiVersion": {
"type": "string",
"enum": [
"2026-08-07"
]
},
"generatedAt": {
"type": "string",
"format": "date-time"
},
"syncCheckpoint": {
"type": "string",
"format": "date-time"
},
"customerReferenceVersion": {
"type": "string",
"enum": [
"hmac-sha256-v1"
]
},
"dataset": {
"type": "string",
"enum": [
"locations",
"sales",
"products",
"inventory",
"customer_compliance"
]
},
"syncOverlapSeconds": {
"type": "number",
"enum": [
300
]
}
},
"required": [
"requestId",
"correlationId",
"apiVersion",
"generatedAt",
"syncCheckpoint",
"customerReferenceVersion",
"dataset",
"syncOverlapSeconds"
]
}
},
"required": [
"data",
"page",
"meta"
]
}PartnerDataError
{
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": [
"invalid_request",
"authentication_required",
"permission_denied",
"api_version_not_supported",
"invalid_cursor",
"rate_limited",
"upstream_unavailable",
"internal_error"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9._:~-]{1,256}$"
},
"correlationId": {
"type": "string",
"pattern": "^[A-Za-z0-9._:~-]{1,256}$"
},
"retryable": {
"type": "boolean"
},
"details": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"code",
"message",
"requestId",
"correlationId",
"retryable"
]
}