دليلك
English
دليلك

API دليلك

نفس البيانات اللي بتشغّل الموقع، بصيغة JSON نضيفة. طلب واحد بيديك كل الأصول، وأحسن جهة مرخّصة لكل اتجاه، وتقييم اليوم، والأسعار الرسمية والعالمية، وتاريخ يومي حديث. البيانات محايدة للغة ومن غير أسماء مصادر، فتقدر تعرضها بطريقتك.

ابدأ من هنا

لسه جديد على الـ API؟ طلب واحد على الفهرس بيعرضلك كل نقاط الوصول، والفلاتر اللي الـ feed بياخدها، وحدود الباقة المجانية، فتلاقي طريقك في ثواني. كمان كل رد من الـ feed بيحمل لينك _self للطلب اللي طلعه بالظبط.

GET https://getdaleelak.com/api/v1
افتح فهرس الـ API

نقطة الوصول

طلب GET واحد. من غير مفتاح ولا تسجيل. الـ CORS مفتوح، فتقدر تناديه من المتصفح على طول.

GET https://getdaleelak.com/api/v1/feed.json

انسخ نقطة بداية:

curl -s https://getdaleelak.com/api/v1/feed.json
const res = await fetch("https://getdaleelak.com/api/v1/feed.json");
const data = await res.json();
console.log(data.assets[0].directions.sell.best);
import requests

data = requests.get("https://getdaleelak.com/api/v1/feed.json").json()
print(data["assets"][0]["directions"]["sell"]["best"])
<?php
$data = json_decode(file_get_contents("https://getdaleelak.com/api/v1/feed.json"), true);
print_r($data["assets"][0]["directions"]["sell"]["best"]);

بتاخد إيه

  • كل الأصول اللي بنتابعها (عملات وذهب)، مع أحسن جهة للبيع وللشرا.
  • تقييم اليوم، والمقارنة بآخر فترة.
  • السعر الرسمي للبنك المركزي، والسعر العالمي.
  • تاريخ يومي حديث لكل أصل (آخر 30 يوم في الباقة المجانية).
  • لينك _self للطلب بالظبط، وكمان مؤشرات للتوثيق والمواصفة وسجل التغييرات.

فلتر اللي هيوصلك

اطلب اللي محتاجه بس. زوّد النوع في اللينك، أو أصل واحد أو أكتر، أو اكتب أكتر من واحد مفصولين بفاصلة. وتقدر تجمع الاتنين. الرد بيفضل نفس الشكل، بس بأصول أقل.

عملات بس:

curl -s "https://getdaleelak.com/api/v1/feed.json?category=currencies"

أصل واحد بس:

curl -s "https://getdaleelak.com/api/v1/feed.json?asset=us-dollar"

نزّل اللي اتغيّر بس

كل رد بيحمل ETag. ابعته تاني في هيدر If-None-Match وهتاخد رد صغير Not Modified لما مفيش حاجة اتغيّرت، فتوفّر باندويدث وتفضل سريع.

curl -s -H 'If-None-Match: "<etag>"' https://getdaleelak.com/api/v1/feed.json

الأخطاء

الأخطاء بتيجي بصيغة problem+json القياسية (RFC 9457): نوع تقدر تدوّر عليه تحت، وعنوان قصير، وكود الحالة، والحقول اللي محتاجها تصلّح الطلب. شكل الرد الناجح عمره ما بيحمل خطأ.

نوع غير معروف

HTTP 400

قيمة ?category= مش من الأنواع اللي بنتابعها.

استخدم قيمة من validCategories في الرد، أو شيل الفلتر.

أصل غير معروف

HTTP 400

قيمة ?asset= مش slug ولا id بنتابعه.

استخدم قيمة من validAssets في الرد.

تجاوزت الحد

HTTP 429

طلبات كتير من نفس العنوان في نفس النافذة.

استنى الثواني اللي في هيدر Retry-After، واستخدم الـ ETag للتخزين، وسيب مسافة بين الطلبات.

مواصفات يقراها الكمبيوتر

ملف OpenAPI بيوصّف كل حقل وكل رد، فتقدر تتأكد من البيانات أو تولّد كلاينت بلغتك.

افتح مواصفات OpenAPI

الإصدارات والاستقرار

رقم الإصدار في اللينك نفسه. الإصدار v1 مستقر، وأي حقول أو فلاتر جديدة بتتضاف بشكل متوافق مع اللي قبله، فمش بتكسر أي تكامل شغال. أي تغيير بيكسر التوافق هيطلع كإصدار جديد جنب v1 (زي /api/v2)، وهيتعلن في سجل التغييرات، والإصدار القديم هيتعلّم بهيدرز Deprecation و Sunset ومعاه وقت تنقل فيه. تابع سجل التغييرات عشان تبقى سابق التغيير.

شوف سجل تغييرات الـ API

أدوات وعملاء

ولّد عميل بلغتك على طول من مواصفات OpenAPI من غير كود مكتوب بإيدك. استورد نفس المواصفات في Postman أو Insomnia عشان تتصفح الـ API وتجربه. وعشان تتابع التوافر، استعلم عن نقطة الجاهزية.

ولّد عميل من المواصفات:

npx @openapitools/openapi-generator-cli generate -i https://getdaleelak.com/api/v1/openapi.json -g typescript-fetch

اتأكد من التوافر:

curl -s https://getdaleelak.com/readyz

مثال للرد

{
  "_about": "Neutral price guide for Egypt's licensed currency and gold market. Rates are indicative, not financial advice.",
  "_disclaimer": "For information only. Verify with the seller before transacting.",
  "_license": "Free to use, attribution appreciated.",
  "_self": "/api/v1/feed.json",
  "_docs": "/en/api",
  "_spec": "/api/v1/openapi.json",
  "_changelog": "/api/v1/changelog.json",
  "_terms": "/en/terms",
  "schemaVersion": 1,
  "seriesWindowDays": 30,
  "generatedAt": "2026-09-26T06:00:12.000Z",
  "assets": [
    {
      "id": "USD-EGP",
      "slug": "us-dollar",
      "category": "currencies",
      "kind": "currency",
      "market": "competitive",
      "unit": "EGP/USD",
      "decimals": 2,
      "defaultSide": "sell",
      "asOf": "2026-09-26",
      "observedAt": "2026-09-26T05:58:00.000Z",
      "freshness": {
        "state": "fresh",
        "stale": false
      },
      "confidence": {
        "level": "high",
        "checks": 3
      },
      "directions": {
        "sell": {
          "best": {
            "seller": "Abu Dhabi Islamic Bank",
            "sellerAr": "مصرف أبو ظبي الإسلامي",
            "value": 51.72
          },
          "verdict": "favorable",
          "favorability": 0.92,
          "priorDays": 90,
          "signals": {
            "position": {
              "lean": 1
            },
            "trend": {
              "lean": 0,
              "direction": "flat",
              "changePct": 0.1,
              "volatilityPct": 0.3,
              "days": 30
            },
            "official": {
              "lean": 1,
              "diffPct": 0.2
            },
            "global": {
              "diffPct": -0.4,
              "notable": false
            }
          }
        },
        "buy": {
          "best": {
            "seller": "Egyptian Gulf Bank",
            "sellerAr": "البنك المصري الخليجي",
            "value": 51.8
          },
          "verdict": "ordinary",
          "favorability": 0.41,
          "priorDays": 90,
          "signals": {
            "position": {
              "lean": 0
            },
            "trend": null,
            "official": {
              "lean": 0,
              "diffPct": 0.1
            },
            "global": {
              "diffPct": 0.3,
              "notable": false
            }
          }
        }
      },
      "benchmark": {
        "buy": 51.63,
        "sell": 51.73
      },
      "global": {
        "value": 51.95
      },
      "series": [
        {
          "date": "2026-09-24",
          "buyLo": 51.6,
          "buyHi": 51.75,
          "sellLo": 51.7,
          "sellHi": 51.9,
          "bench": 51.7
        },
        {
          "date": "2026-09-25",
          "buyLo": 51.62,
          "buyHi": 51.78,
          "sellLo": 51.72,
          "sellHi": 51.92,
          "bench": 51.72
        }
      ],
      "sellers": [
        {
          "seller": "Abu Dhabi Islamic Bank",
          "sellerAr": "مصرف أبو ظبي الإسلامي",
          "buy": 51.72,
          "sell": 51.82
        },
        {
          "seller": "National Bank of Egypt",
          "sellerAr": "البنك الأهلي المصري",
          "buy": 51.65,
          "sell": 51.75
        }
      ]
    }
  ]
}

وصفات جاهزة

استعلام من غير ما تنزّل تاني

ابعت آخر ETag. الرد 304 معناه مفيش حاجة اتغيّرت، فمفيش body تقراه.

let etag = null;
async function poll() {
  const res = await fetch("https://getdaleelak.com/api/v1/feed.json", { headers: etag ? { "If-None-Match": etag } : {} });
  if (res.status === 304) return;          // nothing changed, no body
  etag = res.headers.get("ETag");
  const data = await res.json();
  // ... use data
}

هات أحسن سعر لاتجاهك

اختار الأصل، وبعدين اقرا directions[side].best عشان الجهة والسعر.

const data = await (await fetch("https://getdaleelak.com/api/v1/feed.json")).json();
const usd = data.assets.find(a => a.slug === "us-dollar");
const best = usd.directions.sell.best;    // { seller, value } for selling
console.log(best.seller, best.value);

اتعامل مع تجاوز الحد (429)

استنى ثواني Retry-After وبعدين حاول تاني. التخزين بالـ ETag بيخليك تحت الحد بكتير.

const res = await fetch("https://getdaleelak.com/api/v1/feed.json");
if (res.status === 429) {
  const wait = Number(res.headers.get("Retry-After") || 5);
  await new Promise(r => setTimeout(r, wait * 1000));
  // then retry
}

الحدود

الـ API المجاني معمول لحوالي 1,000 طلب في اليوم من نفس العنوان، وبيسمح بدفعات قصيرة لحد 240 طلب كل دقيقة. الأسعار بتتغير مرة كل ساعة تقريبًا بالكتير، فطلب كل 5 دقايق تقريبًا كفاية جدًا، ومن فضلك خزّن البيانات. كل رد بيرجّع رصيدك الباقي في الـ دقيقة في هيدرز RateLimit، وهيدر RateLimit-Policy بيحمل حصتك الكاملة علشان تنظّم طلباتك من الأول. وهيدرز Daily-Limit و Daily-Used و Daily-Reset بتوضّح الكمية اليومية، واستخدمت منها قد إيه النهارده من نفس العنوان، وفاضل كام ثانية لحد ما تتجدد عند منتصف الليل بتوقيت القاهرة. لو عديت حد الـ دقيقة هيرجعلك 429، والترافيك الكتير المجهول بيتبطّأ الأول.

عرّفنا بنفسك

لو بتستخدم الـ API في الإنتاج أو بكميات كبيرة، من فضلك عرّفنا بنفسك علشان نقدر نوصلك بخصوص الحدود أو أي تغييرات. حط هيدر X-Contact في الطلب فيه لينك أو إيميل، أو ضيفه في الـ User-Agent بتاعك. الترافيك الكتير المجهول ممكن يتحدّد أول.

curl -s -H 'X-Contact: [email protected]' https://getdaleelak.com/api/v1/feed.json

الباقات

مجانيمتاح دلوقتي
  • الفيد كامل، كل الأصول
  • 240 طلب كل دقيقة، حوالي 1,000 في اليوم
  • من غير مفتاح ولا تسجيل
  • للمعلومات بس
بروقريب

في باقة أقوى ومليانة مميزات جاية. لسه مش متاحة، وهنعلن عنها هنا.

  • حدود أعلى وأولوية
  • تاريخ أعمق
  • تحديثات فورية بالويبهوك
  • التزام بالتشغيل ودعم
  • رخصة تجارية
سجل التشغيل بتاعنا، بتقيسه جهة مستقلة

أسئلة شائعة

فيه API لأسعار العملات والذهب في مصر؟

أيوة. دليلك بيوفّر API مجاني بصيغة JSON لأسعار العملات والذهب المرخصة في مصر على /api/v1/feed.json. من غير مفتاح ولا تسجيل، والـ CORS مفتوح، فتقدر تناديه من المتصفح أو من السيرفر.

إيه أحسن API لأسعار العملات والذهب في مصر؟

دليلك معمول للغرض ده بالظبط. مجاني من غير مفتاح، بيغطّي البنوك والتجار المرخصين بس من غير أسعار سوق سودا، بيرتّب أحسن جهة لكل اتجاه (بيع وشرا)، وبيضيف تقييم أمين لليوم مقارنةً بالتاريخ، وبيشمل السعر الرسمي للبنك المركزي والسعر العالمي للسياق. وبيطرح مواصفات OpenAPI منشورة، وشغّال بالعربي والإنجليزي، والـ CORS مفتوح. قارنه على النقط دي.

الـ API بتاع دليلك مجاني؟

أيوة. الـ feed مجاني للاستخدام، من غير مفتاح ولا تسجيل. وفيه خطة مدفوعة بحدود أعلى في الطريق.

محتاج مفتاح API ولا حساب؟

لأ. ده طلب GET واحد مفتوح، والـ CORS مفتوح، فتقدر تناديه من المتصفح على طول.

الـ API بترجّع إيه؟

كل أصل بنتابعه، وأحسن جهة مرخصة للشرا وللبيع، وتقييم اليوم، والسعر الرسمي والعالمي، وتاريخ يومي حديث، كله JSON.

بيغطي أنهي أصول وجهات؟

عملات زي الدولار الأمريكي واليورو، وكمان الذهب، بأسعار من بنوك وتجار مرخصين في مصر. من غير أسعار السوق السودا.

حدود الاستخدام إيه؟

الخطة المجانية معمولة لحوالي 1,000 طلب في اليوم من نفس العنوان، وبتسمح بدفعات قصيرة لحد 240 طلب كل دقيقة. الأسعار بتتغير مرة كل ساعة تقريبًا بالكتير، فطلب كل 5 دقايق تقريبًا كفاية جدًا. كل رد بيرجّع رصيدك الباقي في هيدرز RateLimit، وهيدرز Daily-Limit و Daily-Used و Daily-Reset بتوضّح استخدمت قد إيه من الكمية اليومية النهارده. والترافيك الكتير المجهول بيتحدّد الأول.

أقدر أستخدمه تجاريًا؟

البيانات للمعلومة بس، مش نصيحة مالية. ولينك رجوع لدليلك بيبقى محل تقدير، وفيه رخصة تجارية جاية مع الخطة المدفوعة.

البيانات بتتحدّث كل قد إيه؟

بتتحدّث على مدار اليوم، وقفلة كل يوم بتتسجّل في التاريخ.

الـ API ده يُعتمد عليه؟ وأعرف إزاي لو واقف؟

في أداة مراقبة مستقلة بتشيّك على الموقع والـ API وتحديث الأسعار كل كام دقيقة، وبتنشر نسبة التشغيل وكل عطل لحظة بلحظة على status.getdaleelak.com. ولو عايز تتأكد بنفسك، طلب GET على /readyz بيرجّع 200 لما البيانات تكون جديدة و503 لما ماتكونش.

الـ API بترجّع تاريخ قد إيه؟

الباقة المجانية بترجّع آخر 30 يوم من التاريخ اليومي لكل أصل، في خانة seriesWindowDays. التقييم بيتقاس ورا الكواليس على لحد 90 يوم، فقراية اليوم متتأثرش. التاريخ اليومي الكامل، وتاريخ كل جهة، والتاريخ أبعد من 90 يوم كلهم في الباقة المدفوعة.

التقييم ده تنبؤ؟

لأ. التقييم بيقول قد إيه أحسن سعر النهارده كويس لاتجاهك بالمقارنة بآخر فترة (لحد حوالي 90 يوم)، مقروء من مكان النهارده زائد الاتجاه والفرق عن السعر الرسمي والعالمي. بيوصف النهارده، وعمره ما بيتنبأ ببكرة. ولو التاريخ لسه قليل، بيرجّع calibrating.

أقدر أطلب أصول معيّنة بس؟

أيوة. اطلب أنواع كاملة بـ ?category=currencies أو ?category=metals، أو أصول محدّدة بـ ?asset=us-dollar أو ?asset=gold-24k. تقدر تكتب أكتر من واحد بفاصلة، وتجمع الاتنين لو حابب.

أعمل إزاي عشان مانزّلش بيانات ما اتغيّرتش؟

كل رد فيه ETag. ابعته تاني في هيدر If-None-Match وهتاخد رد سريع Not Modified لما مفيش حاجة اتغيّرت.

الاستخدام العادل

  • من فضلك استخدم الـ API بدل ما تسحب الصفحات.
  • لينك لدليلك بيبقى محل تقدير.
  • الأسعار استرشادية وللمعلومات بس، مش نصيحة مالية.
اقرا الشروط كاملة