Skip to main content
These hold across every endpoint. Knowing them up front saves a lot of trial and error.

Base URL

There is no /api prefix. Paths start straight at the resource:

Store scoping

Nearly every path begins /stores/{storeId}/…, because almost everything belongs to a store rather than to your account. GET /user returns your account with its stores, and each store’s id is the {storeId} used everywhere else. An account can hold several stores, so treat the store ID as a required piece of configuration in your integration, not something to hardcode once and forget.

IDs

UUIDs, in the standard hyphenated form:
Stores, products, variants, orders, customers and coupons all use them. They’re opaque - don’t parse or generate them.

Dates

ISO 8601, in UTC:
Filters accept either a full timestamp or just the date, e.g. dateFrom>=2026-01-15.

Enums

Sent and returned as integers, not names. A product’s visibility is 0, not "Public".

Enums & Constants

Every enum value the API accepts and returns.
Order status and payment gateway are the exceptions - both are strings, documented on Order Status and Payment Methods.

Money

Decimal values in the store’s own currency, with currencyCode on the store telling you which. There’s no minor-unit convention to decode: 29.99 means 29.99. Amounts a buyer paid can differ from the order total on split payments, and crypto orders carry the amount actually received - check both rather than assuming.

Paging

List endpoints also take filters and sorts.

Filtering & Sorting

Operators, combining conditions, sorting and paging.

Fair use

Requests are rate limited. On a 429, back off and retry with increasing delays, and cache anything that doesn’t change often. If you’re polling for order updates, use webhooks instead. They’re signed, logged and retried, and they’ll reach you sooner than any poll interval you’d be comfortable running.
Last modified on August 2, 2026