모델
API 키에서 사용 가능한 모든 모델을 나열하고 기능 플래그, 컨텍스트 제한 및 토큰별 가격을 포함하여 완료하세요.
나머지 API가 의존하는 모든 정보는 한 번의 호출로 확인할 수 있습니다: 어떤 모델이 이미지, tool, reasoning, caching을 지원하는지, 그 context window, 그리고 token당 가격까지. 앱에 모델 목록을 하드코딩하는 대신 models endpoint를 조회하고 아래의 capability flag로 필터링하세요.
created 필드는 목록을 조회한 현재 서버 시간이며 모델별 출시일이 아니라는 점, 그리고 status 필드는 실시간 상태를 반영한다는 점에 유의하세요 — 오래 caching하지 말고 다시 가져오세요.
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/'));선택적인 서버 측 쿼리 매개변수가 하나 있습니다: 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에서 완전히 제외되며(관리자를 포함한 모든 호출자에 대해) 관리자 도구를 통해 정확한 이름으로만 호출됩니다.
탐색 가능한 보기를 원하시나요?
그만큼 /모델 페이지 그룹화, 검색 및 가격 비교를 통해 동일한 데이터를 렌더링합니다.