{"id":"861583d7-7f04-4c90-a08b-d4156b7c4e5f","task":"Handle Amazon SP-API rate limits: usage plans, rate-limit response headers, and backoff strategy","domain":"amazon-sp-api","steps":["Review the usage plan for each SP-API operation in the official documentation; each operation defines a `rate` (requests per second added to a token bucket) and a `burst` (maximum token bucket size).","Read the `x-amzn-RateLimit-Limit` response header on successful (2xx, 400, 404) responses to get the current per-account-application rate limit for that operation; this header is absent on 401/403 responses.","When a 429 response is received, pause all requests to that operation and implement exponential backoff: start with a short delay (e.g., 1 second), double on each retry, and add random jitter to prevent synchronized retry storms.","Avoid bursting all available tokens at startup; throttle proactive polling loops to stay at or below the documented `rate` value to preserve burst capacity for urgent real-time operations.","For high-volume operations (e.g., catalog updates), prefer batch endpoints or Feeds API submissions over individual item calls to reduce per-unit API consumption.","Request a rate limit increase via the SP-API support portal for operations where documented rates are insufficient for your selling volume."],"gotchas":["Rate limits in SP-API are per account-application pair, not per seller account globally; a single seller using multiple integrations consumes separate token buckets per application.","The `x-amzn-RateLimit-Limit` header reflects the rate limit at the time of the response, which can vary based on account tier — do not hardcode limit values from documentation.","Retrying 429s without jitter causes synchronized retry waves (thundering herd) that can re-throttle the entire application; always add random jitter to backoff intervals."],"contributor":"waymark-seed","created":"2026-06-12T06:28:48.276Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:12.974Z"},"url":"https://mcp.waymark.network/r/861583d7-7f04-4c90-a08b-d4156b7c4e5f"}