Sign-up and API keys are open. Paid top-ups open soon.What changed
Docs menu

Reference

Limits

Every size limit of a decide request, the error each one returns, and the model limits from the models endpoint.

View as Markdown

This page lists every size limit of a decide request and the error you get when you pass it. Rate limits are on their own page: Rate limits.

Request size limits

Limit Value Error
Request body 256 KiB 413 body_too_large
State tokens, after rendering 16,384 413 state_too_long
Tokens per rendered question 4,096 413 question_too_long
Billable tokens per request 16,384 413 request_too_long
Billable tokens of all questions together 4,096 413 request_too_long, with param questions
Questions per request 32 (at least 1) 422 too_many_questions
Options per pick 255 (at least 1) 422 too_many_options
Levels per rate 2 to 10 422 invalid_levels

Token limits are counted after rendering and tokenizing, with the tokenizer of the requested model family. They match the billed counts exactly: state_tokens, the tokens of each question, and input_tokens for the whole request.

On 26 September 2026 the request limits went down from 32,768 billable tokens (with no limit on the questions together) to the values above, so that every allowed request is answered on the GPU in time. The slowest request they allow, a 12,288-token state with one 4,096-token question, takes about 3 seconds on the GPU. Questions cost more per token than the state, because the model reads all of them in one pass that attends to the whole state.

State

Limit Value
A string state 1 to 65,536 characters, not only whitespace
A JSON object state At least 1 field
JSON nesting At most 32 levels deep
JSON keys 1 to 256 characters each
A JSON array state At least 1 item

A state that breaks one of these gives 422 invalid_value; a state of the wrong JSON type, such as a number, gives 422 invalid_type. A key repeated inside the same JSON object gives 400 duplicate_key. See State.

Questions

Field Limit Error
Question id Matches ^[A-Za-z][A-Za-z0-9_-]{0,63}$ 422 invalid_question_id
instructions 1 to 4,000 characters, not only whitespace 422 invalid_value
criteria as a string 1 to 4,000 characters, not only whitespace 422 invalid_value
criteria as a list 1 to 20 strings, each 1 to 500 characters and not only whitespace 422 invalid_value
Pick option label 1 to 100 characters, no leading or trailing whitespace 422 invalid_value
Pick option labels Unique: a label repeated character for character gives 400 duplicate_key; labels equal only after Unicode NFC normalization or ignoring case (Billing and billing) give 422 duplicate_label 400 duplicate_key, 422 duplicate_label
Pick option description null, or 1 to 1,000 characters, not only whitespace 422 invalid_value
Rate level 1 to 200 characters, no leading or trailing whitespace 422 invalid_value
Rate levels 2 to 10 strings, unique after Unicode NFC normalization and ignoring case 422 invalid_levels
min_confidence 0 to 1 422 invalid_min_confidence

Where the table shows only the type validation, the error code names the rule that failed, and param names the field.

Headers

Header Limit Error
idempotency-key 1 to 255 printable ASCII characters, without spaces 400 invalid_header
x-client-request-id 1 to 128 printable ASCII characters, without spaces 400 invalid_header

Model limits

Each model version reports its limits in GET /v1/models. The values below are the ones in the contract. Read them from the endpoint rather than hard-coding them: limits may change within v1, as they did on 26 September 2026. The limit on all questions together (4,096 tokens) is not in the endpoint yet.

Field Value Meaning
max_state_tokens 16384 State tokens after rendering.
max_question_tokens 4096 Tokens per rendered question.
max_total_tokens 16384 Billable tokens per request.
max_questions 32 Questions per request.
max_options 255 Options per pick.
max_levels 10 Levels per rate.
exact_option_probabilities 255 on GPU versions, 20 on fallback versions How many options of a pick get exact probabilities. See Fallback and served_by.

Other limits

Limit Value
GET /v1/usage range Up to 93 days by day, up to 7 days by hour
Top-up amount EUR 10 to EUR 2,500 per top-up
Top-ups in an account's first 30 days EUR 500 in total (422 top_up_limit_exceeded)
Opt-in content logging 1 to 30 days of retention
API key name 1 to 64 characters