GET Models
Список и карточка модели. Один путь отдаёт две формы. Заголовок `anthropic-version` включает форму Anthropic: её запрашивают `client.models.list()` и `client.mo
Без заголовка 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.
Авторизация
bearerAuth API-ключ sk-…. Не токен кабинета и не sk-mgmt-….
Где: header
Параметры query
Размер страницы формы Anthropic. В форме OpenAI параметр не действует.
Курсор следующей страницы формы Anthropic.
Курсор предыдущей страницы формы Anthropic. Вместе с after_id вернёт 400.
Фильтр формы Anthropic. Без параметра возвращаются вызываемые модели.
Параметры заголовка
Если заголовок задан, ответ в форме 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"
}
}Авторизация
bearerAuth API-ключ sk-…. Не токен кабинета и не sk-mgmt-….
Где: header
Параметры пути
Тело ответа
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/{model}. Нужен для идентификаторов вида openai/gpt-image-2:
OpenAI SDK и OpenRouter подставляют слэш в путь, а {model} в gateway — один сегмент.
Авторизация
bearerAuth API-ключ sk-…. Не токен кабинета и не sk-mgmt-….
Где: header
Параметры пути
Тело ответа
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 |
lifecycle | active, 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.