Модели
Перечислите каждую модель, доступную в вашем ключе API, с указанием флагов возможностей, контекстных ограничений и цен за токен.
GET /v1/models
Возвращает список моделей, которые вы можете использовать прямо сейчас. Запросы, прошедшие проверку подлинности, включают любые модели для каждого пользователя, которые вы включили на панели мониторинга. Форма отражает форму OpenAI. GET /v1/models с дополнительными полями возможностей ВВС.
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 the model was added to Airforce. |
| 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 | "stable" | "beta" | "deprecated" | "disabled". |
| 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": "stable",
"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/'));Поля цен
Все *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 |
|---|---|---|---|
| stable | status | Optional | Production-ready. Use freely. |
| beta | status | Optional | Available, but the upstream API surface may change without notice. |
| deprecated | status | Optional | Still callable, but a sunset is scheduled. Migrate to the replacement listed in the model description. |
| disabled | status | Optional | Will not be returned to anonymous callers; admins may still surface it for testing. |
Хотите просмотр с возможностью просмотра?
The страница /модели предоставляет те же данные с группировкой, поиском и сравнением цен.