The model catalogue and its prices
Read the models a request may name and the price each of them is charged at now.
The model catalogue is the list of models Slen can price. Every estimate and every hold of a model call is priced from it. Over the API the catalogue is read-only, and the console shows it on Models.
What the list holds
The answer lists every active model that has a price in force at the moment of the request, ordered by model_code. A model without a price in force is left out.
The catalogue is one for all projects: the list does not depend on which providers a project has connected. It is not paged, so the answer has no meta.
model_code is the name an AI Model node calls the model by. A model call whose model the catalogue does not have, or has switched off, is refused with the code model_not_allowed, and the execution ends failed. For an active model without a price in force the code is cost_calculation_failed.
How a price is written
A price is per million tokens, in the currency that currency names. input_price_per_million and output_price_per_million are always there. cached_input_price_per_million is null for a model that has no price of its own for cached input tokens.
A price is a version. model_price_id names the version in force, and effective_from and effective_to bound the time it applies. effective_to is null while the version has no end. A hold stores the version it was priced at, so a later change of the price does not change what an earlier request cost.
Operations
Models available right now, with the price version in force
GET /v1/models
- Scope:
read
Responses
Price snapshots effective at this instant
{
"data": [
{
"model_code": "gpt-4o-mini",
"provider": "openai",
"model_price_id": "74438200973594624",
"input_price_per_million": "0.02700000",
"output_price_per_million": "0.02700000",
"cached_input_price_per_million": "0.02700000",
"max_output_tokens": 1,
"currency": "USD",
"effective_from": "2026-10-02T09:30:00Z",
"effective_to": "2026-10-02T09:30:00Z"
}
]
}Errors
| Status | Codes | When |
|---|---|---|
| 401 | No credential, or one that is not valid | |
| 403 | Authenticated, but not allowed: scope ( |
Headers
X-Request-Id
The body of every error is the error envelope.
Examples
List the models
The answer here is cut to one model.
curl https://api.slen.ai/api/v1/models \
-H "Authorization: Bearer $SLEN_API_KEY"{
"data": [
{
"model_code": "gpt-4o-mini",
"provider": "openai",
"model_price_id": "1108",
"input_price_per_million": "0.15000000",
"output_price_per_million": "0.60000000",
"cached_input_price_per_million": "0.07500000",
"max_output_tokens": 16384,
"currency": "USD",
"effective_from": "2026-01-01T00:00:00+00:00",
"effective_to": null
}
]
}Where to go next
Models and prices — the same catalogue in the console.
Overview — how money is written in an answer.
Authentication — the scope a key needs to read the catalogue.
Error codes — every code of the API, what it means and what to do about it.
Built from openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d