Rate limits
Requests are rate-limited per client to keep the platform healthy. If you exceed your allowance, the API responds with 429 Too Many Requests. Slow down and retry — successful requests aren't affected.
Handling 429s
Back off and retry rather than hammering the endpoint. If a Retry-After header is present, wait at least that long; otherwise use exponential backoff.
for (let attempt = 0; attempt < 5; attempt++) {
const res = await fetch(url, { headers })
if (res.status !== 429) return res
const wait = Number(res.headers.get("Retry-After")) || 2 ** attempt
await new Promise((r) => setTimeout(r, wait * 1000))
}Reduce load by caching access tokens until they expire, requesting only the data you need, and reacting to webhooks instead of polling for order updates.