Skip to main content

Overview

The Bridge API accepts 50 requests every 5 seconds. The limit applies to every endpoint, is enabled by default, and needs no configuration.
The budget belongs to the workspace, not to the API Key. If you issue several keys for the same workspace — one per application, as recommended — they all draw from the same 50 requests.

Knowing where you stand

Every response to an authenticated request carries two headers, so you never have to guess how much budget is left:
A client that watches r and pauses as it approaches zero is never rejected at all.
A request rejected before authentication — a missing or invalid API Key — carries neither header. See Authentication for those responses.

When you go over

Requests beyond the budget are answered with 429 Too Many Requests. Nothing is processed, so the request is safe to repeat.
Retry-After is expressed in seconds from now, not as a date. Wait that long and the next request is served.
A 429 is not an authentication problem. 401 and 403 mean the API Key is missing, invalid, expired or not authorized, and retrying them on a schedule will never succeed — it only burns your budget. Only 429 should be retried automatically, and only after the delay it gives you.

What consumes budget

Every HTTP request counts as one, including requests that end in a validation error or a 404. What matters is how many calls your client makes, not how much data comes back. That distinction shows up when you read:
  • A single resource by idGET .../contacts/{contactId} — costs one request, whatever the size of the response.
  • A listGET .../contacts — costs one request per page. Reading a list in full costs as many requests as it has pages.
So page size decides the cost of a full sweep. Walking 500 contacts costs 5 requests at 100 per page, and 25 requests at 20 per page — same data, five times the budget.
Prefer the largest page size an endpoint accepts when you are reading a list in full, and read a single resource by its id when you already know which one you need.

Backing off in practice

A client that paces itself from RateLimit and honours Retry-After on the rare miss needs no other logic:
Do not retry a 429 immediately or on a fixed timer of your own. Retrying before Retry-After elapses is rejected again, and a tight retry loop keeps the workspace at zero budget for every other application sharing it.