Trade price for speed — a cheaper flex tier, a faster priority tier — and pay the tier that served.
Many providers sell more than one grade of capacity for the same model:
| Tier | Trades |
|---|---|
flex | a lower price, for more latency and less availability |
priority | a higher price, for faster, more reliable service |
Each tier is its own endpoint. You reach it by letting it compete for your request, or by asking for it. Either way, the answer reports the tier that served, and you pay that tier's price, in DA.
:nitro and :floor#Add a variant to the model:
{ "model": "openai/gpt-5.6-luna:nitro" }| Variant | Sorts every endpoint by | Admits |
|---|---|---|
:nitro | throughput | priority endpoints |
:floor | price | flex endpoints |
A tier endpoint serves only when it wins that sort, so you pay a priority price only when priority is the fastest option, and flex serves only when it is the cheapest. Fallbacks keep working.
service_tier#curl https://opendunes.com/v1/chat/completions \
-H "Authorization: Bearer $OPENDUNES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.6-luna",
"service_tier": "flex",
"messages": [{ "role": "user", "content": "Summarise this week'\''s support tickets." }]
}'| Value | Routes |
|---|---|
flex | to flex endpoints only, cheapest first. It never falls back to a standard endpoint; a model with no flex endpoint runs at its standard price |
priority | to priority endpoints first, fastest first, then to the others if none answers |
fast | the same as priority, as is speed: "fast" |
service_tier works the same on /v1/responses and /v1/messages, and travels to the provider as you send it.
The price is the price of the endpoint that served, in DA — a flex answer at the flex price, a priority request that fell back off its tier at the standard price. The request's usage.cost carries it.