GET Models

Список и карточка модели. Один путь отдаёт две формы. Заголовок `anthropic-version` включает форму Anthropic: её запрашивают `client.models.list()` и `client.mo

GET
/models

Без заголовка anthropic-version — форма OpenAI: объект list и модели с полями id, object, created, owned_by. Параметры страницы в этой форме не действуют, список приходит целиком.

С заголовком anthropic-version — форма Anthropic (client.models.list()). Страница: limit (1–1000, по умолчанию 20), after_id, before_id, lifecycle. Сначала более новые модели. Есть display_name, однострочное description и line, если в названии одна линейка Claude. Поля capabilities, deprecated_at и retires_at пустые. Неверные параметры — конверт Anthropic. Неверный ключ — конверт OpenAI.

АвторизацияBearer <token>

API-ключ sk-…. Не токен кабинета и не sk-mgmt-….

Где: header

Параметры query

limit?integer

Размер страницы формы Anthropic. В форме OpenAI параметр не действует.

after_id?string

Курсор следующей страницы формы Anthropic.

before_id?string

Курсор предыдущей страницы формы Anthropic. Вместе с after_id вернёт 400.

lifecycle?array<>

Фильтр формы Anthropic. Без параметра возвращаются вызываемые модели.

Параметры заголовка

anthropic-version?string

Если заголовок задан, ответ в форме Anthropic.

Тело ответа

application/json

application/json

application/json

curl -X GET "https://example.com/models"
{
  "object": "list",
  "data": [
    {
      "id": "string",
      "object": "model",
      "created": 0,
      "owned_by": "string"
    }
  ]
}
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "string"
  }
}
{
  "error": {
    "message": "string",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
GET
/models/{model}
АвторизацияBearer <token>

API-ключ sk-…. Не токен кабинета и не sk-mgmt-….

Где: header

Параметры пути

model*string

Тело ответа

application/json

application/json

application/json

curl -X GET "https://example.com/models/gpt-4o-mini"
{
  "id": "string",
  "object": "model",
  "created": 0,
  "owned_by": "string"
}
{
  "error": {
    "message": "string",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
{
  "error": {
    "message": "string",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
GET
/models/{author}/{slug}

Тот же ответ, что GET /models/{model}. Нужен для идентификаторов вида openai/gpt-image-2: OpenAI SDK и OpenRouter подставляют слэш в путь, а {model} в gateway — один сегмент.

АвторизацияBearer <token>

API-ключ sk-…. Не токен кабинета и не sk-mgmt-….

Где: header

Параметры пути

author*string
slug*string

Тело ответа

application/json

application/json

application/json

curl -X GET "https://example.com/models/openai/gpt-image-2"
{
  "id": "string",
  "object": "model",
  "created": 0,
  "owned_by": "string"
}
{
  "error": {
    "message": "string",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
{
  "error": {
    "message": "string",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}

Список строится из того же снимка каталога и режется под ключ: в нём только модели, которые этот ключ может вызвать.

OpenAI

Поля модели: id, object (model), created, owned_by. Параметры limit, after_id, before_id и lifecycle в этой форме не действуют — список приходит целиком.

Идентификаторы каталога имеют вид author/slug. Карточка доступна и так:

GET /api/v1/models/openai/gpt-image-2
GET /api/v1/models/openai%2Fgpt-image-2

Оба запроса возвращают одну и ту же карточку. Если модель не включена или закрыта политикой — 404 model_not_found в конверте OpenAI.

Anthropic

Запрос с заголовком anthropic-version (его ставит Anthropic SDK). Ключ — в x-api-key или Authorization: Bearer. Базовый URL SDK — https://www.llmmart.ru/api без /v1: клиент сам дописывает /v1/models.

Параметры списка:

ПараметрСмысл
limitРазмер страницы, от 1 до 1000. По умолчанию 20
after_idСтраница сразу после этого идентификатора
before_idСтраница сразу перед этим идентификатором. Вместе с after_id вернёт 400
lifecycleactive, deprecated или retired, не больше трёх значений

Без lifecycle в списке вызываемые модели. Запрос только retired или только deprecated даёт пустую страницу: в снимке нет отдельно снятых с публикации моделей. Порядок — сначала более новые. В ответе data, has_more, first_id, last_id.

Поля модели: type (model), id, display_name, description (одна строка из каталога), created_at, lifecycle (active), max_input_tokens, max_tokens. Поле line заполняется, если в идентификаторе или названии одна линейка Claude: haiku, sonnet, opus, fable или mythos. Иначе оно пустое. Дерево capabilities и даты снятия с публикации пустые.

Идентификатор в списке — slug каталога, например anthropic/claude-sonnet-5. Его и передают в поле model у POST /messages.

Неверные параметры и отсутствующая модель в этом режиме приходят в конверте Anthropic. Неверный ключ на этом пути по-прежнему в конверте OpenAI.

Что дальше

На этой странице