كيف تقارن واجهات أسعار الصرف المجانية في 2026
اختيار مصدر بيانات صرف مجاني ليس مجرد سؤال عن السعر. ست أبعاد تهم: الحصة، الحداثة خلال اليوم، بيانات وصفية عن الحداثة، عمق السجل التاريخي، نقطة نهاية للتحويل، ودعم الوكلاء. إليك كيف تفكر في كل واحد منها.
تبدو معظم واجهات أسعار الصرف المجانية متشابهة ظاهريا: JSON، رمز حامل، وربما 100 عملة. الفروق التي تهم فعلا في مشروع حقيقي تظهر بين التثبيت اليومي والذي يليه، وفي رسائل الخطأ حين تتجاوز حدا، وفي الحقول التي يجب أن يثق بها كودك عند الثالثة فجرا. اختر بحسب الأبعاد، لا بترتيب العلامات التجارية.
source وmarket_session في كل رد يخبران كودك بما ينظر إليه فعلا، دون تخمين من الساعة./v1/{date}/{base}./v1/convert وخادم MCP عند /v1/mcp يعنيان كودا لاصقا أقل للمهام الشائعة.لماذا تتفوق الأبعاد على الترتيب
قائمة مرتّبة من الواجهات البرمجية تخبرك أي واحدة فضّلها الكاتب يوم كتابتها. أما التحليل بعدا تلو الآخر فيخبرك أيها يناسب مشروعك. للوحة معلومات تستهلك بيانات مرجعية يومية فقط احتياجات مختلفة عن تطبيق سفر يعرض أسعارا طوال اليوم.
الأبعاد الستة أدناه تغطي الأسئلة التي تتكرر في كل تكامل صرف تقريبا. اعملها بالترتيب وستجد معظم المشاريع إجابة واضحة قبل أن تنتهي.
البعد 1: الحصة الشهرية المجانية وحد المعدل
الحصة تحدد ما إذا كنت تستطيع بناء نموذج أولي وتشغيل حِمل إنتاج صغير مجانا، أو ما إذا كنت ستصطدم بجدار خلال أسبوع. حد المعدل يحدد ما إذا كنت تستطيع دفع استدعاءات دفعة واحدة في مهمة مجمّعة دون كتابة منطق إعادة محاولة من اليوم الأول.
ينشر البنك المركزي الأوروبي أسعاره المرجعية مجانا ودون حصة. المقابل أنها تغذية XML خام، لا واجهة برمجية للمطورين، وتتحدّث مرة واحدة كل يوم عمل. مشروع Frankfurter مفتوح المصدر يغلّف بيانات البنك المركزي الأوروبي في واجهة JSON دون مفتاح ودون حصة مفروضة، رغم أنه يرث وتيرة التحديث اليومية الواحدة.
تستحق فئة ثالثة دون مفتاح معرفتها بمعزل عن السابقتين: مشاريع JSON ثابتة مستضافة على CDN وتحت صيانة المجتمع مثل fawazahmed0/exchange-api. لا يوجد خادم يرد على طلبك على الإطلاق — فقط ملفات JSON مرقّمة الإصدار تُقدَّم من jsDelivr أو Cloudflare Pages، تُحدَّث يوميا، وتغطي أكثر من 200 عملة (بما فيها عملات رقمية شائعة) بترخيص CC0 في الملكية العامة، دون مفتاح ودون حد معدل مفروض. المقابل معماري: لا حقل source ولا بيانات وصفية عن الحداثة، ولا نقطة نهاية للتحويل، ولا تحديثات فورية خلال اليوم، ولا جهة واحدة مسؤولة إذا تعطّلت مرآة — توصي وثائق المشروع نفسه بربط بديل احتياطي بين مضيفيه على شبكتي CDN لهذا السبب بالضبط.
كنقطة انطلاق دون مفتاح، يقبل exchangerate.dev استدعاءات مجهولة محدودة لكل عنوان IP. مفتاح مجاني، متاح عند /signup دون بطاقة، يرفع ذلك إلى 10,000 استدعاء شهريا و12 طلبا في الدقيقة.
symbols واحد يخفض ذلك إلى 288. اعرف رقمك قبل اختيار الفئة.البعد 2: الحداثة خلال اليوم
هذا هو البعد الذي لا يفكر فيه معظم المطورين حتى ينكسر شيء. يُنشر تثبيت البنك المركزي الأوروبي حوالي الساعة 16:00 بتوقيت وسط أوروبا كل يوم عمل — بعدها يستمر السوق في الحركة لكن التثبيت لا يتحدّث حتى يوم العمل التالي. أي واجهة برمجية مصدرها ذلك التثبيت فقط ستعيد سعر اليوم السابق طوال بقية بعد الظهر والليل وعطلة نهاية الأسبوع.
لخط أنابيب يستهلك أسعار إغلاق يومية واحدة فقط، هذا مقبول. أما لتطبيق موجّه للمستهلكين، أو موقع تجارة إلكترونية، أو أي كود يتوقع أن تعني «الأحدث» السوق الحالي، فتحتاج معرفة ما إذا كان السعر يعكس حركة خلال اليوم أو تثبيتا قد يصل عمره إلى 24 ساعة.
لدى exchangerate.dev مصدر live يتحدّث كل ~60 ثانية تقريبا طوال أسبوع التداول. حين يأتي زوج من ذلك المصدر، يخبرك market_session بحالة الجلسة الحالية (open، weekend، إلخ) ويؤكد data_updated_at بالضبط متى تحرّك السعر آخر مرة.
البعد 3: البيانات الوصفية للحداثة
السعر رقم. معرفة ما إذا كان هذا الرقم من تجميع فوري قبل ثلاث دقائق أو تثبيت مرجعي من صباح الأمس يغيّر ما يمكنك فعله به بمسؤولية.
تعيد معظم الواجهات البرمجية طابعا زمنيا. يخبرك ذلك متى بُني الرد، لا متى تحرّكت البيانات الأساسية آخر مرة. يعيد exchangerate.dev حقلين يجيبان معا عن السؤال الحقيقي:
source: أحدlive(تجميع فوري)، أوecb_daily(تثبيت مرجعي للبنك المركزي الأوروبي)، أوfred_daily(سلسلة يومية من الاحتياطي الفيدرالي).market_session:openأوweekendأوinterbank_closed؛ يخبرك بحالة أسبوع التداول بين البنوك.data_updated_at: متى كُتب السعر الأساسي آخر مرة، منفصل عنtimestamp(متى بُني الرد).is_forward_filled: في ردود السجل والنطاق، تعنيtrueأنه لم يُنشر سعر في ذلك اليوم وأن القيمة السابقة نُقلت للأمام.
طبقة تخزين مؤقت تتحقق من data_updated_at بدل timestamp تتجنب تقديم بيانات قديمة للمستخدمين، وتتجنب أيضا استدعاءات غير ضرورية للمصدر.
البعد 4: عمق السجل التاريخي
السجل اليومي يحدد ما إذا كنت تستطيع تعبئة مجموعة بيانات بأثر رجعي، أو بناء رسم بياني للعام الماضي، أو تشغيل انحدار على عقد من الأسعار. بعض الواجهات المجانية تحدّ السجل بـ90 يوما. أخرى تحجب السجل الأعمق خلف طبقة مدفوعة.
يعرض exchangerate.dev سجلا يوميا يعود إلى 1999 في الطبقة المجانية. مسار مؤرّخ واحد، /v1/2024-01-15/USD، يعيد سعر ذلك اليوم. نقطة نهاية /v1/range بمعاملي start_date وend_date تعيد سلسلة كاملة في استدعاء واحد. سلسلة EXR للبنك المركزي الأوروبي وبيانات FRED هي أساس تلك السجلات التاريخية، فالتغطية تطابق ما نشرته تلك المؤسسات.
البعد 5: نقطة نهاية تحويل مدمجة
تعيد كثير من الواجهات البرمجية جدول أسعار وتترك عملية الضرب لك. هذا مقبول لزوج واحد، لكن مهمة تحويل مجمّعة أو مسار دفع يحوّل إجمالي سلة يحتاج بدائية تحويل، لا مساعد حسابي.
GET /v1/convert/USD/EUR/100 يعيد rate وconverted وderived في استدعاء واحد. نقطة نهاية POST /v1/convert تتعامل مع التحويلات المجمّعة في طلب واحد. التقاطعات المثلثية، الأزواج غير المسعّرة مباشرة مقابل بعضها، تُعالج من جهة الخادم.
البعد 6: دعم الوكلاء وMCP
يحتاج وكلاء الذكاء الاصطناعي والمساعدون تعريفات أدوات منظّمة لاستدعاء واجهة برمجية بثقة. واجهة REST خام تفرض عليك كتابة ذلك الكود اللاصق بنفسك؛ خادم MCP يشحن تعريفات الأدوات مع الواجهة البرمجية.
يشغّل exchangerate.dev خادم بروتوكول سياق النموذج (MCP) عند https://api.exchangerate.dev/v1/mcp (اسم الخادم exchangerate-dev). يعرض خمس أدوات: list_currencies وget_rate وconvert وget_range وsearch_docs (بحث في الأسئلة الشائعة). تشترك الأدوات في الحصة الشهرية وحد المعدل نفسه مع واجهة REST، فلا فوترة منفصلة لتتبعها.
الأبعاد الستة جنبا إلى جنب
اختيار الأنسب
إذا كان مشروعك يحتاج فقط سعر إغلاق يومي واحد، ولا يحتاج بيانات وصفية عن الحداثة، ولا يمانع جلب تغذية XML الخام للبنك المركزي الأوروبي، فإن Frankfurter يغطي مساحة واسعة مجانا. إنه مشروع مفتوح المصدر جيد الصيانة ونقطة انطلاق معقولة.
إذا احتجت حداثة خلال اليوم (أسعارا تتحرك طوال اليوم، لا عند تثبيت البنك المركزي الأوروبي فقط)، أو أردت source وmarket_session في الرد، أو احتجت سجلا يتجاوز ما هو متاح بسهولة من تغذية البنك المركزي الأوروبي، أو كنت تبني وكيل ذكاء اصطناعي يستدعي أدوات صرف، فإن exchangerate.dev مصمم لهذه الحالات. الطبقة المجانية لا تتطلب بطاقة وخادم MCP مضمّن.
الواجهة البرمجية الصحيحة هي التي تطابق قيودها حالة استخدامك، لا التي تملك أطول قائمة ميزات.