Conventions
Conventions
These rules apply to every endpoint in the API. Reading them once will save you
from surprises on individual resources.
JSON in, JSON out
Send Content-Type: application/json on requests with a body. Responses are
always JSON.
Field naming
Request bodies accept either camelCase or snake_case — priceCents and
price_cents are equivalent. Responses include both forms for each field,
plus an id, so you can read whichever your code prefers:
{
"id": "b1a2…",
"priceCents": 1999,
"price_cents": 1999,
"createDate": "2026-07-11T09:30:00Z",
"updateDate": "2026-07-11T09:30:00Z"
}
Identifiers
All resource ids are UUID strings. Where an endpoint accepts a natural key as an
alternative (for example a product sku or a warehouse warehouseCode), it is
called out on that endpoint's page.
Money
All monetary amounts are integer minor units (cents), never decimals. A
price of USD 19.99 is 1999. Amounts appear as priceCents, unitPriceCents,
grandTotalCents, and so on. Currency is a three-letter ISO code such as USD
or INR.
Pagination
List endpoints are offset-based:
| Parameter | Meaning | Default | Range |
|---|---|---|---|
limit |
Page size | 50 |
1–200 |
offset |
Rows to skip | 0 |
0+ |
A list response wraps the rows with the total count and the echoed paging
window:
{
"data": [ { "id": "…" }, { "id": "…" } ],
"total": 137,
"limit": 50,
"offset": 0
}
To page through everything, keep requesting with offset += limit until
offset + len(data) >= total.
Filtering and search
| Parameter | Purpose |
|---|---|
q |
Free-text substring search over the resource's searchable columns |
websiteId |
Scope results to one storefront (and, for products, price them in that storefront's currency) |
filters |
A JSON object of column/value constraints (generic resource layer) |
Example:
curl "https://api-v1.zingasuite.com/papi/v1/products?q=wax&limit=20&websiteId=<uuid>" \
-H "Authorization: Bearer zk_live_xxx"
Timestamps
Timestamps are ISO-8601 in UTC. Where present, createDate / updateDate (and
resource-specific fields such as placedAt) reflect create and last-modified
times.
Idempotency & retries
Writes are not automatically deduplicated. When creating orders or other
records from an external system, pass your own reference in the externalId
field where the endpoint supports it, and check for an existing record before
retrying after a network error.