Comparison/مقارنة

كيف تقارن واجهات أسعار الصرف المجانية في 2026

اختيار مصدر بيانات صرف مجاني ليس مجرد سؤال عن السعر. ست أبعاد تهم: الحصة، الحداثة خلال اليوم، بيانات وصفية عن الحداثة، عمق السجل التاريخي، نقطة نهاية للتحويل، ودعم الوكلاء. إليك كيف تفكر في كل واحد منها.

ERexchangerate.dev·Jun 19, 2026·قراءة 6 دقائق

تبدو معظم واجهات أسعار الصرف المجانية متشابهة ظاهريا: JSON، رمز حامل، وربما 100 عملة. الفروق التي تهم فعلا في مشروع حقيقي تظهر بين التثبيت اليومي والذي يليه، وفي رسائل الخطأ حين تتجاوز حدا، وفي الحقول التي يجب أن يثق بها كودك عند الثالثة فجرا. اختر بحسب الأبعاد، لا بترتيب العلامات التجارية.

Key points
تتفاوت حصة الطبقة المجانية كثيرا. يمنح exchangerate.dev 10,000 استدعاء شهريا بمعدل 12 طلبا في الدقيقة دون بطاقة.
الحداثة خلال اليوم هي أوضح عامل تمييز. المصادر المعتمدة على البنك المركزي الأوروبي وحده تنشر تثبيتا واحدا لكل يوم عمل — يستمر السوق في الحركة بعد الساعة 16:00 بتوقيت وسط أوروبا لكن السعر لا يتحدّث.
source وmarket_session في كل رد يخبران كودك بما ينظر إليه فعلا، دون تخمين من الساعة.
السجل اليومي يعود إلى 1999 عبر مسار مؤرّخ واحد: /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 طلبا في الدقيقة.

احسب الاستدعاءات قبل أن تلتزم
صفحة تجلب سعرا في كل تحميل بـ10,000 زيارة شهرية تستهلك 10,000 استدعاء. مهمة مجدولة تفحص 20 زوجا منفصلين كل 5 دقائق تجري 5,760 استدعاء يوميا؛ تجميع تلك الأزواج في طلب 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، فلا فوترة منفصلة لتتبعها.

الأبعاد الستة جنبا إلى جنب

البعدECB / Frankfurter (مفتوح المصدر)exchangerate.dev (الطبقة المجانية)
الحصة الشهرية المجانيةلا حد مفروض (تغذية ECB)؛ Frankfurter دون قياس10,000 استدعاء/شهر، 12 طلب/دقيقة
الحداثة خلال اليوميُعاد تثبيت ECB السابق حتى تثبيت يوم العمل التالي (~16:00 بتوقيت وسط أوروبا)مصدر live يتحدّث كل ~60 ثانية تقريبا طوال أسبوع التداول
البيانات الوصفية للحداثةطابع زمني فقطsource وmarket_session وdata_updated_at
عمق السجل التاريخيسجل ECB يعود إلى ~1999 (Frankfurter)؛ خلاف ذلك XML خامسجل يومي يعود إلى 1999 عبر /v1/{date}/{base}
نقطة نهاية التحويلغير متوفرة؛ الحساب مسؤولية المستدعي/v1/convert/{from}/{to}/{amount} + POST مجمّع
دعم الوكلاء / MCPلا خادم MCP أصليخادم MCP عند /v1/mcp بخمس أدوات
الأسعار إرشادية في كل الحالات
سواء كان المصدر البنك المركزي الأوروبي أو الاحتياطي الفيدرالي أو تجميعا فوريا، فكل أسعار الصرف المتاحة للعموم أرقام مرجعية للتحليل والعرض. ليست تسعيرة تداول ولا ينبغي استخدامها لتسوية صفقة.

اختيار الأنسب

إذا كان مشروعك يحتاج فقط سعر إغلاق يومي واحد، ولا يحتاج بيانات وصفية عن الحداثة، ولا يمانع جلب تغذية XML الخام للبنك المركزي الأوروبي، فإن Frankfurter يغطي مساحة واسعة مجانا. إنه مشروع مفتوح المصدر جيد الصيانة ونقطة انطلاق معقولة.

إذا احتجت حداثة خلال اليوم (أسعارا تتحرك طوال اليوم، لا عند تثبيت البنك المركزي الأوروبي فقط)، أو أردت source وmarket_session في الرد، أو احتجت سجلا يتجاوز ما هو متاح بسهولة من تغذية البنك المركزي الأوروبي، أو كنت تبني وكيل ذكاء اصطناعي يستدعي أدوات صرف، فإن exchangerate.dev مصمم لهذه الحالات. الطبقة المجانية لا تتطلب بطاقة وخادم MCP مضمّن.

الواجهة البرمجية الصحيحة هي التي تطابق قيودها حالة استخدامك، لا التي تملك أطول قائمة ميزات.

ER
exchangerate.dev
أسعار صرف إرشادية للمطورين وللأدوات التي يبنونها.

Keep reading

Referenceقراءة source وmarket_sessionRead Guideزوّد وكيل الذكاء الاصطناعي لديك بأسعار صرف حية عبر MCPRead
المزيد من المقارناتFixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
تعلّمReading source and market_session in your pipelineIndicative vs executable FX rates: what a rates API actually gives youأسعار الصرف المرجعية للبنك المركزي الأوروبي، موضحة
أسعار مباشرةEUR/USDGBP/USDUSD/JPY