Going over answers
429 with code: "rate_limited" and a Retry-After header giving
the wait in seconds. Honour it — the window does not reset faster because you keep
asking.
Budgeting a sync
Three properties of the API keep a well-shaped integration comfortably inside the quota:- Unchanged pushes are cheap for you to skip. Both inbound contracts are idempotent
PUTs keyed by your own identifier, so you can safely push only what changed since your last sync — and re-push everything after any doubt. - Unchanged photo URLs cost nothing, so a full catalogue push does not re-process images — see Properties.
- Read
RateLimit-Remainingas you go rather than counting requests yourself, and smooth large syncs over the hour rather than bursting them.
The token exchange is counted separately
POST /v1/token has its own, separate ceiling — it does not draw from the 600. Mint
one token per batch of work, not one per request: a token lives fifteen minutes by
default, which is an entire sync’s worth of calls under one exchange. An integration
that exchanges a key per request will meet the exchange’s ceiling long before the
contract quota.