Api.Airforce
API REFERENCE

Parametri universali

Intestazioni, schemi di autenticazione, buste di errore e convenzioni che si applicano a ogni endpoint.

Autenticazione

Tutti gli endpoint richiedono una chiave API Airforce. Generane uno nella dashboard qui sotto Chiavi API. Le chiavi iniziano con sk-air-.

ParameterTypeRequiredDescription
AuthorizationstringRequiredBearer sk-air-YOUR_API_KEY. Accepted on every endpoint.
x-api-keystringOptionalAlternative auth header. Accepted on /v1/messages and /v1/responses for Anthropic SDK compatibility.
anthropic-versionstringOptionalRequired when using /v1/messages with the @anthropic-ai/sdk. Use "2023-06-01".
Content-TypestringOptionalapplication/json for body posts. multipart/form-data for endpoints that accept file uploads (transcriptions, voice cloning, etc.).

Esempi

# Standard
curl https://api.airforce/v1/chat/completions \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \

# Anthropic SDK style (only on /v1/messages, /v1/responses)
curl https://api.airforce/v1/messages \
  -H "x-api-key: sk-air-YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \

# Multipart upload (file endpoints)
curl https://api.airforce/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-air-YOUR_API_KEY" \
  -F "[email protected]" \
  -F "model=whisper-1"

Intestazioni di richiesta facoltative

ParameterTypeRequiredDescription
X-Request-IDstringOptionalEchoed in the response. Send your own correlation ID and we forward it through to logs and intercept records.
User-AgentstringOptionalHelpful for debugging. Logged with every request.

Intestazioni di risposta

ParameterTypeRequiredDescription
X-Request-IDstringOptionalServer-generated request ID. Quote this when filing a support ticket.
X-Cost-CentsintegerOptionalCost of the request in cents (4 decimals of precision). Present on completed billing-relevant calls.
X-Tokens-Prompt / X-Tokens-CompletionintegerOptionalToken counts for chat / messages calls.
X-Cache-HitstringOptional"5m" / "1h" / "miss" on Anthropic-style cached calls.

Ragionamento e riflessione (cross-endpoint)

Modelli con supports_reasoning: true accettano gli stessi parametri canonici ovunque appaiano (attualmente /v1/chat/completions E /v1/messages).

ParameterTypeRequiredDescription
reasoning_effortstringOptional"low" | "medium" | "high". OpenAI o-series / GPT-5 reasoning models only — has no effect on Claude. Use `thinking_budget` for Anthropic budget control.
thinkingstring | objectOptional"on" / "off" / "auto" for a quick toggle, or { type: "enabled", budget_tokens: N } Anthropic shape. Both forms accepted, both normalised to the upstream's native shape.
thinking_budgetintegerOptionalMaximum tokens spent reasoning before visible output starts. Maps to budget_tokens (Anthropic) and thinking_budget (Gemini).
ignore_defaultsbooleanOptionalBypass your saved per-model defaults for this single request. Useful when a saved default (e.g. thinking on) is overriding the value you sent.

Modelli con supporto del ragionamento

· live

Vedere Completamenti chat → Ragionamento per esempi completi.


Convenzione sullo streaming

Endpoint che accettano stream: true rispondere con Content-Type: text/event-stream ed emettere eventi inviati dal server. Il formato del cavo dipende dal punto finale:

ParameterTypeRequiredDescription
/v1/chat/completionsOpenAI SSEOptionaldata: {…JSON chunk…}, terminated by data: [DONE].
/v1/messagesAnthropic SSEOptionalNamed events: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop.
/v1/images/generations (sse: true)OpenAI-shape SSEOptionalSingle data: event with the full response, then [DONE]. Useful for long-running image jobs to keep the connection alive.
/v1/video/tasks/:id/streamprogress SSEOptionalPeriodic { progress, status } events for in-flight video tasks. Stream closes once the task is done.

Busta di errore

Ogni risposta all'errore utilizza la stessa forma JSON. Il codice di stato HTTP riflette la classe di errore.

ParameterTypeRequiredDescription
error.messagestringOptionalHuman-readable message safe to display.
error.typestringOptionalMachine-readable category. See table below.
error.codestringOptionalSpecific identifier when applicable, e.g. "model_not_found".
error.paramstringOptionalField name that failed validation, when relevant.
ParameterTypeRequiredDescription
400invalid_requestOptionalMalformed JSON, unknown field, validation failed.
401authentication_errorOptionalMissing or invalid API key.
403permission_errorOptionalPlan or per-key restriction blocks this request.
404not_foundOptionalUnknown resource (model, task ID, voice ID).
413payload_too_largeOptionalUpload exceeds size limit (200 MB for voice samples, etc.).
429rate_limitOptionalPer-second throttle, daily token cap, or balance exhausted.
500internal_errorOptionalUnexpected. Quote the X-Request-ID when reporting.
503upstream_errorOptionalEvery key for the requested provider is failing right now. Retry with a different model or wait.
{
  "error": {
    "message": "Model 'gpt-99' not found.",
    "type": "invalid_request",
    "param": "model",
    "code": "model_not_found"
  }
}

Limiti di velocità e tentativi

I limiti vengono applicati per chiave API. Il superamento di uno qualsiasi di essi restituisce 429:

  • Per-second request throttle (plan-dependent).
  • Daily token cap on free / pay-as-you-go plans.
  • Limite di credito per chiave quando ne imposti uno nella dashboard.
  • Concurrent video tasks (typically 4 in flight).

Retry with exponential backoff on 429 and 503. Don't retry on 4xx other than 429.


Idempotenza

Gli endpoint di generazione (chat, immagini, audio, video) non sono idempotenti: ogni chiamata produce una nuova risposta e viene fatturata in modo indipendente. Per risultati deterministici, imposta un seed fisso dove supportato (immagine/audio/alcuni modelli di chat). Gli endpoint asincroni a esecuzione prolungata (/v1/video/generazioni) restituiscono un task_id che puoi ripetere il polling in sicurezza.


Mappa degli endpoint

Tutti gli endpoint pubblici a colpo d'occhio.

ParameterTypeRequiredDescription
POST /v1/chat/completionschatOptionalOpenAI Chat Completions. See /docs/api/chat.
POST /v1/messageschatOptionalAnthropic Messages. See /docs/api/chat.
POST /v1/responseschatOptionalAnthropic Responses (stateful). See /docs/api/chat.
GET /v1/modelsmodelsOptionalList available models. See /docs/api/models.
POST /v1/images/generationsimageOptionalGenerate / edit images. See /docs/api/media.
POST /v1/audio/speechaudioOptionalText-to-speech. See /docs/api/audio.
POST /v1/audio/musicaudioOptionalMusic generation.
POST /v1/audio/sound-effectsaudioOptionalSFX generation.
POST /v1/audio/transcriptionsaudioOptionalSpeech-to-text.
POST /v1/audio/audio-isolationaudioOptionalVoice isolation / noise removal.
POST /v1/audio/voice-changeraudioOptionalSpeech-to-speech voice conversion.
POST /v1/audio/dubbingaudioOptionalAsync multi-language dubbing.
GET /v1/audio/voicesaudioOptionalCatalog of TTS voices.
POST /v1/voices/clonevoiceOptionalClone a custom voice. See /docs/api/audio#voice-cloning.
GET /v1/voices/libraryvoiceOptionalList your cloned voices.
POST /v1/video/generationsvideoOptionalAsync video generation. See /docs/api/video.
GET /v1/video/tasks/:idvideoOptionalPoll a video task.