SaaS Public API reference
Read-only OpenAPI 3.1 reference for 11 registered public API operations.
Use local/test tokens only. This reference does not execute requests. Registration does not mean an operation is enabled in the current release.
/api/v1/catalog/productsList catalog products
Scope:
catalog:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/Limit"
},
{
"$ref": "#/components/parameters/Before"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "Product page",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/catalog/products' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/catalog/products', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/catalog/products',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/ordersList orders
Scope:
orders:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/Limit"
},
{
"$ref": "#/components/parameters/Before"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "Order page",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrderPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/orders' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/orders', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/orders',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/webhooksList webhook subscriptions
Scope:
webhooks:manageAuth: bearerAuthParameters
[]
Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "Webhook subscriptions",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebhookList"
}
}
}
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/webhooks' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/webhooks', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/webhooks',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/webhooksCreate a webhook subscription
Scope:
webhooks:manageAuth: bearerAuthParameters
[]
Request and responses
{
"requestBody": {
"required": true,
"content": {
"application/json": {
"example": {
"event_type": "orders.created",
"endpoint_url": "https://webhooks.example.test/events"
},
"schema": {
"type": "object",
"required": [
"event_type",
"endpoint_url"
],
"properties": {
"event_type": {
"type": "string",
"example": "orders.created"
},
"endpoint_url": {
"type": "string",
"format": "uri",
"pattern": "^(?![\\s\\S]*\\s)https://[A-Za-z0-9.-]+(?::[0-9]{1,5})?(?:/[^#]*)?$",
"maxLength": 2048,
"description": "HTTPS subscription endpoint; fragments, credentials, whitespace, and non-HTTPS schemes are rejected."
}
}
}
}
}
},
"responses": {
"201": {
"description": "Created or reactivated subscription. The signing secret is returned once in this response.",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebhookCreateResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"413": {
"$ref": "#/components/responses/PayloadTooLarge"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request POST 'https://example.com/api/v1/webhooks' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'
--header 'Content-Type: application/json'
--data '{"event_type":"orders.created","endpoint_url":"https://webhooks.example.test/events"}'javascript
fetch('https://example.com/api/v1/webhooks', {
method: 'POST',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>',
'Content-Type': 'application/json'
},
body: JSON.stringify({"event_type":"orders.created","endpoint_url":"https://webhooks.example.test/events"})
});python
requests.request(
'POST',
'https://example.com/api/v1/webhooks',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>', 'Content-Type': 'application/json'},
json={"event_type":"orders.created","endpoint_url":"https://webhooks.example.test/events"}
)/api/v1/webhooks/{id}Disable a webhook subscription
Scope:
webhooks:manageAuth: bearerAuthParameters
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "Subscription disabled",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebhookDisableResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request DELETE 'https://example.com/api/v1/webhooks/{id}' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'javascript
fetch('https://example.com/api/v1/webhooks/{id}', {
method: 'DELETE',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'DELETE',
'https://example.com/api/v1/webhooks/{id}',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/customersList customer contacts
Scope:
customers:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/ReadLimit"
},
{
"$ref": "#/components/parameters/ReadBefore"
},
{
"$ref": "#/components/parameters/ReadBeforeId"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "A tenant-isolated page with the exact documented fields.",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomerPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/customers' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/customers', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/customers',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/discountsList active discounts
Scope:
discounts:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/ReadLimit"
},
{
"$ref": "#/components/parameters/ReadBefore"
},
{
"$ref": "#/components/parameters/ReadBeforeId"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "A tenant-isolated page with the exact documented fields.",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActiveDiscountPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/discounts' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/discounts', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/discounts',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/inventory/locationsList inventory locations
Scope:
inventory:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/ReadLimit"
},
{
"$ref": "#/components/parameters/ReadBefore"
},
{
"$ref": "#/components/parameters/ReadBeforeId"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "A tenant-isolated page with the exact documented fields.",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InventoryLocationPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/inventory/locations' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/inventory/locations', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/inventory/locations',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/inventory/levelsList inventory levels
Scope:
inventory:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/ReadLimit"
},
{
"$ref": "#/components/parameters/ReadBefore"
},
{
"$ref": "#/components/parameters/ReadBeforeId"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "A tenant-isolated page with the exact documented fields.",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InventoryLevelPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/inventory/levels' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/inventory/levels', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/inventory/levels',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/inventory/movementsList inventory movements
Scope:
inventory:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/ReadLimit"
},
{
"$ref": "#/components/parameters/ReadBefore"
},
{
"$ref": "#/components/parameters/ReadBeforeId"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "A tenant-isolated page with the exact documented fields.",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InventoryMovementPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/inventory/movements' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/inventory/movements', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/inventory/movements',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)/api/v1/storeRead store identity
Scope:
store:readAuth: bearerAuthParameters
[
{
"$ref": "#/components/parameters/ReadLimit"
},
{
"$ref": "#/components/parameters/ReadBefore"
},
{
"$ref": "#/components/parameters/ReadBeforeId"
}
]Request and responses
{
"requestBody": null,
"responses": {
"200": {
"description": "A tenant-isolated page with the exact documented fields.",
"headers": {
"RateLimit-Limit": {
"$ref": "#/components/headers/RateLimitLimit"
},
"RateLimit-Remaining": {
"$ref": "#/components/headers/RateLimitRemaining"
},
"RateLimit-Reset": {
"$ref": "#/components/headers/RateLimitReset"
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StoreIdentityPage"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/FeatureUnavailable"
},
"429": {
"$ref": "#/components/responses/RateLimited"
},
"500": {
"$ref": "#/components/responses/ServerError"
},
"503": {
"$ref": "#/components/responses/RateLimitUnavailable"
}
}
}Safe examples
curl
curl --request GET 'https://example.com/api/v1/store' \ --header 'Authorization: Bearer <ACCESS_TOKEN>'
javascript
fetch('https://example.com/api/v1/store', {
method: 'GET',
headers: {
Authorization: 'Bearer <ACCESS_TOKEN>'
}
});python
requests.request(
'GET',
'https://example.com/api/v1/store',
headers={'Authorization': 'Bearer <ACCESS_TOKEN>'}
)