بدائل exchangerate.host بعد أن أصبحت تتطلب مفتاحاً
اعتادت exchangerate.host الرد على الطلبات دون أي تسجيل. تديرها الآن APILayer، وتتوقف الخطة المجانية عند 100 طلب شهرياً خلف مفتاح. إليك ما تغيّر وإلى أين ينتقل المطورون.
إذا كان سكربت يعمل بلا مشاكل منذ سنوات بدأ فجأة بإرجاع أخطاء 401 أو رسالة "quota exceeded"، فالسبب شبه مؤكد: انتقلت exchangerate.host إلى APILayer، وما كان نقطة نهاية بلا مفتاح وغير محدودة فعلياً أصبح يتطلب التسجيل ويمنحك 100 طلب شهرياً في الخطة المجانية. تبدأ الخطط المدفوعة من $14.99 شهرياً مقابل 10,000 طلب. فيما يلي الخيارات الواقعية، بما فيها الحالة التي يجب أن تتوقف فيها عن البحث وتستخدم الخيار المجاني.
ما الذي تغيّر فعلاً
بنت exchangerate.host سمعتها كخيار مجاني بلا مفتاح: دون تسجيل، مجرد طلب GET. تلك النسخة اختفت. تديرها الآن APILayer، ويحتاج كل طلب إلى ترويسة apikey مرتبطة بحساب.
تسمح الخطة المجانية بـ100 طلب شهرياً. بالنسبة لمشروع كان يجري بضع مئات من الاستدعاءات يومياً، يصل هذا السقف قبل انتهاء الأسبوع الأول. يبدأ الوصول المدفوع من $14.99/شهرياً مقابل 10,000 طلب.
إذا كان تثبيت ECB اليومي كل ما تحتاجه
قبل مقارنة الخيارات المدفوعة، قيّم ما إذا كنت تحتاج إلى أي منها أصلاً. Frankfurter مفتوحة المصدر ولا تتطلب مفتاح API. تغلّف أسعار البنك المركزي الأوروبي المرجعية، المنشورة مرة كل يوم عمل حوالي الساعة 16:00 بتوقيت وسط أوروبا، دون بيانات عطلة نهاية الأسبوع — يعرض السبت إغلاق الجمعة، وتوفر الآن خادم MCP خاصاً بها على mcp.frankfurter.dev.
بالنسبة للوحة تحكم أو تقرير أو مهمة دفعية تحتاج فقط "سعر اليوم الرسمي"، قد يكفي هذا التحديث اليومي وحده. دليل ترحيل كامل مع تخطيط لنقاط النهاية مرتبط أدناه إذا قررت أنه لا يكفي.
البدائل الواقعية، جنباً إلى جنب
ينقسم الميدان بحسب ما تقيّده كل خطة مجانية: عملة الأساس أو عدد الاستدعاءات أو كلاهما.
ExchangeRate-API: بلا مفتاح، لكن اقرأ شروط الإسناد
تشغّل ExchangeRate-API نقطة نهاية وصول مفتوح على open.er-api.com لا تحتاج مفتاحاً، وتُحدَّث مرة يومياً مثل Frankfurter. لكن اعرض "Rates By Exchange Rate API" مع رابط للعودة، ولا تُعِد توزيع البيانات الخام. يُرجع تجاوز حد الطلبات رمز 429 يُرفع خلال 20 دقيقة. توجد أيضاً خطة بمفتاح عند 1,500 طلب شهرياً.
Open Exchange Rates: 1,000 طلب، لكن مثبّتة على USD
تمنح Open Exchange Rates 1,000 طلب مجاني شهرياً بتحديثات كل ساعة وسجل يومي مُضمَّن. المشكلة: الخطة المجانية مثبّتة على USD. اعتماد IDR أو GBP كعملة أساس يعني التحويل من جهة العميل، أو دفع $12/شهرياً لأي عملة أساس مع استدعاءات السلسلة الزمنية والتحويل.
Fixer: 100 استدعاء، EUR فقط، دون نقطة تحويل
تسمح خطة Fixer المجانية بـ100 استدعاء API شهرياً بتحديثات كل ساعة وسجل مُضمَّن. عملة الأساس مثبّتة على EUR، دون نقطة نهاية للتحويل حتى BASIC — لن يعمل /convert?from=USD&to=IDR، فتجلب الأسعار وتضرب بنفسك.
أين تقف exchangerate.dev من هذا كله
تمنح الخطة المجانية في exchangerate.dev 10,000 استدعاء شهرياً بمعدل 12 طلباً في الدقيقة، دون الحاجة لبطاقة للتسجيل. تعمل الاستدعاءات المجهولة بلا مفتاح أيضاً، للتقييم السريع، بحد أقصى لكل عنوان IP. لا يوجد قيد على عملة الأساس في أي خطة — يمكن لأي من أزواج 465 في الكتالوج أن تكون الأساس. السجل التاريخي اليومي حتى 1999 مُضمَّن مجاناً في كل خطة، دون حجبه خلف خطة مدفوعة.
تُحدَّث الأزواج الرئيسية كل نحو 60 ثانية طوال أسبوع التداول؛ ومعظم الأزواج الأخرى كذلك، مع أسعار ECB وFRED المرجعية لتغطية الباقي. تحمل كل استجابة source وmarket_session وtimestamp وdata_updated_at وحقل notice، فتستطيع شيفرتك التمييز بين سعر لحظي حي وتثبيت يومي دون تخمين. يأتي خادم MCP بمفتاح مع كل خطة بما فيها المجانية، بالحصة نفسها المتاحة لواجهة REST.
ما الذي يتعطل فعلاً في الترحيل
الانتقال من نقطة نهاية بلا مفتاح يمسّ أكثر من الـ URL. أضف ترويسة Authorization أو معامل apikey، فكل خيار أعلاه باستثناء Frankfurter ونقطة الوصول المفتوح لدى ExchangeRate-API يتطلب واحداً منهما. أسماء الحقول أيضاً غير موحدة، فسكربت يقرأ rates.EUR من واجهة API قد يتعطل بصمت إذا عشّش المزود الجديد البيانات بشكل مختلف.
تستحق حدود الطلبات منطق إعادة محاولة، لا مجرد تجاهل. خطة مجانية تُقاس بمئات قليلة شهرياً تعني أن حلقة إعادة محاولة واحدة دون تأخير تصاعدي يمكن أن تستنزف ميزانية يوم كامل خلال دقائق. خزّن بقوة واعتبر العدد الشهري سقفاً صارماً.
اختيار واحد
طابق القيد الذي يمس شيفرتك. سعر ECB مرة يومياً دون أي إعداد: Frankfurter. مستعد لإضافة نص إسناد: نقطة النهاية المفتوحة لدى ExchangeRate-API. تحتاج عملة أساس غير USD أو EUR، أو حركة خلال اليوم: تلك هي الفجوة التي تسدها الخيارات ذات المفتاح، بما فيها exchangerate.dev.