Api.Airforce
API REFERENCE

Parameter universal

Header, skema autentikasi, cakupan kesalahan, dan konvensi yang berlaku di setiap titik akhir.

Otentikasi

Semua titik akhir memerlukan kunci API Airforce. Hasilkan satu di dasbor di bawah Kunci API. Kunci dimulai dengan 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.).

Contoh

# 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"

Header permintaan opsional

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.

Header respons

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.

Penalaran & pemikiran (cross-endpoint)

Model dengan supports_reasoning: true menerima parameter kanonik yang sama di mana pun parameter tersebut muncul (saat ini /v1/chat/completions Dan /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.

Model dengan dukungan penalaran

· live

Melihat Penyelesaian obrolan → Penalaran untuk contoh lengkap.


Konvensi streaming

Titik akhir yang menerima stream: true merespons dengan Content-Type: text/event-stream dan memancarkan Acara Terkirim Server. Format kabel bergantung pada titik akhir:

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.

Amplop kesalahan

Setiap respons kesalahan menggunakan bentuk JSON yang sama. Kode status HTTP mencerminkan kelas kegagalan.

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"
  }
}

Batasan nilai & percobaan ulang

Batasan diterapkan per kunci API. Melebihi salah satu dari mereka akan kembali 429:

  • Per-second request throttle (plan-dependent).
  • Daily token cap on free / pay-as-you-go plans.
  • Batas kredit per kunci saat Anda mengaturnya di dashboard.
  • Concurrent video tasks (typically 4 in flight).

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


Idempotensi

Titik akhir pembuatan (obrolan, gambar, audio, video) tidak idempoten — setiap panggilan menghasilkan respons baru dan ditagih secara independen. Untuk hasil deterministik, tetapkan benih tetap jika didukung (gambar/audio/beberapa model obrolan). Titik akhir asinkron yang berjalan lama (/v1/video/generasi) mengembalikan task_id yang dapat Anda jajak pendapat ulang dengan aman.


Peta titik akhir

Sekilas tentang setiap titik akhir publik.

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.