Модели
Перечислите каждую модель, доступную в вашем ключе API, с указанием флагов возможностей, контекстных ограничений и цен за токен.
Всё, на что опирается остальная часть API, можно узнать из одного вызова: какие модели принимают изображения, tools, reasoning или caching, их context window и цену за token. Запросите models endpoint и фильтруйте по флагам возможностей ниже, вместо того чтобы жёстко прописывать списки моделей в приложении.
Учтите, что поле created — это текущее серверное время выдачи списка, а не дата релиза каждой модели, а поле status отражает актуальное состояние — перезапрашивайте его, а не кэшируйте надолго.
GET /v1/models
Возвращает список моделей, которые вы можете использовать прямо сейчас. Запросы, прошедшие проверку подлинности, включают любые модели для каждого пользователя, которые вы включили на панели мониторинга. Форма отражает форму OpenAI. GET /v1/models с дополнительными полями возможностей Airforce.
https://api.airforce/v1/modelsПример
curl https://api.airforce/v1/models \
-H "Authorization: Bearer sk-air-YOUR_API_KEY"Форма ответа
Конверт верхнего уровня { object: "list", data: Model[] }. Каждый Model содержит поля ниже — поля, помеченные как необязательные, могут быть опущены, если они неизвестны.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Optional | Public model identifier you pass as the "model" field on every other endpoint, e.g. "claude-sonnet-4.6" or "gpt-5.1-chat". |
| object | string | Optional | Always "model". |
| created | integer | Optional | Unix timestamp at which this listing was generated (current server time) — not a stable per-model creation date. |
| owned_by | string | Optional | Vendor name: "openai", "anthropic", "google", "deepseek", … |
| catalog_id | string | Optional | Canonical vendor identifier for the underlying model family (e.g. "anthropic/claude-sonnet-4-6"). Stable across Airforce ID changes. |
| context_length | integer | Optional | Total context window in tokens (input + output). |
| max_output_tokens | integer | Optional | Hard cap on a single response. Use this as the upper bound when picking max_tokens. |
| input_modalities | array | Optional | Subset of ["text", "image", "audio", "document", "video"] the model accepts as input. |
| output_modalities | array | Optional | Subset of ["text", "image", "audio", "video"] the model can produce. |
| supports_chat | boolean | Optional | Available on /v1/chat/completions and /v1/messages. |
| supports_streaming | boolean | Optional | Honors stream: true. |
| supports_vision | boolean | Optional | Accepts image_url content blocks. |
| supports_tools | boolean | Optional | Accepts the tools / tool_choice parameters. |
| supports_reasoning | boolean | Optional | Honors reasoning_effort / thinking / thinking_budget. |
| supports_documents | boolean | Optional | Accepts document content blocks (PDF, etc.). |
| supports_caching | boolean | Optional | Honors cache_control on Anthropic-style system prompts. |
| supports_audio_input | boolean | Optional | Accepts audio content blocks (multimodal STT-in-chat). |
| supports_video_input | boolean | Optional | Accepts video content blocks. |
| knowledge_cutoff | string | Optional | Vendor-published knowledge cutoff month, e.g. "2025-09". |
| status | string | Optional | Live health: "operational" | "degraded" | "partial_outage" | "major_outage" (legacy "stable" / "down" / "offline" may also appear). |
| pricepermilliontokens | integer | Optional | Input cost in cents per 1M tokens. Output side has output_pricepermilliontokens. |
| cache_read_pricepermilliontokens | integer | Optional | Discounted rate for cache-hit input tokens (Anthropic-style caching). |
Пример ответа
{
"object": "list",
"data": [
{
"id": "claude-sonnet-4.6",
"object": "model",
"created": 1740000000,
"owned_by": "anthropic",
"catalog_id": "anthropic/claude-sonnet-4-6",
"context_length": 200000,
"max_output_tokens": 64000,
"input_modalities": ["text", "image", "document"],
"output_modalities": ["text"],
"supports_chat": true,
"supports_streaming": true,
"supports_vision": true,
"supports_tools": true,
"supports_reasoning": true,
"supports_documents": true,
"supports_caching": true,
"knowledge_cutoff": "2025-08",
"status": "operational",
"pricepermilliontokens": 300,
"output_pricepermilliontokens": 1500,
"cache_read_pricepermilliontokens": 30
}
// … more models
]
}Фильтрация по возможностям
Фильтрация по возможностям выполняется на стороне клиента с помощью флагов ниже. Самые частые фильтры:
const res = await fetch('https://api.airforce/v1/models', {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const { data } = await res.json();
// Vision-capable chat models
const visionModels = data.filter(m => m.supports_chat && m.supports_vision);
// Cheapest reasoning model with at least 100k context
const reasoning = data
.filter(m => m.supports_reasoning && (m.context_length ?? 0) >= 100_000)
.sort((a, b) => (a.pricepermilliontokens ?? 0) - (b.pricepermilliontokens ?? 0))[0];
// All models from one vendor, by canonical catalog family
const allClaude = data.filter(m => m.catalog_id?.startsWith('anthropic/'));Существует один необязательный серверный query-параметр: GET /v1/models?channels=1 дополнительно возвращает записи алиасов по каналам (для клиентов, учитывающих маршрутизацию); без него эти алиасы опускаются.
Поля цен
Все *pricepermilliontokens поля представляют собой целые числа центов за 1 000 000 токенов. Разделите на 100, чтобы получить доллары США на миллион.
| Parameter | Type | Required | Description |
|---|---|---|---|
| pricepermilliontokens | integer | Optional | Input tokens, cents per 1M. |
| output_pricepermilliontokens | integer | Optional | Output tokens, cents per 1M. |
| cache_write_5m_pricepermilliontokens | integer | Optional | Cache-write rate for 5-minute TTL caches (Anthropic). |
| cache_write_1h_pricepermilliontokens | integer | Optional | Cache-write rate for 1-hour TTL caches (Anthropic). |
| cache_read_pricepermilliontokens | integer | Optional | Cache-read rate (typically 10× cheaper than uncached input). |
Статус модели и прекращение поддержки
| Parameter | Type | Required | Description |
|---|---|---|---|
| operational | status | Optional | Healthy — recent calls are succeeding. The usual value for an available model. |
| degraded | status | Optional | Callable, but with elevated errors or latency. |
| partial_outage | status | Optional | A subset of upstream channels is failing. |
| major_outage | status | Optional | Most or all calls are currently failing. |
| stable / down / offline | status | Optional | Legacy or admin-set values that may also appear. |
Жёстко отключённые модели — это не значение статуса: они полностью исключаются из /v1/models (для каждого вызывающего, включая администраторов) и вызываются только по точному имени через административный инструментарий.
Нужен удобный для просмотра вид?
The страница /модели предоставляет те же данные с группировкой, поиском и сравнением цен.