Api.Airforce
API REFERENCE

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.

GEThttps://api.airforce/v1/models

Exemple

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.

ParameterTypeRequiredDescription
idstringOptionalPublic model identifier you pass as the "model" field on every other endpoint, e.g. "claude-sonnet-4.6" or "gpt-5.1-chat".
objectstringOptionalAlways "model".
createdintegerOptionalUnix timestamp at which this listing was generated (current server time) — not a stable per-model creation date.
owned_bystringOptionalVendor name: "openai", "anthropic", "google", "deepseek", …
catalog_idstringOptionalCanonical vendor identifier for the underlying model family (e.g. "anthropic/claude-sonnet-4-6"). Stable across Airforce ID changes.
context_lengthintegerOptionalTotal context window in tokens (input + output).
max_output_tokensintegerOptionalHard cap on a single response. Use this as the upper bound when picking max_tokens.
input_modalitiesarrayOptionalSubset of ["text", "image", "audio", "document", "video"] the model accepts as input.
output_modalitiesarrayOptionalSubset of ["text", "image", "audio", "video"] the model can produce.
supports_chatbooleanOptionalAvailable on /v1/chat/completions and /v1/messages.
supports_streamingbooleanOptionalHonors stream: true.
supports_visionbooleanOptionalAccepts image_url content blocks.
supports_toolsbooleanOptionalAccepts the tools / tool_choice parameters.
supports_reasoningbooleanOptionalHonors reasoning_effort / thinking / thinking_budget.
supports_documentsbooleanOptionalAccepts document content blocks (PDF, etc.).
supports_cachingbooleanOptionalHonors cache_control on Anthropic-style system prompts.
supports_audio_inputbooleanOptionalAccepts audio content blocks (multimodal STT-in-chat).
supports_video_inputbooleanOptionalAccepts video content blocks.
knowledge_cutoffstringOptionalVendor-published knowledge cutoff month, e.g. "2025-09".
statusstringOptionalLive health: "operational" | "degraded" | "partial_outage" | "major_outage" (legacy "stable" / "down" / "offline" may also appear).
pricepermilliontokensintegerOptionalInput cost in cents per 1M tokens. Output side has output_pricepermilliontokens.
cache_read_pricepermilliontokensintegerOptionalDiscounted 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.

ParameterTypeRequiredDescription
pricepermilliontokensintegerOptionalInput tokens, cents per 1M.
output_pricepermilliontokensintegerOptionalOutput tokens, cents per 1M.
cache_write_5m_pricepermilliontokensintegerOptionalCache-write rate for 5-minute TTL caches (Anthropic).
cache_write_1h_pricepermilliontokensintegerOptionalCache-write rate for 1-hour TTL caches (Anthropic).
cache_read_pricepermilliontokensintegerOptionalCache-read rate (typically 10× cheaper than uncached input).

Statut du modèle et dépréciation

ParameterTypeRequiredDescription
operationalstatusOptionalHealthy — recent calls are succeeding. The usual value for an available model.
degradedstatusOptionalCallable, but with elevated errors or latency.
partial_outagestatusOptionalA subset of upstream channels is failing.
major_outagestatusOptionalMost or all calls are currently failing.
stable / down / offlinestatusOptionalLegacy 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.