Skip to main content
Counted per minute, per token — not per account and not per business. Every token you hold has its own minute, and a sync of yours running hot does not slow down the person using the app. The app gets more because it is a person tapping rather than a job running: one screen is a list, its images, a thread and an unread count, and somebody moves between screens faster than any sync runs.

Every response says where you stand

When you have run out:
Honour Retry-After. It is the number of seconds until the window rolls over, and retrying sooner only spends the next window’s room on being refused again.

Staying under it

Walk the inventory with fields[watches]=externalIdentifier,price,status, compare, and PATCH the listings that moved. A listing whose price has not changed is a write you both pay for and nobody needed.
filter[updatedSince] turns “walk the whole history” into one call per run.
Eight photographs uploaded one at a time is eight calls. imageSources on the listing is part of a call you were making anyway, and an unchanged set is not re-fetched at all.
600 a minute is 10 a second. A sync that fires everything at once and then waits is slower than one that paces itself, because half of it comes back 429.
A request that fails authentication still counts — against the anonymous bucket, by IP. Retrying a token that came back 401 will not start working, and sixty attempts a minute is all anyone gets at guessing.
Need more than this for something real? Say what you are building and we will raise it — the numbers are a starting point, not a policy.