Rate Limits & Pricing

Two access tiers: a free sandbox for prototyping against fixture data, and pay-as-you-go live access. No subscriptions, no monthly minimums, no seat counts.

Access tiers

TierCost
SandboxFree
Live (pay-as-you-go)$50 activation = $50 API credit, then per-DOT billing
Volume / EnterpriseCustom

Pay-as-you-go pricing

Live access is billed per unique DOT number per month (not per request). One DOT, one charge — query it 1× or 100× in the same month and it's still one charge. Typeahead is the exception: billed per 1,000 queries since it's not DOT-scoped.

EndpointPrice
/v2/profile$3.00
/v2/profile-lite$0.50
/v2/autocomplete$3.00
/v2/monitoring/add(monitoring)$0.50

Billing thresholds

Your card is charged when your accrued usage crosses a billing threshold. The first threshold is $50; it raises by one rung ($50 → $100 → $250 → $500) each time you pay an invoice, so frequent small charges turn into less-frequent larger ones as your usage stabilizes. Adjust your active threshold anytime on the Billing page.

Per-key rate limits

Live keys (sk_live_*) have per-minute rate limits per endpoint to cap worst-case bill-shock and stop runaway scripts. Sandbox keys (sk_test_*) have no rate limit — they're free and fixture-only.

EndpointDefault
/v2/profile5 / min
/v2/profile-lite30 / min
/v2/autocomplete2000 / min
/v2/monitoring/add60 / min
/v2/monitoring/remove60 / min
/v2/monitoring/list120 / min

Need higher limits?

Rate limits are designed to floor your worst-case spend, not cap legitimate usage. If you hit one in normal operation, contact support and we'll raise it.

Error codes

StatusError
400API key missing
400Invalid search parameter
401Unauthorized
402Payment failed
404Not found
429Rate limit exceeded
5xxService unavailable

Handling 429s

When you receive a 429, implement exponential backoff. Start with a 1-second delay and double it on each retry, up to a maximum of 30 seconds. Honor the Retry-After header if present.

Response format

All responses are JSON (application/json) with gzip compression. Error responses include an error field and, on most 4xx responses, a hint field with a corrective action:

{
  "error": "Rate limit exceeded",
  "hint": "You may make at most 5 /v2/profile requests per minute on this key. Retry after 60s."
}