المعلمات العالمية
الرؤوس ومخططات المصادقة ومغلفات الأخطاء والاصطلاحات التي تنطبق عبر كل نقطة نهاية.
تقع هنا الأعراف المشتركة بين كل endpoint: ترويسات المصادقة المقبولة، وغلاف الأخطاء الموحَّد، وكيفية التفاوض على أنواع محتوى الطلب والاستجابة.
تُوثَّق المعاملات الخاصة بـ endpoint واحد في صفحة ذلك الـ endpoint نفسه؛ هذه الصفحة هي المرجع الشامل العابر للوظائف.
المصادقة
تتطلب جميع نقاط النهاية مفتاح Airforce API. قم بإنشاء واحدة في لوحة القيادة أسفل مفاتيح واجهة برمجة التطبيقات. المفاتيح تبدأ بـ sk-air-.
| Parameter | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Required | Bearer sk-air-YOUR_API_KEY. Accepted on every endpoint. |
| x-api-key | string | Optional | Alternative auth header. Accepted on /v1/messages and /v1/responses for Anthropic SDK compatibility. |
| anthropic-version | string | Optional | Required when using /v1/messages with the @anthropic-ai/sdk. Use "2023-06-01". |
| Content-Type | string | Optional | application/json for body posts. multipart/form-data for endpoints that accept file uploads (transcriptions, voice cloning, etc.). |
أمثلة
# 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"رؤوس الطلب الاختيارية
| Parameter | Type | Required | Description |
|---|---|---|---|
| User-Agent | string | Optional | Helpful for debugging. Logged with every request. |
رؤوس الاستجابة
| Parameter | Type | Required | Description |
|---|---|---|---|
| Content-Type | string | Optional | application/json for JSON, text/event-stream for streams, or the media MIME (audio/mpeg, image/png, …) for binary endpoints. |
لا يُرجَع الاستخدام والتكلفة كرؤوس X-* مخصّصة. تعود أعداد الـ tokens في كائن usage ضمن جسم الاستجابة على /v1/chat/completions و/v1/messages (تظهر هناك أيضاً إصابات ذاكرة prompt-cache الخاصة بـ Anthropic، مثل cache_read_input_tokens). تُسجَّل تكلفة كل طلب في سجل الاستخدام في لوحة التحكّم، وتحمل مهام الوسائط غير المتزامنة حقل cost_cents في استجابة حالتها.
الاستدلال والتفكير (نقطة النهاية)
نماذج مع supports_reasoning: true قبول نفس المعلمات الأساسية في كل مكان تظهر فيه (حاليًا /v1/chat/completions و /v1/messages).
| Parameter | Type | Required | Description |
|---|---|---|---|
| reasoning_effort | string | Optional | "low" | "medium" | "high". OpenAI o-series / GPT-5 reasoning models only — has no effect on Claude. Use `thinking_budget` for Anthropic budget control. |
| thinking | string | object | Optional | "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_budget | integer | Optional | Maximum tokens spent reasoning before visible output starts. Maps to budget_tokens (Anthropic) and thinking_budget (Gemini). |
| ignore_defaults | boolean | Optional | Bypass your saved per-model defaults for this single request. Useful when a saved default (e.g. thinking on) is overriding the value you sent. |
نماذج مع دعم المنطق
…· liveيرى استكمالات الدردشة → التفكير للحصول على أمثلة كاملة.
اتفاقية البث
نقاط النهاية التي تقبل stream: true الرد مع Content-Type: text/event-stream وإصدار الأحداث المرسلة من الخادم. يعتمد تنسيق السلك على نقطة النهاية:
| Parameter | Type | Required | Description |
|---|---|---|---|
| /v1/chat/completions | OpenAI SSE | Optional | data: {…JSON chunk…}, terminated by data: [DONE]. |
| /v1/messages | Anthropic SSE | Optional | Named events: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop. |
| /v1/images/generations (sse: true) | OpenAI-shape SSE | Optional | Single data: event with the full response, then [DONE]. Useful for long-running image jobs to keep the connection alive. |
| /v1/video/tasks/:id/stream | progress SSE | Optional | Periodic { progress, status } events for in-flight video tasks. Stream closes once the task is done. |
مغلف خطأ
تستخدم كل استجابة خطأ نفس شكل JSON. يعكس رمز حالة HTTP فئة الفشل.
| Parameter | Type | Required | Description |
|---|---|---|---|
| error.message | string | Optional | Human-readable message safe to display. |
| error.type | string | Optional | Machine-readable category. See table below. |
| error.code | string | Optional | Specific identifier when applicable, e.g. "model_not_found". |
| error.param | string | Optional | Field name that failed validation, when relevant. |
| Parameter | Type | Required | Description |
|---|---|---|---|
| 400 | invalid_request | Optional | Malformed JSON, unknown field, validation failed. |
| 401 | authentication_error | Optional | Missing or invalid API key. |
| 403 | permission_error | Optional | Plan or per-key restriction blocks this request. |
| 404 | not_found | Optional | Unknown resource (model, task ID, voice ID). |
| 413 | payload_too_large | Optional | Upload exceeds size limit (200 MB for voice samples, etc.). |
| 429 | rate_limit | Optional | Per-second throttle, daily token cap, or balance exhausted. |
| 500 | internal_error | Optional | Unexpected. Quote the X-Request-ID when reporting. |
| 503 | upstream_error | Optional | Every 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"
}
}حدود المعدل وإعادة المحاولة
يتم فرض الحدود لكل مفتاح API. تجاوز أي منهم يعود 429:
- Per-second request throttle (plan-dependent).
- Daily token cap on free / pay-as-you-go plans.
- حد ائتمان لكل مفتاح عند ضبطه في لوحة التحكم.
- Concurrent video tasks (typically 4 in flight).
Retry with exponential backoff on 429 and 503. Don't retry on 4xx other than 429.
العجز
نقاط نهاية الإنشاء (الدردشة، الصورة، الصوت، الفيديو) ليست ضعيفة - كل مكالمة تنتج استجابة جديدة ويتم محاسبتها بشكل مستقل. للحصول على نتائج حتمية، قم بتعيين بذرة ثابتة حيث يتم دعمها (صورة / صوت / بعض نماذج الدردشة). تقوم نقاط النهاية غير المتزامنة طويلة الأمد (/v1/video/أجيال) بإرجاع معرف مهمة يمكنك إعادة استقصائه بأمان.
خريطة نقطة النهاية
كل نقطة النهاية العامة في لمحة.
| Parameter | Type | Required | Description |
|---|---|---|---|
| POST /v1/chat/completions | chat | Optional | OpenAI Chat Completions. See /docs/api/chat. |
| POST /v1/messages | chat | Optional | Anthropic Messages. See /docs/api/chat. |
| POST /v1/responses | chat | Optional | Anthropic Responses (stateful). See /docs/api/chat. |
| GET /v1/models | models | Optional | List available models. See /docs/api/models. |
| POST /v1/images/generations | image | Optional | Generate / edit images. See /docs/api/media. |
| POST /v1/audio/speech | audio | Optional | Text-to-speech. See /docs/api/audio. |
| POST /v1/audio/music | audio | Optional | Music generation. |
| POST /v1/audio/sound-effects | audio | Optional | SFX generation. |
| POST /v1/audio/transcriptions | audio | Optional | Speech-to-text. |
| POST /v1/audio/audio-isolation | audio | Optional | Voice isolation / noise removal. |
| POST /v1/audio/voice-changer | audio | Optional | Speech-to-speech voice conversion. |
| POST /v1/audio/dubbing | audio | Optional | Async multi-language dubbing. |
| GET /v1/audio/voices | audio | Optional | Catalog of TTS voices. |
| POST /v1/voices/clone | voice | Optional | Clone a custom voice. See /docs/api/audio#voice-cloning. |
| GET /v1/voices/library | voice | Optional | List your cloned voices. |
| POST /v1/video/generations | video | Optional | Async video generation. See /docs/api/video. |
| GET /v1/video/tasks/:id | video | Optional | Poll a video task. |