Skip to content

Limits and versions

The partner endpoints have no published per-key limit today. Please be reasonable: read jobs when you need them, and prefer webhooks to polling every open job every few seconds.

The public endpoints that need no key — the tracking page’s data and the app download — are limited per IP address. A request over the limit gets 429 Too Many Requests with a Retry-After header and the body {"code": "rate.limited", …}. Wait that many seconds and try again.

Plan for 429 on every endpoint anyway. If we add limits to the partner API, that is how they will look.

The version is in the path: /v1/…. Within v1 we only make changes that don’t break a careful client:

  • We may add endpoints, optional request fields, response fields, webhook events and error codes.
  • We won’t remove or rename fields, change a field’s type or meaning, or make an optional field required.

So your code should ignore response fields and webhook events it doesn’t know, and treat an unknown error code by its HTTP status. A breaking change would be a new version, /v2, with v1 kept running alongside it while you move.