BuildService tiers

Service tiers

⚠️
Preview — this feature is being built; the design below is the spec.
⚠️
Proposed — not offered. Service tiers, priority commitments and their pricing are an owner-level commercial decision that has not been made. Nothing on this page is offered or priced today.

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.

TierWhat you getPriceWho can use it
standardNormal queueing. Under heavy load you may see 429 capacity_busy or model_busy.List priceEveryone. The default.
priorityServed 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
flexRuns when spare capacity exists; may wait up to 10 minutes before starting.Proposed — not offered. No price is set.Not available
autopriority while the commitment has room, otherwise standard.Whichever tier served itOrganizations 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

WorkloadTier
Customer-facing chat with a latency promisepriority or auto
Internal tools, prototypesstandard
Overnight enrichment where minutes do not matter but you want an answer per callflex
Thousands of independent requestsBatches

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

StatuscodeWhen
400unsupported_parameterservice_tier sent without the preview flag.
403priority_not_availablepriority or auto without an active commitment for this model.
429priority_capacity_exceededpriority request while the reserve is fully used. Retry, or send auto.
400flex_not_supportedflex with stream: true and a max_tokens above 8,192, or on a model without flex capacity.
Was this page helpful?