Skip to main content
This page collects every limit the API enforces, the value, and the error you get when you cross it. Use it when you design a question set or a schema, size an input, or plan how much a batch job can send. All of these are checked per request; none of them is a rate.
There is no request-rate limit. OpenType does not count requests per second or per minute, and no response carries a rate-limit header. A 429 is only ever a period quota refusal.

Requests

An Idempotency-Key is scoped to your organization and never expires: a key used once always refers to the same run.

Runs

These apply to every POST /v1/runs, decision or verdict. The input estimate is ceil(prompt bytes / 4) + ceil(contract bytes / 4), where the prompt is system plus messages (or the decision state) and the contract is your schema or question set. Roughly, 4 bytes of JSON count as one token. Each run holds its whole spend ceiling as a reservation until it settles, then is charged what it actually cost. With billing on, a run therefore needs up to 20,000 micros of available credit to start, even when it will cost far less.

Decision runs

Neon 1.1 reads up to 262,144 tokens of input per decision. Verdict runs keep the 64,000-token ceiling. Keep state to the fields the questions need: a smaller input is cheaper and returns sooner.

Long-context decisions

A decision run can carry up to 262,144 input tokens (256k) in a body of up to 4 MiB. Reading that much takes the model longer, so the deadline of a decision scales with its input: The default is 30,000 + 120,000 × input_tokens / 262,144 milliseconds, clamped to 150,000. You can send a shorter deadline_ms, or a longer one up to 150,000. Verdict runs keep their own range: default 30,000, at most 120,000. Set your HTTP client timeout to at least 160 seconds, above the longest deadline, so the server rather than your client ends a slow run and you receive the 504 deadline_exceeded with its request_id. The official SDKs default to 170 seconds. A long input is priced like any other, per token: a full 262,144-token read with 16 output tokens costs 11,012 micro-USD, within the 20,000 micro-USD per-run ceiling. See Models and pricing.

Response timing

POST /v1/runs returns a Server-Timing header with the time spent in each phase, in milliseconds:
Compare total with your client’s own measurement to see how much time the network took. The header is on 200 and 202 responses and on most refusals. Two properties are not checked at admission: whether each alternative name is a single token for the model, and whether the set fits the model’s answer template. A set that fails either is refused later with 503 decision_unavailable. See Decision questions.

Verdict schemas

See Verdict runs.

Lists and reports

Billing

Period quotas

An organization can have two limits per quota period. The period is the current UTC calendar month. GET /v1/quota returns the limits, what the period has consumed, and what remains; a null limit means none is set. Because the spend check uses the ceiling, a run can be refused while the period still has a little room left. Held reservations count against the remaining spend until they settle, so a burst of concurrent runs can hit the quota and then clear as those runs finish. A refused run stores nothing, so the same Idempotency-Key is reusable. A replay of a key that already owns a run is never refused with 429.
A quota refusal names the numbers it compared:
See Spend limits and quotas.

When the model service is busy

If the model service behind a run limits OpenType’s traffic, the run fails with 503 provider_rate_limited, not 429. That limit is not on your organization. Retry with exponential backoff and a new Idempotency-Key.