Documentation / Concepts / Rate limits

Rate limits

Each API token is limited to a number of calls per minute depending on its plan. The quota is shared between MCP tool calls and REST API requests.

Limits per plan

PlanRequests / minNote
Free60Default
Indie60
Agent60
Scale60
Enterprise120

The limit is per API token, not per IP address or per account. On the MCP side, only tool calls (tools/call) count: initialize, tools/list and notifications don't use this quota.

Sliding window

The counter uses a 60-second sliding window (not a fixed window). If you send 60 requests in 5 seconds on the free plan, you'll be limited for ~55 seconds — the time it takes for the first requests to leave the window.

Watch out for bursts
A burst of identical parallel requests eats the quota quickly. Throttle client-side to ~80% of the limit to keep some headroom (e.g. at most 48 req/min on the free plan).

HTTP 429 response

When the limit is exceeded, the API returns:

HTTP/1.1 429 Too Many Requests
Retry-After: 12

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Retry in 12 s."
  }
}

On the MCP server, a tool call over the limit doesn't return an HTTP error: it returns a tool result with isError: true and the wait time, which the assistant can read to slow down. No credits are charged.

Recommended backoff strategy

Implement exponential backoff starting at 1 second. Four attempts cover most cases.

import time
import requests

def call_with_backoff(url, headers, params, max_retries=4):
    delay = 1
    for attempt in range(max_retries):
        r = requests.get(url, headers=headers, params=params)
        if r.status_code == 429:
            time.sleep(delay)
            delay *= 2
            continue
        return r
    raise Exception("Rate limit exceeded after retries")

Server capacity limit (503)

On top of the per-plan limits, the server accepts at most 15 concurrent database queries (across all keys). When that limit is reached, you get HTTP 503 with the code at_capacity. Unlike 429, there is no queue: retry after 2–5 seconds.

Independent of your plan
The at_capacity limit is server-wide, not per user. It is rarer than 429 and usually happens during load peaks. See all error codes (in French).