Commerce CensusContactRequest access

Rate limits

Limits are per key, reported on every response, and enforced with a token bucket so short bursts are fine and sustained overuse is not.

Headers
RateLimit-Limit: 600
RateLimit-Remaining: 573
RateLimit-Reset: 41            # seconds until the bucket refills
Retry-After: 12                # only on 429
PlanSustainedBurst
Test60 / min120
Starter600 / min1,200
Growth3,000 / min6,000
EnterpriseNegotiatedNegotiated

Backing off

On 429, wait `Retry-After` seconds. Do not retry immediately, and do not retry on a fixed interval — if many workers share a key they will synchronise and hammer the reset boundary together. Add jitter.

TypeScript
const wait = (Number(res.headers.get("Retry-After")) || 1) * 1000;
await sleep(wait + Math.random() * 500);   // jitter matters

Weights

Not every call costs one unit. A cross-seller compare does more work than a metadata lookup and is weighted accordingly; the weight consumed is returned in `RateLimit-Cost`.