Openhandle rate limits

Read quota headers and retry throttled Openhandle requests.

Openhandle enforces separate API key and workspace limits. Test and Live use separate limits. Live trial limits can differ from paid limits. Read the headers from your response instead of assuming a fixed allowance.

Response headers

After evaluating a limit, the API returns RateLimit-Policy and RateLimit. These follow draft-ietf-httpapi-ratelimit-headers-11, which is an Internet-Draft, not a published RFC.

RateLimit-Policy: "key";q=10;w=1, "organization";q=50;w=1
RateLimit: "key";r=9;t=1, "organization";r=49;t=1

These values are examples. q is the request allowance, w is the window in seconds, r is the remaining request allowance, and t is the seconds until the window resets. Policies can appear on separate header lines. Read all values. The key and workspace limits apply together. Requests from other keys can consume the same workspace allowance. Headers are snapshots, not reserved capacity.

Throttled requests

When a limit is exceeded, the API returns HTTP 429, RATE_LIMITED, and Retry-After in seconds. The exhausted policy has r=0. Wait at least the Retry-After duration before retrying. Reduce concurrency and add jitter when several workers share a key or workspace. Failed requests are not billed.

Evaluation stops at the first exceeded limit. A key rejection can therefore include only the key policy. Requests rejected before authentication and requests that cannot reach the limiter may have no quota headers. A limiter outage returns 503; missing headers do not mean unlimited access.

Sign-in and other account routes can use a separate client policy. The playground uses user and organization policies. Their window lengths can differ from the public API.

On this page