Service tiers
Every request runs on a service tier that decides how it is queued when demand is high and what it costs. You choose per request with service_tier; the response tells you which tier actually served it.
| Tier | What you get | Price | Who can use it |
|---|---|---|---|
standard | Normal queueing. Under heavy load you may see 429 capacity_busy or model_busy. | List price | Everyone. The default. |
priority | Served from capacity your organization reserved. Not turned away for platform load while you stay inside your commitment. | Proposed — not offered. Commercial terms not set. | Organizations with a priority commitment |
flex | Runs when spare capacity exists; may wait up to 10 minutes before starting. | Proposed — not offered. No price is set. | Not available |
auto | priority while the commitment has room, otherwise standard. | Whichever tier served it | Organizations with a commitment |
Batches always run on their own discounted path and ignore service_tier.
Request
{
"model": "Amara S1.2",
"service_tier": "auto",
"messages": [{ "role": "user", "content": "Summarise ticket 88123." }]
}Preview flag: syntic-beta: priority-2026-12-01. Without it, service_tier is refused with unsupported_parameter.
Response
{
"id": "chatcmpl_01JD…",
"service_tier": "priority",
"usage": { "prompt_tokens": 412, "completion_tokens": 96, "total_tokens": 508 }
}Streaming responses carry service_tier on the first chunk. The header syntic-service-tier repeats it, so proxies can log it without reading bodies.
Choosing a tier
| Workload | Tier |
|---|---|
| Customer-facing chat with a latency promise | priority or auto |
| Internal tools, prototypes | standard |
| Overnight enrichment where minutes do not matter but you want an answer per call | flex |
| Thousands of independent requests | Batches |
How priority commitments work
A commitment reserves a per-minute throughput of input and output tokens on one model for a term (usually 1 to 12 months). Usage inside the reserve would be billed under the commitment’s terms (not set); usage above it spills to standard when you send auto, or is refused with 429 priority_capacity_exceeded when you send priority. Watch utilisation with Priority capacity usage and size the reserve to your 95th-percentile minute, not your average.
Errors
| Status | code | When |
|---|---|---|
| 400 | unsupported_parameter | service_tier sent without the preview flag. |
| 403 | priority_not_available | priority or auto without an active commitment for this model. |
| 429 | priority_capacity_exceeded | priority request while the reserve is fully used. Retry, or send auto. |
| 400 | flex_not_supported | flex with stream: true and a max_tokens above 8,192, or on a model without flex capacity. |