Skip to content

Rate limits

How many requests a key and a company may send per minute, and what to do at the limit.

Version v1.1, updated

On this page

Requests are counted per minute, for each key and for all the keys of a company together. The headers of every answer tell you how many are left.

The limits

Counted for

Default

One API key

600 requests per minute

All the keys of a company together

1200 requests per minute

BIRP can set other limits for a company. GET /v1/me returns the ones that apply to your key. Each network address also has a limit.

The headers

Header

Meaning

X-RateLimit-Limit

Requests allowed per minute, for the key or the company, whichever has fewer left.

X-RateLimit-Remaining

Requests you can still send before the limit is reached.

X-RateLimit-Reset

Seconds until the limit resets.

At the limit

A request over a limit answers 429 rate_limited, with Retry-After in seconds and limit_scope naming the limit reached: key, company or ip.

429 rate_limitedJSON
{
  "code": "rate_limited",
  "detail": "The rate limit has been reached. Retry after the number of seconds in Retry-After.",
  "instance": "/v1/categories",
  "limit_scope": "key",
  "request_id": "a1b2c3d4-0000-4000-8000-0000000000ee",
  "status": 429,
  "title": "Too many requests",
  "type": "https://birp.io/developers/errors/rate_limited"
}

Stay under it

  • Wait the Retry-After seconds before you retry; never retry at once.

  • Read with the largest page size, so a sync needs fewer requests.

  • Use updated_since to read only what changed since the last sync.

  • Use a batch to write up to 100 products or customers in one request.

  • Spread scheduled syncs over the minute instead of starting them all at once.

  • handling-errors
  • pagination-and-filtering
  • batches