Modèles
Répertoriez tous les modèles disponibles sur votre clé API, avec les indicateurs de fonctionnalités, les limites de contexte et la tarification par jeton.
Tout ce dont dépend le reste de l'API est découvrable depuis un seul appel : quels modèles acceptent les images, les tools, le reasoning ou le caching, leur context window et leur prix par token. Interrogez l'endpoint models et filtrez sur les capability flags ci-dessous plutôt que de coder en dur des listes de modèles dans votre application.
Notez que le champ created correspond à l'heure serveur actuelle du listing, et non à une date de sortie par modèle, et que le champ status reflète la santé en direct — récupérez-le à nouveau plutôt que de le mettre en cache longtemps.
GET /v1/models
Renvoie la liste des modèles que vous pouvez utiliser dès maintenant. Les demandes authentifiées incluent tous les modèles par utilisateur que vous avez activés dans le tableau de bord. La forme reflète celle d'OpenAI GET /v1/models avec des champs de capacités supplémentaires de l’Airforce.
https://api.airforce/v1/modelsExemple
curl https://api.airforce/v1/models \
-H "Authorization: Bearer sk-air-YOUR_API_KEY"Forme de réponse
L'enveloppe de niveau supérieur est { object: "list", data: Model[] }. Chaque Model contient les champs ci-dessous — les champs marqués facultatifs peuvent être omis lorsqu'ils sont inconnus.
| 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). |
Exemple de réponse
{
"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
]
}Filtrage par capacité
Le filtrage par capacités se fait côté client avec les indicateurs ci-dessous. Les filtres les plus courants :
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/'));Il existe un paramètre de requête optionnel côté serveur : GET /v1/models?channels=1 renvoie en plus les entrées d'alias par canal (pour les clients sensibles au routage) ; sans lui, ces alias sont omis.
Champs de tarification
Tous *pricepermilliontokens les champs sont des cents entiers pour 1 000 000 de jetons. Divisez par 100 pour obtenir USD par million.
| 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). |
Statut du modèle et dépréciation
| 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. |
Les modèles désactivés de force ne constituent pas une valeur de statut — ils sont entièrement exclus de /v1/models (pour tout appelant, administrateurs compris) et ne sont invoqués que par leur nom exact via l'outillage d'administration.
Vous voulez une vue consultable ?
Le page /models restitue ces mêmes données avec des comparaisons de regroupement, de recherche et de prix.