African Open Router
⚲ ⌘K
الأسعار الوثائق الشروط
ع EN
تسجيل الدخول

البداية السريعة

أرسل أول طلب API خلال نحو دقيقتين.

1. احصل على مفتاح

سجّل الدخول إلى لوحة التحكم، وموّل رصيدًا، ثم أنشئ مفتاح API. تُعرض قيمة المفتاح مرة واحدة. نحن نخزّن بصمته فقط، فإن فقدته فلا سبيل لدينا لعرضه عليك مرة أخرى — أنشئ مفتاحًا جديدًا وأبطل القديم.

أبقِه بعيدًا عن كود الواجهة الأمامية وعن git. كل ما يستطيع قراءة المفتاح يستطيع إنفاق رصيدك.

2. وجّه كودك إلى البوابة

أفريكان أوبن راوتر متوافق مع واجهة chat-completions الخاصة بـ OpenAI. إن كان كودك يتعامل مع OpenAI بالفعل، فالتغيير الوحيد هو الـ base URL والمفتاح.

# Python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.africaopenrouter.com/v1",
    api_key="<AOR_API_KEY>",
)
// Node
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.africaopenrouter.com/v1",
  apiKey: process.env.AOR_API_KEY,
});

3. أرسل طلبًا

response = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Say hello in three words."}],
)
print(response.choices[0].message.content)

أو باستخدام curl:

curl https://api.africaopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $AOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"Hello"}]}'

4. البثّ

مرّر stream=True واقرأ الأجزاء فور وصولها. البثّ الذي يفشل في منتصفه يُبلَّغ عنه كطلب فاشل، فلا تضطر أبدًا إلى تخمين ما إذا كان النص الذي وصلك كاملًا.

stream = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Count to five."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

النماذج

استخدم اسم النموذج كما هو عند المزوّد — gpt-5.6-sol — لا اسمًا بديلًا من أفريكان أوبن راوتر. كتالوج لوحة التحكم هو المرجع لما يمكنك استدعاؤه وكم يكلّف؛ وصفحة الأسعار تعرض الأسعار الحالية.

أخطاء API الشائعة

الحالةالرمزما العمل
401invalid_token المفتاح خاطئ أو مُبطَل أو لم يُنشر بعد. تأكّد أنك أرسلت Authorization: Bearer <key>.
400invalid_request لم يجتز محتوى الطلب فحص البنية — غالبًا بسبب غياب model، أو قائمة رسائل فارغة، أو اسم نموذج فيه مسافات زائدة.
402wallet_denied رصيدك لا يغطي أسوأ تكلفة محتملة للطلب. اشحن الرصيد.
404model_unavailable النموذج غير موجود في كتالوج مساحة عملك.
429— تحديد للمعدّل عند الحافة، قبل أن تصل الطلبات إلى البوابة. وهذه الحالة ليست JSON: محتوى الرد هو error code: 1015 بصيغة text/plain، ومدة الانتظار في ترويسة Retry-After بالثواني. اعرف الحالة 429 من رمز الحالة لا من محتوى الرد — فكل صف آخر هنا يستخدم قالب JSON المذكور أعلاه.
503provider_unavailable فشل المزوّد. إعادة المحاولة آمنة — فأنت لا يُخصم منك مقابل طلب لم ينتج شيئًا.

كيف تُحتسب تكلفة الطلبات

قبل الاتصال بالمزوّد نحجز أسوأ تكلفة محتملة للطلب من رصيدك. وعند انتهائه نسوّي المبلغ الحقيقي ونعيد الفرق. والطلب المرفوض قبل وصوله إلى مزوّد لا يكلّف شيئًا. وكل طلب مسوّى يظهر في لوحة التحكم بعدد توكنزه ومبلغه الدقيق.

استبدال مفتاح

أنشئ المفتاح الجديد أولًا، وانشره، ثم أبطل القديم — بهذا الترتيب، حتى لا يعمل شيء ولو للحظة بلا بيانات اعتماد صالحة.

الحصول على المساعدة

[email protected]. أرفق request_id من محتوى الخطأ؛ فهو أسرع طريق لنا لمعرفة ما حدث لطلب بعينه.

المنتج

الأسعار البداية السريعة لوحة التحكم

للمطوّرين

مرجع API رموز الأخطاء

قانوني

شروط الخدمة سياسة الخصوصية

الشركة

الدعم الشؤون القانونية

المظهر

© 2026 أفريكان أوبن راوتر. جميع الحقوق محفوظة.