إنتقل إلى المحتوى الرئيسي

حدود المعدل والأخطاء

متاح فيProResearch

تحد الواجهة من عدد الطلبات التي يستطيع المفتاح والحساب إجراءها، وترد على كل رفض برمز حالة ورمز خطأ ثابت. اقرأ الرمز وليس نص الرسالة: الرمز لا يتغير.

الحدود​

يُطبَّق حدّان على كل استدعاء يستخدم مفتاحًا:

  • لكل مفتاح، في الساعة. لكل مفتاح حده الساعي الخاص، بسقف الحد الأقصى لخطتك.
  • لكل حساب، في اليوم. تتشارك كل استدعاءات REST ميزانية يومية واحدة. اليوم بتوقيت UTC ويُعاد ضبطه عند 00:00 UTC.

أرقام كل خطة في الجدول الموجود في المفاتيح والنطاقات والحدود. لبعض المسارات حد إضافي قصير في الدقيقة: طرح سؤال (POST /ask) وبدء الرفع أو إنهاؤه يسمحان بعدد محدود من الاستدعاءات في الدقيقة.

الترويسات​

كل استجابة لاستدعاء اجتاز فحص الحد الساعي تحمل:

  • X-RateLimit-Limit: الحد المطبق على هذا المفتاح.
  • X-RateLimit-Remaining: الاستدعاءات المتبقية في الساعة الحالية.

عند تجاوز الحد تكون الاستجابة 429 مع Retry-After، وهو عدد الثواني التي عليك انتظارها.

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
Retry-After: 1260

أعد المحاولة بتأنٍّ​

انتظر Retry-After من الثواني ثم حاول مجددًا. لا تعد المحاولة فورًا في حلقة. السكربت الذي يجري استدعاءات كثيرة ينبغي أن يتوقف عند بلوغ الحد اليومي ويستأنف في اليوم التالي. المثال في أمثلة يعرض دالة طلب تفعل ذلك.

يخبرك GET /rest/v2/usage بمقدار ما استهلكته من اليوم.

شكل الخطأ​

يستخدم كل رفض شكل JSON واحدًا. قيمة success هي false، وتحمل error التفاصيل.

{
"success": false,
"error": {
"statusCode": 403,
"message": "This API key lacks the scope read:library.",
"code": "SCOPE_REQUIRED",
"details": { "scopes": ["read:library"] },
"timestamp": "2026-11-04T09:00:00.000Z",
"path": "/rest/v2/search",
"method": "GET"
}
}

code هو الجزء المقروء آليًا. قد يغيب في استجابات التحقق العادي أو "غير موجود"، حيث يحمل statusCode وmessage المعنى. وقد تكون message قائمة نصوص عندما تكون عدة حقول خاطئة.

رموز الحالة والأخطاء​

الحالةالرمزالمعنى
400-الطلب مشوَّه. كما أن معامل استعلام أو حقل جسم لا يعرفه المسار يُعد 400.
400SCOPE_NOT_ALLOWEDطلبت نطاقًا لا تشمله خطتك عند إنشاء مفتاح.
401API_KEY_INVALIDالمفتاح مفقود أو غير معروف أو ملغى أو منتهي الصلاحية أو محظور. تحمل الاستجابة WWW-Authenticate: Bearer realm="readsira".
401API_KEY_IN_QUERYأُرسل المفتاح في العنوان. أرسله في ترويسة.
402PLAN_REQUIREDالخطة لا تتضمن REST API (Free)، أو لا تتضمن الرفع. تبقى مفاتيح MCP تعمل على /mcp.
402PLAN_LIMIT_REACHEDبُلغ حد عددي، مثل الإجابات في الشهر.
402AI_QUOTA_EXCEEDEDاستُنفدت ميزانية الذكاء الاصطناعي لهذا الشهر (POST /ask).
402PROJECT_LIMIT_REACHEDبلغ مشروع حد العناصر في خطتك.
403SCOPE_REQUIREDينقص المفتاح النطاق الذي يحتاجه المسار. يذكره error.details.scopes.
404-غير موجود، أو ليس لك. لا تذكر الواجهة أيهما.
409PROJECT_ARCHIVEDحاولت الكتابة إلى مشروع مؤرشف.
429RATE_LIMITEDالحد الساعي أو اليومي. يحتوي error.details على window (hour أو day) وlimit وretryAfterSeconds.
503AI_PAUSEDالذكاء الاصطناعي متوقف لهذا اليوم (POST /ask فقط). يستمر البحث بالعمل.

الاستجابة 429 بلا رمز تأتي من الحد القصير في الدقيقة على مسار ما. انتظر وأعد المحاولة بالطريقة نفسها.

حدود المدخلات​

تفحص الواجهة كل مُدخل وترفض الطلب كله بـ 400 عندما يكون أحدها خارج النطاق.

المسارالمُدخلالمسموح
GET /searchqمن 1 إلى 500 حرف
GET /searchlimitمن 1 إلى 20، والافتراضي 8
POST /askquestionمن 1 إلى 2000 حرف
POST /askbookmarkIdsمن 1 إلى 50 معرّفًا
GET /documents/:idoffset0 حرف أو أكثر
GET /documents/:idmaxCharsمن 1 إلى 20,000، والافتراضي 12,000
GET /documents/:id/chunkslimitمن 1 إلى 100، والافتراضي 20
GET /documents/:id/transcriptlimitمن 1 إلى 500
GET /projectslimitمن 1 إلى 50، والافتراضي 20
GET /projects/:id/contextqمن 1 إلى 500 حرف
GET /projects/:id/contextmaxCharsمن 1 إلى 32,000، والافتراضي 16,000

لكل مسار قائمة كاملة بالأنواع في مرجع REST API v2.