تخطَّ إلى المحتوى

حدود المعدل

تُحدَّد طلبات واجهة API لكل مفتاح ولكل مجموعة نقاط نهاية:

نقاط النهايةالحد
GET /v1/products · GET /v1/balance · GET /v1/api-key · GET /v1/tasks/{token} · GET /v1/tasks/{token}/result · GET /v1/tasks/{token}/download60 طلباً / دقيقة لكل مفتاح API (120 / دقيقة لكل IP)
POST /v1/detect · POST /v1/detect/file10 طلبات / دقيقة لكل مفتاح API (30 / دقيقة لكل IP)
POST /v1/realtime/check/{series} · POST /v1/realtime/detectحاوية رموز لكل مفتاح API: الدفعة 60، إعادة التعبئة 1/ثانية (≈60 / دقيقة بشكل مستمر)؛ لكل حساب: الدفعة 120، إعادة التعبئة 2/ثانية. طبقة IP تسمح بـ 180 / دقيقة. كل استجابة تحمل الترويسة X-RateLimit-Remaining.

تعتمد الترويسات التي تتلقاها على الطبقة التي ردّت، والمجموعات الثلاث لا تتصرف بالطريقة نفسها:

الترويسةالمعنىمتى يكون موجودًا
X-RateLimit-Remainingالطلبات (أو الرموز) المتبقية في النافذة الحاليةكل استجابة في المجموعات الثلاث
X-RateLimit-Limitالحد الأعلى الذي طُبّقفي كل استجابة عامة واستجابة كشف، وفي كل 429 من طبقة IP. لا يظهر أبدًا في استجابة الوقت الفعلي — فالوقت الفعلي يستهلك حاوية رموز، لذا لا يوجد حد أعلى ثابت
Retry-Afterعدد الثواني قبل إعادة المحاولةعند 429 فقط
X-RateLimit-Resetطابع زمني Unix لوقت إعادة تعيين النافذةفقط عند 429 من المجموعة العامة أو مجموعة الكشف؛ ولا يظهر أبدًا من الوقت الفعلي أو طبقة IP

X-RateLimit-Remaining هو الترويسة الوحيدة التي يمكن الاعتماد عليها دائمًا، والوحيدة التي يعيدها الوقت الفعلي عند النجاح.

عند تجاوز الحد تُرجع الواجهة 429 مع ترويسة Retry-After (وتتضمن الاستجابات الفورية أيضاً حقلاً باسم retry_after). توقف الطلبات للعدد المذكور من الثوانٍ ثم استأنف بتراجع أُسّي.

{
"message": "Too many requests. Limit: 60/min."
}
Retry-After: 12
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0