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

200

Price snapshots effective at this instant

application/json
{
  "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

StatusCodesWhen
401

No credential, or one that is not valid

403

Authenticated, but not allowed: scope (insufficient_scope), policy or tenant (not_a_member); a blocked end customer (customer_blocked); an act only a signed-in person may take (session_required); the role rule on members and invitations (member_forbidden, invite_forbidden); a write to the organization's own rows, or a read of the audit journal, by a caller that does not reach every project (project_access_restricted)

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.

Terminal
curl https://api.slen.ai/api/v1/models \
  -H "Authorization: Bearer $SLEN_API_KEY"
200 OK
{
  "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

Built from openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d