retailerapi / docs

Rate limits + tokens

Two limits: tokens per month (your plan's allowance) and tokens per minute (your throttle).

Two limits

Every plan has:

  • Monthly token quota — total tokens you can spend in a billing cycle
  • Per-minute throttle — max tokens-per-minute burst allowed

Hit either and you get a 429 response with a Retry-After header.

Plan tiers

PlanPriceTokens / monthThrottle (TPM)
Free$01,0005
Starter$49/mo864,00020
Growth$119/mo2,592,00060
Pro$429/mo10,800,000100
Scale$819/mo21,600,000100
Business$1,399/mo43,200,000100
Enterprise$2,339+/mo86.4M+100

Throttle caps at 100 TPM in 2026 due to current upstream limits. Higher TPM ships when our backend supports it; talk to sales for early access.

Token costs per call

CallTokens
Base lookup (includes 90d price history + sales rank + velocity stats)1
+ include_offers_reviews (live sellers + review summary + top 5 reviews)+5
+ include_cross_retailer (Amazon, eBay, Lowe's, Target, Best Buy, Home Depot)+2
+ force_refresh+3
GET /v1/products/{id}/history (dedicated endpoint, server-filtered)2
GET /v1/products/{id}/reviews (dedicated endpoint)3
GET /v1/sellers/{id}2

How throttle works

Sliding-window per minute. We allow brief bursts up to 2x the throttle for short periods, then enforce strict limits. Heavy bulk-loaders should pace themselves at 80% of their plan's throttle to leave headroom.

Response headers

X-RateLimit-Tokens-Remaining: 998     # tokens left this billing cycle
X-RateLimit-Throttle-Limit: 60        # max TPM
X-RateLimit-Throttle-Remaining: 47    # TPM remaining now
X-RateLimit-Reset: 2026-06-01T00:00Z  # when monthly quota resets

What happens when you exceed

Both limits return 429 Too Many Requests. Different Retry-After semantics:

  • Throttle — Retry-After is a few seconds. Back off and retry.
  • Monthly quota — Retry-After is the next renewal date. Either upgrade or wait.

Quota-exceeded calls do NOT auto-charge overage; we fail closed. If you want to pay for spillover, contact sales or upgrade plan.

Best practices

  • Check X-RateLimit-Tokens-Remaining after each call to track burn rate
  • For batch jobs, throttle yourself at 80% of plan TPM to leave headroom for ad-hoc calls
  • Cache responses client-side when appropriate (titles, brands, images rarely change)
  • For routine lookups, the base call (1 token) already includes price history and stats — only add include_offers_reviews=true when you need live sellers or full review data
  • Use include_history=false only as a payload-size optimization; history is free and on by default