curl "https://api.pipellm.ai/v1/models/pricing?model=gpt-5" \
-H "Authorization: Bearer $PIPELLM_API_KEY"
curl "https://api.pipellm.ai/v1/models/pricing?model=gpt-5&provider=openai" \
-H "Authorization: Bearer $PIPELLM_API_KEY"
Get model pricing
Retrieve the authoritative price for a model.
GET
/
v1
/
models
/
pricing
curl "https://api.pipellm.ai/v1/models/pricing?model=gpt-5" \
-H "Authorization: Bearer $PIPELLM_API_KEY"
curl "https://api.pipellm.ai/v1/models/pricing?model=gpt-5&provider=openai" \
-H "Authorization: Bearer $PIPELLM_API_KEY"
Use this route when you need pricing, not just catalog visibility.
/v1/models/pricing returns a single authoritative pricing object for a model;
it does not list prices from every provider. When a model can route across
multiple providers, PipeLLM only returns a price if they resolve to one
authoritative price. Otherwise, you can select a provider with provider.
How billing works
PipeLLM bills from your console balance. Insufficient balance returns402 before the
request is processed — see Errors.
Rates for every model live in the model library. This route
returns the same numbers programmatically. The docs deliberately do not restate rates, so
there is nothing here to go stale.
Video is billed in USD when you call POST /v2/videos. The
quote is taken at create time and does not change if prices are edited later; query and
cancel do not charge.
Endpoint
GET https://api.pipellm.ai/v1/models/pricing
Query Parameters
string
required
Model ID to price.
string
Provider name when the same ID has more than one price.
integer
Platform mapping ID when you need an exact channel.
Notes
- This route only supports
GET. modelis required.- If there is only one visible provider, the route returns that provider’s price.
- If all visible providers produce the same effective price, the route returns one authoritative price.
- If visible providers produce different effective prices, the route returns
409 Conflict; useproviderto select a provider.
curl "https://api.pipellm.ai/v1/models/pricing?model=gpt-5" \
-H "Authorization: Bearer $PIPELLM_API_KEY"
curl "https://api.pipellm.ai/v1/models/pricing?model=gpt-5&provider=openai" \
-H "Authorization: Bearer $PIPELLM_API_KEY"
Response Format
{
"object": "pricing",
"data": {
"id": "gpt-5",
"display_name": "Gpt 5",
"type_target": "openai",
"provider": "openai",
"pricing": {
"kind": "token",
"text": {
"prompt": "0.000003",
"completion": "0.000015",
"internal_reasoning": "0.000015"
},
"cache": {
"read": "0.000001",
"write": "0.00000375",
"write_1h": "0.0000075"
},
"tiers": {
"over_200k": {
"text": {
"prompt": "0.0000055",
"completion": "0.000022",
"internal_reasoning": "0.000022"
}
}
}
}
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
object | string | Always "pricing" |
data.id | string | Model name used in API requests |
data.display_name | string | Human-readable label generated from the model name |
data.type_target | string | Target protocol family for routing |
data.provider | string | Resolved provider when the request identifies one provider or explicitly selects one |
data.pricing | object | Authoritative pricing object |
Ambiguous Pricing
PipeLLM returns409 Conflict when:
- the same
modelmatches multiple visible mappings - those mappings have different prices
- and you did not select a provider with
provider
Was this page helpful?