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=1These 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.