Limits and quotas at a glance
Every number that bounds a request to POST https://app.syntic.ai/v1/chat/completions, with the response you get when you reach it. Details and advice are on Limits and Handle usage limits.
Per request
| Limit | Value | When exceeded |
|---|---|---|
| Request body | 2,000,000 bytes (about 2 MB) | 413 payload_too_large with max_bytes |
| Messages | 500 per request (all roles counted) | 413 too_many_messages with max_messages |
| Messages, minimum | 1 | 400 messages_required |
| Context window | 262,144 tokens, prompt and reply together | upstream_error with a 4xx status |
| Reply length | Your max_tokens, within the context window | Reply stops with finish_reason: "length" |
| Choices per reply | Always 1 (n is ignored) | — |
| Message content | Text strings | — |
Per key and per minute
| Limit | Value | When exceeded |
|---|---|---|
| Requests per API key | 600 per minute, sliding 60-second window | 429 with Retry-After and X-RateLimit-* headers |
| Requests per Syntic Code user | 600 per minute | 429 |
| Tokens per minute | No token-based limit today | — |
Per-model request and token limits that grow with your payment history are planned; see Rate-limit tiers.
Plan windows
| Window | Size | Reopens | When full |
|---|---|---|---|
| Monthly | The plan’s monthly token allowance | Start of the next billing month | Credits take over if on; else 402 with limit: "monthly" |
| Weekly | 60% of the monthly allowance | Weekly, at a fixed time | Credits, else 402 with limit: "weekly" |
| Session | 25% of the monthly allowance | Five hours after usage in the window began | Credits, else 402 with limit: "session" |
Allowances per plan are on Pricing.
Credits and spend
| Check | Default for new organizations | When reached |
|---|---|---|
| Usage credits | Off | — |
| Organization monthly spend limit | $20 | 402 with limit: "spend_limit" |
| Member or group spend limit | Set by administrators | 402 with limit: "spend_limit" |
| Credit balance must cover the worst-case cost | Based on max_tokens, or 4,096 tokens when unset | 402 with limit: "no_credits" |
| Auto-reload | Off; $5 trigger, $15 target when turned on | — |
Setting max_tokens lowers the worst-case estimate, so a small credit balance can still serve short requests.
Access
| Rule | Response |
|---|---|
| Missing credential | 401 unauthenticated |
| Unknown, revoked or expired key | 401 invalid_api_key, revoked_api_key, expired_api_key |
Public key (pk_live_) | 403 public_key_rejected |
| Origin not on the key’s allowlist | 403 origin_not_allowed |
| Key owner no longer a member, account disabled, organization unavailable | 403 org_membership_required, account_disabled, org_unavailable |
| Model needs standard retention, organization uses zero data retention | 400 model_unavailable |
| Model not in your plan | Answered by Amara S1.2, header x-syntic-model-downgraded |
Method other than POST (or OPTIONS preflight) | 405 method_not_allowed |
Related pages
Was this page helpful?