بلا تسجيل دخول: كيف يحافظ تحديد المعدل المجهول على مجانية الأداة
أدوات الكتالوج والاستدعاءات المجهولة على /api/v1 لا تحتاج حساباً. تحمل الردود المستضافة ترويسات X-RateLimit ويضيف 429 ترويسة Retry-After كذلك.

يحتفظ PDF123 بمسار رفع وتنزيل بلا حساب. وتوجد العمليات نفسها أيضاً تحت /api/v1/ كي يستدعيها سكربت من دون أن ينقر إنسان زر المعالجة. والاستخدام المجهول لا يحتاج مفتاح API. وتمنع حدود المعدل هذا السطح من أن يصبح مضيفاً مجانياً بلا سقف.
المجهول هو المسار الافتراضي
أسقط ملفاً على صفحة أداة مثل الضغط أو الدمج وشغّلها. ويعمل REST المجهول تحت /api/v1/ بالطريقة نفسها لأدوات الكتالوج. والنقاط تحت /api/v1/general/ و/api/v1/misc/ و/api/v1/security/ و/api/v1/convert/ و/api/v1/filter/ هي بادئات الأدوات المجهولة، وكل أداة في كتالوج البوابة تُقابل مساراً داخل تلك البادئات.
والتسجيل موجود كي تنشئ مفتاح API شخصياً للأتمتة، لا كي يصبح زرّ المعالجة جدار دفع. ويبقى نموذج المتصفح والعقد عبر HTTP متوافقين: فكتلة «Call this from code» في كل صفحة أداة تبني أمر curl من الحقول نفسها التي يرسلها النموذج.
ومسارات الإدارة وملف المستخدم وغيرها من المسارات غير المتعلقة بالأدوات خارج تلك البادئات. فالمستدعي المجهول الذي يصل إلى مسار مقيّد يحصل على فشل مصادقة، لا على مرور مجاني في سطح API كله.
ما تقوله الترويسات
كل رد API مستضاف يعلن ميزانيته، وهذا منفَّذ في pdfx-server:
X-RateLimit-Limit: سقف الفترة المعلن لهذا الردX-RateLimit-Remaining: الميزانية المتبقية في الفترة الحاليةX-RateLimit-Reset: علامة إعادة الضبط للنافذة، فاقرأ القيمة ولا تفترض يوماً تقويمياً
وعند استجابة HTTP 429 تخبر Retry-After العميل المهذّب بموعد المحاولة التالية. وتستخدم أعطال الحصة رمز المشكلة المنظّم rate_limited ضمن أخطاء المطوّرين، بالشكل application/problem+json نفسه الذي تحمله أعطال API الأخرى. فيستطيع سكربت أن يتفرّع على الرمز من دون كشط صفحة خطأ HTML.
وقد تتغير السقوف الرقمية بإعدادات النشر. فالترويسات في رد بعينه هي مصدر الحقيقة، لا لقطة في مقال، والعميل الذي يثبّت رقماً يومياً من هذا المقال سيخطئ في المرة التالية التي يعيد فيها المشغّلون ضبط الفترة. فالأفضل قراءة X-RateLimit-Remaining بعد كل استدعاء والتراجع عند اقترابه من الصفر.
لماذا تسقّف أداة مجانية مستدعيها
بلا سقوف تصبح النقاط المجهولة مزرعة دفعات لشخص آخر. وتحافظ الحدود على صلاحية المهام الفردية بينما تنتقل الأحمال الأثقل أو الخاصة إلى المفاتيح أو إلى الاستضافة الذاتية.
وتحمي السقوف أيضاً المعالج المشترك في العمليات المكلفة فعلاً: الدمج الكبير، وOCR الذي يعيد Markdown من المسحات (text/markdown لا ملف PDF بطبقة معادة)، وتشغيلات POST /api/v1/pipeline متعددة الخطوات. والخيار المنتجي هو «مجهول ومحدود»، لا «مجهول وبلا حدود».
والوصول المجهول يبقى معالجة مؤقتة: تُعالَج الرفوعات للمهمة وتُنظَّف عند جاهزية النتيجة. فتحديد المعدل مسألة عدالة في السعة، لا اختراع مخزن مستندات طويل الأمد خلف جدار تسجيل مجاني.
المفاتيح تغيّر الهوية لا الكتالوج
أنشئ مفتاحاً من المطوّرين حين تحتاج هوية مستدعٍ مستقرة، أو إعادات محاولة بـ Idempotency-Key يجب ألا تكرّر العمل، أو خادم ذاتي الاستضافة بمفتاح عام ثابت (SECURITY_CUSTOMGLOBALAPIKEY على جهازك). ويبقى OpenAPI عند /v1/openapi.json على أي عنوان أساسي تصل إليه.
ويتبع MCP عند /mcp الكتالوج نفسه وقصة المفاتيح نفسها لعملاء الأتمتة. وتبقى العمليات كما هي سواء كان المستدعي مجهولاً أو صاحب مفتاح؛ فالمتغير هو المصادقة والحصة.
ولمعرفة المقابض الأربعة على العملية الواحدة، من المتصفح إلى curl وMCP وأداة سطر الأوامر، راجع العملية نفسها، أربعة عملاء. ولنقل السطح كله إلى شبكتك حين لا تكفي السقوف أو سياسة الاحتفاظ، راجع ما تكسبه فعلاً من الاستضافة الذاتية.