Developer guides

Tracking API rate limits, monthly quotas and reset dates

For applications coordinating tracking requests across web requests and background workers.

By Trace · Reviewed

Rate limiting controls request pace. Monthly quota controls successful lookup consumption. They fail for different reasons and need different responses: waiting a minute can help a rate-limited request, but cannot replenish a monthly allowance.

Trace’s standard Free plan includes 200 monthly successful lookups at 10 requests per minute. Paid plans have finite limits too. There is no public unlimited tier, no automatic overage charge and no rollover of unused allowance.

Coordinate the account’s request pace

Account traffic can originate from buyer pages, support tools, scheduled monitoring and asynchronous work. A local in-memory limiter in one web process cannot coordinate all of those sources. Use a shared admission strategy for requests your application controls and keep a budget for operational work.

PlanRequests per minuteMonthly lookups
Free10200
Startup605,000
Business12025,000
Scale300100,000

Treat 429, 402 and synchronization delays differently

For 429 responses, honor Retry-After and use bounded backoff with jitter. Do not make every worker retry at exactly the same instant. Monthly quota exhaustion returns 402 monthly_quota_exceeded; suspend unnecessary lookups and inspect the reset or plan decision.

A paid account whose period is awaiting Stripe synchronization can receive retryable billing_period_pending. That response is not a free reset or proof of a failed payment. Wait for synchronization and inspect Billing before changing entitlement assumptions.

Count successful items rather than HTTP envelopes

Every successful direct or cached response consumes one lookup. Explicitly requested stale successes also count. Successful batch rows, monitoring refreshes and async tracking-job items share the same budget. Failed lookups and sandbox scenarios do not consume monthly lookup quota, although normal request rate limits still apply.

Read X-Monthly-Limit, X-Monthly-Remaining and X-Monthly-Reset when supplied. Reset is an absolute timestamp. Do not calculate it by adding 30 days to the last request or by treating every calendar month as the same duration.

Preserve the correct period through plan changes

Paid quota periods follow confirmed Stripe subscription item dates. Free and manually assigned accounts use UTC calendar months. Upgrades retain already consumed usage within the current period; downgrades take effect at renewal. Your application should display the server’s confirmed plan and usage rather than estimating entitlement from a checkout redirect.

Test a boundary just before and after reset, an upgrade with existing usage, a rate-limited burst and an exhausted month. For legacy Free accounts, respect the transition date shown in Billing; the public default remains 200.

Common questions

Will cached responses let me bypass the monthly quota?

No. Each successful cached response counts as a lookup. Reduce unnecessary requests by reusing an authorized stored view in your own application.

References & next steps

Implementation details were checked against Trace’s current API. External product details may change; verify the linked documentation before deciding.