Rate limits
Over a limit, the API returns
429 RATE_LIMITED. The per-store and failed-key limits include a Retry-After header (seconds). For the per-guest and share limits, wait a few seconds before retrying.
Pagination
List endpoints use page numbers.
Paged responses include:
hasNextPage is true. To match the storefront, use the merchant’s page sizes from GET /settings: widgetSettings.wishlistPerPage for lists and widgetSettings.wishlistDetailItemsPerPage for items.
GET /wishlists pages the lists, and each list contains all its items. GET /wishlists/{wishlistId} pages the items of one list.Versions
Every response has anAPI-Version header (currently 1.0.0). New fields and endpoints are added to v1 without notice, so ignore fields you do not recognise. Breaking changes ship as a new base path (/api/v2).
When a version is deprecated, responses also include:
410 VERSION_RETIRED. Show an “Update your app” message when you get it.
Idempotency
There are no idempotency keys. These calls are safe to repeat:PUT /products/{productId}/wishlists: sends the final state.POST /guest-wishlists/claimPOST /wishlists/{wishlistId}/share-links: returns the same unused link.- Bulk add with
items[]: skips variants already in the list.
409. Treat that as success if you are retrying.