How limits work
Rate limits are per API key, per minute. The response headers tell you where you stand:
X-RateLimit-Limit— your ceilingX-RateLimit-Remaining— calls left in the windowX-RateLimit-Reset— when the window resets (unix seconds)
Hitting the ceiling returns 429 with a problem body — back off until Reset rather than hammering.
Plans, honestly
TrackJet is in early access: billing is OFF. Every key currently gets full access; the tier gates below activate only after public notice. The [pricing page](/pricing) comparison table is generated from the same capability map the application enforces — it cannot drift from reality.
| Capability | Tier | | --- | --- | | Universal tracking, saved board, basic alerts, GDPR export | Free | | Priority re-checks for alerts | Plus | | Embeddable widget, bulk CSV | Pro | | REST API for production workloads, multi-user team | Business |
Practical advice
- Cache
GET /api/v1/carriers(it changes rarely) and respectCache-Control. - Use the [sandbox](/docs/sandbox) in CI — fixtures do not count against meaningful quota and never flake.
- One key per environment (dev/staging/prod), so a leaked dev key never has production blast radius.