حدود المعدل
تُحدَّد طلبات واجهة API لكل مفتاح ولكل مجموعة نقاط نهاية:
| نقاط النهاية | الحد |
|---|---|
| GET /v1/products · GET /v1/balance · GET /v1/api-key · GET /v1/tasks/{token} · GET /v1/tasks/{token}/result · GET /v1/tasks/{token}/download | 60 طلباً / دقيقة لكل مفتاح API (120 / دقيقة لكل IP) |
| POST /v1/detect · POST /v1/detect/file | 10 طلبات / دقيقة لكل مفتاح API (30 / دقيقة لكل IP) |
| POST /v1/realtime/check/{series} · POST /v1/realtime/detect | حاوية رموز لكل مفتاح API: الدفعة 60، إعادة التعبئة 1/ثانية (≈60 / دقيقة بشكل مستمر)؛ لكل حساب: الدفعة 120، إعادة التعبئة 2/ثانية. طبقة IP تسمح بـ 180 / دقيقة. كل استجابة تحمل الترويسة X-RateLimit-Remaining. |
ترويسات الاستجابة
Section titled “ترويسات الاستجابة”تعتمد الترويسات التي تتلقاها على الطبقة التي ردّت، والمجموعات الثلاث لا تتصرف بالطريقة نفسها:
| الترويسة | المعنى | متى يكون موجودًا |
|---|---|---|
X-RateLimit-Remaining | الطلبات (أو الرموز) المتبقية في النافذة الحالية | كل استجابة في المجموعات الثلاث |
X-RateLimit-Limit | الحد الأعلى الذي طُبّق | في كل استجابة عامة واستجابة كشف، وفي كل 429 من طبقة IP. لا يظهر أبدًا في استجابة الوقت الفعلي — فالوقت الفعلي يستهلك حاوية رموز، لذا لا يوجد حد أعلى ثابت |
Retry-After | عدد الثواني قبل إعادة المحاولة | عند 429 فقط |
X-RateLimit-Reset | طابع زمني Unix لوقت إعادة تعيين النافذة | فقط عند 429 من المجموعة العامة أو مجموعة الكشف؛ ولا يظهر أبدًا من الوقت الفعلي أو طبقة IP |
X-RateLimit-Remaining هو الترويسة الوحيدة التي يمكن الاعتماد عليها دائمًا، والوحيدة التي يعيدها الوقت الفعلي عند النجاح.
عندما تصادف 429
Section titled “عندما تصادف 429”عند تجاوز الحد تُرجع الواجهة 429 مع ترويسة Retry-After (وتتضمن الاستجابات الفورية أيضاً حقلاً باسم retry_after). توقف الطلبات للعدد المذكور من الثوانٍ ثم استأنف بتراجع أُسّي.
{ "message": "Too many requests. Limit: 60/min."}Retry-After: 12X-RateLimit-Limit: 60X-RateLimit-Remaining: 0