نستخدم ملفات تعريف الارتباط. تُبقيك ملفات تعريف الارتباط وتخزين المتصفح مسجّلًا للدخول وتتذكر تفضيلاتك. وبإذنك نقيس أيضًا كيفية استخدام الموقع. يمكنك في أي وقت. راجع سياسة ملفات تعريف الارتباط.

الأخطاء

الحساب

الأخطاء

قائمة كاملة برموز الأخطاء وحالات HTTP التي تُعيدها بوابة api14 بصيغة أخطاء OpenAI، مع معنى كل رمز وكيفية التعامل معه برمجيًا.

تستخدم الأخطاء صيغة أخطاء OpenAI، فتحوّلها حِزم الـ SDK الرسمية إلى استثناءاتها المعتادة (APIError وRateLimitError وAuthenticationError وغيرها). اعتمد على code في التفرّع؛ أما message فهو شرح مقروء باللغة الإنجليزية.

{
  "error": {
    "message": "This request may cost up to $0.0123 but your balance is $0.0040. Add funds at /pricing.",
    "type": "insufficient_quota",
    "code": "insufficient_balance"
  }
}

الطلبات الفاشلة لا تُحتسب عليك. أي استجابة برمز حالة 4xx أو 5xx لا تكلّفك شيئًا.

رموز أخطاء البوابة

الحالةcodetypeالمعنى
400model_requiredinvalid_request_errorالحقل model مفقود.
400invalid_jsoninvalid_request_errorجسم الطلب ليس كائن JSON.
400invalid_bodyinvalid_request_errorتعذّرت قراءة جسم الطلب من نوع multipart.
400max_tokens_too_largeinvalid_request_errorطلب تجريبي من ساحة التجربة (playground) طلب عددًا كبيرًا جدًا من tokens المخرجات.
401invalid_api_keyauthentication_errorالمفتاح مفقود أو غير صالح الصيغة أو ملغى.
402insufficient_balanceinsufficient_quotaرصيدك بالدولار يساوي $0 أو أقل من التكلفة القصوى المقدّرة للطلب (المدخلات، حد المخرجات، الصور أو مدة الفيديو). لا يُرسل الطلب.
403model_not_allowedpermission_errorقائمة النماذج المسموح بها للمفتاح لا تتضمن هذا النموذج.
403plan_requiredpermission_errorخطتك لا تشمل فئة هذا النموذج.
404model_not_foundnot_found_errorمعرّف النموذج غير معروف أو معطَّل أو محذوف.
404not_foundnot_found_errorنقطة نهاية غير معروفة، أو مهمة فيديو أو عملية توليد لا تخصّك.
413payload_too_largeinvalid_request_errorجسم الطلب يتجاوز حد الحجم (25 MB افتراضيًا).
429rate_limitedrate_limit_errorتم تجاوز عدد الطلبات في الدقيقة. يأتي مع Retry-After: 60.
429daily_limit_reachedrate_limit_errorبلغ المفتاح حدّه اليومي للإنفاق بالدولار.
409idempotency_conflictapi_errorأُرسل طلب بهذا Idempotency-Key من قبل. استخدم مفتاحًا جديدًا لطلب آخر. حدود المعدل.
403site_not_allowedpermission_errorللأدوات فقط: موقع الصفحة ليس ضمن مواقع الأدوات المسموح بها. الأدوات المضمّنة.
429widget_daily_limitrate_limit_errorللأدوات فقط: بلغت الأداة، أو جميع الأدوات معًا، حد الإنفاق اليومي بالدولار.
429visitor_daily_limitrate_limit_errorللأدوات فقط: بلغ هذا الزائر حد الطلبات اليومي المحدد في ضوابط الأدوات.
502upstream_unavailableapi_errorتعذّر الوصول إلى المزوّد الأصلي.
4xx/502content_unavailableمتغيّرتعذّر جلب محتوى الفيديو حتى الآن (الحالة تعكس حالة المزوّد الأصلي، و502 إن لم توجد).
503maintenanceservice_unavailableوضع الصيانة، نقاط نهاية التوليد متوقفة مؤقتًا، ونقاط نهاية GET لا تزال تعمل.
503not_configuredservice_unavailableلم يتم إعداد البوابة بعد.

أخطاء المزوّد الأصلي

الأخطاء التي يُعيدها المزوّد الأصلي، مثل معامل غير صالح لنموذج معيّن، أو تجاوز طول السياق، أو رفض بسبب سياسة المحتوى، أو خطأ 429 خاص بالمزوّد، تُمرَّر برمز حالتها الأصلي وبصيغة { error: {... } } نفسها.

ما الذي يجب فعله

الحالةإعادة المحاولة؟الإجراء
400لاأصلِح جسم الطلب.
401لاتحقّق من المفتاح ومن ترويسة Authorization: Bearer. راجع المصادقة.
402لاأضف رصيدًا أو فعّل الشحن التلقائي.
403لااستخدم نموذجًا مسموحًا به، أو عدّل قائمة النماذج المسموح بها للمفتاح، أو قم بترقية خطتك.
404لاتحقّق من معرّف النموذج في صفحة النماذج.
413لاأرسل جسمًا أصغر، أو مرّر الملفات عبر URL بدلًا من base64.
429لاحقًاrate_limited: انتظر المدة المحددة في Retry-After. daily_limit_reached: انتظر يوم UTC التالي أو ارفع حد المفتاح. راجع حدود المعدّل.
502نعمأعِد المحاولة مع تراجع تدريجي (backoff)، أو أضف نماذج احتياطية.
503نعمأعِد المحاولة لاحقًا.

التعامل مع الأخطاء في الكود

import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://api14.com/api/v1', apiKey: process.env.API14_API_KEY })

try {
  await client.chat.completions.create({ model: 'openai/gpt-5-mini', messages: [{ role: 'user', content: 'Hi' }] })
} catch (err) {
  if (err instanceof OpenAI.APIError) {
    console.error(err.status, err.code, err.message)
    if (err.code === 'insufficient_balance') {
      // prompt the user to add funds
    }
  } else {
    throw err
  }
}
from openai import OpenAI, APIStatusError

client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...")

try:
    client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
except APIStatusError as e:
    print(e.status_code, e.code, e.message)

الأخطاء التي تقع بعد بدء البث تصل داخل البث نفسه. راجع Streaming.