التوثيق /

مرجع API

ملخص REST: المصادقة والحدود وحقول الحداثة ونقاط النهاية والأخطاء.

المصادقة والحدود

تدعم endpoints البيانات تجربة مجهولة: 12 طلبًا في الدقيقة و100 في الساعة لكل IP. يستخدم الطلب بالمفتاح الحصة الشهرية للحساب.

bash · header
Authorization: Bearer YOUR_KEY
X-RateLimit-Remaining: 9999
X-RateLimit-Reset: 1788220800

حقول تشرح حداثة البيانات

يحدد `source` فئة المصدر، ويصف `market_session` حالة السوق، ويبيّن `data_updated_at` وقت أقدم مشاهدة ساهمت في الاستجابة. احتفظ بالثلاثة.

نقاط النهاية

GET /v1/latest[/{BASE}]الأسعار الحالية، كلها أو مفلترة عبر symbols.
GET /v1/{YYYY-MM-DD}[/{BASE}]لقطة تاريخية لتاريخ وعملة أساس.
GET /v1/convert/{FROM}/{TO}[/{AMOUNT}] · POST /v1/convertتحويل مبلغ عبر GET أو دفعة عبر POST.
GET /v1/rate/{slug}سعر زوج واحد بواسطة slug.
GET /v1/rangeسلسلة يومية مع ترقيم وتنزيلات.
GET /v1/currenciesقائمة العملات المدعومة دون معاملات.
GET /v1/accountالحساب والخطة والمفتاح النشط واستهلاك الشهر.

السلاسل خلال اليوم والتغطية

يدعم /v1/timeseries الفواصل 1m و5m و15m و1h و4h، والبيانات المرجعية اليومية 1d. لا يدعم 2h. تقاطعات SGD التي لا تشمل USD غير متاحة عند 4h، لكن USD/SGD والاتجاه العكسي متاحان. بدأ جمع بيانات السوق في 2026-09-14. تُحفظ بيانات 1m لمدة 30 يومًا، ولا يوجد حذف مجدول للفواصل الأكبر. مدة الاحتفاظ لا تعني توفر تاريخ كامل بهذه المدة.

تتطلب التقاطعات التاريخية مشاهدات إغلاق فعلية ضمن الفترة نفسها بتوقيت UTC، بفارق لا يتجاوز 5 ثوانٍ. يستخدم effective_at وقت المشاهدة الأقدم. لا تُملأ الفجوات، وقد تتغير الفترة المفتوحة. يستخدم 1d البيانات المرجعية اليومية لجميع عملات الكتالوج. يُحسب كل زوج مرة واحدة في الجدول، مع دعم الاتجاهين.

intervalالأزواج الفريدة
1m91
5m91
15m91
1h91
4h79
1d465
curl · EUR/JPY · 15m
curl "https://api.exchangerate.dev/v1/timeseries?base=EUR&symbols=JPY&interval=15m&from=2026-09-14T12:00:00Z&to=2026-09-14T13:00:00Z"

الفترة المدعومة التي لا تحتوي على مشاهدات تعيد HTTP 200 مع data: [] وhas_more: false وnext_cursor: null. الفاصل غير المعروف يعيد unsupported_interval، والزوج خارج التغطية يعيد unsupported_pair_interval وrejected_pairs مع HTTP 400. يُرفض الطلب المختلط بالكامل.

AUD, CAD, CHF, EUR, GBP, JPY, MXN, NOK, NZD, PLN, SEK, SGD, USD, ZAR

تفاصيل التغطية والحدود

واجهة أسعار الصرف خلال اليوم

WebSocket مباشر

اتصل بـ wss://api.exchangerate.dev/v1/stream وأرسل auth خلال 10 ثوانٍ. احتفظ بالمفتاح على الخادم، لا في URL أو JavaScript عام. الاتصالات المجهولة غير مدعومة. بعد authenticated أرسل subscribe. العملات المدعومة مذكورة أدناه؛ وتتطلب التقاطعات مشاهدتين حديثتين بفارق لا يتجاوز 5 ثوانٍ. قد تظهر الحالة unavailable أو stale. كل اتصال مقبول يستهلك وحدة واحدة من الحصة الشهرية.

يعرض الجدول حدود الحسابات الجديدة. تحتفظ الحسابات الحالية بحدود Free 1 × 5 أو Basic 3 × 25 أو Pro 10 × 100 (عدد الاتصالات × عدد الأزواج لكل اتصال). تعرض رسالة authenticated حدود حسابك الفعلية.

AUD, CAD, CHF, EUR, GBP, JPY, MXN, NOK, NZD, PLN, SEK, SGD, USD, ZAR

الخطةالاتصالات المتزامنةالأزواج لكل اتصال
Free00
Basic00
Pro00
Realtime10100
JSON · auth
{"action":"auth","api_key":"YOUR_KEY"}
JSON · subscribe
{"action":"subscribe","base":"EUR","symbols":["USD","JPY"]}

WebSocket مباشر

الأخطاء

REST: كل خطأ يستخدم `{ result: "error", code, message }`. تضيف 429 ترويسة `Retry-After`، ولا تُستخدم بيانات وهمية عند تعطل المصدر.

json · error
{
  "result": "error",
  "code": "missing_parameter",
  "message": "missing required parameter: symbols"
}

مرجع API →

استخدمه مع أدواتك

يعمل الطلب نفسه مع curl وPython وJavaScript. لا تحتاج إلى مفتاح API للتقييم.

افتح البداية السريعة
curl -fsS --max-time 10 "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"
مثال على الاستجابة
{
  "result": "success",
  "base": "USD",
  "source": "live",
  "sources": {
    "EUR": "live",
    "GBP": "live"
  },
  "market_session": "open",
  "timestamp": "2026-06-15T12:00:00Z",
  "data_updated_at": "2026-06-15T12:00:00Z",
  "effective_at": {
    "EUR": "2026-06-15T12:00:00Z",
    "GBP": "2026-06-15T12:00:00Z"
  },
  "rates": {
    "EUR": 0.86207,
    "GBP": 0.74627
  },
  "derived_symbols": [],
  "notice": "Indicative rates, not for settlement."
}

يمثل rates.EUR قيمة اليورو مقابل 1 USD. يحدد effective_at.EUR وقت الرصد، ويحدد sources.EUR فئة المصدر. القيم والأوقات للتوضيح.

افتح استجابة JSONمرجع API