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
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
Send only what changed
Send only what changed
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.Pull orders incrementally
Pull orders incrementally
filter[updatedSince] turns “walk the whole history” into one call per run.Let us fetch your images
Let us fetch your images
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.Spread a big run
Spread a big run
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.