iBusAPI

الطلب الأول

ثلاث خطوات من اسم المحطة إلى المركبات المتجهة إليها. لا تحتاج إلى تثبيت شيء لـ curl؛ تحتاج JavaScript إلى Node.js 18 أو أحدث، وتكفي Python مكتبتها القياسية.

0. احصل على مفتاح#

بعد قبول طلبك، أنشئ مفتاحًا في صفحة المطوّر. يُعرض مرة واحدة. احفظه على خادمك، مثلًا في متغير بيئة:

shell
export IBUS_API_KEY='ibk_live_k_…'

كل الأمثلة أدناه ترسله في ترويسة Authorization. لا تضع المفتاح أبدًا في عنوان الطلب أو في صفحة ويب أو في حزمة تطبيق.

1. ابحث عن المحطة#

ابحث بالاسم بالعبرية أو الإنجليزية أو العربية، أو بالرمز المكتوب على لافتة المحطة.

curl
curl -H "Authorization: Bearer $IBUS_API_KEY" "https://api.ibusisrael.online/api/transport/stops/search?q=Azrieli&limit=3&lang=en"
200 application/json (مختصر)
[
  {"stop_code": "34219", "stop_name": "Azrieli Mall", "stop_lat": 31.899117, "stop_lon": 35.007414},
  {"stop_code": "21472", "stop_name": "Azrieli Mall/Menahem Begin Road", "stop_lat": 32.074584, "stop_lon": 34.790607}
]

stop_code هو الرمز العام. قد يكون لعدة محطات الاسم نفسه: تحقّق من الموقع أو ابحث بالرمز.

2. اطلب مواعيد الوصول#

curl
curl -H "Authorization: Bearer $IBUS_API_KEY" "https://api.ibusisrael.online/api/transport/v2/stop/21472/arrivals?limit=5&lang=en"

3. اقرأ حداثة كل صف#

freshness.stateكيف تعرضه
liveتوقّع مباشر: expected_in_min وexpected_arrival_utc.
scheduled_confirmedوقت حسب الجدول: freshness.scheduled_arrival_utc. تقرير المركبة نفسه قديم، والجدول يؤكد الرحلة.
stale_observationشوهدت المركبة قبل age_sec ثانية؛ هذا ليس توقعًا مباشرًا. إذا كان eta_hidden يساوي true فلا تعرض أي وقت.
unknown_ageلم يقدّم المصدر وقتًا صالحًا؛ لا تعرض الصف على أنه مباشر.

يبيّن الحقل source_state في الغلاف ما إذا كان المصدر قد ردّ: ok أو no_data (ردّ بلا بيانات) أو unavailable.

المفاتيح للخوادم. صفحة الويب أو تطبيق الهاتف يتصل بخادمك، وخادمك يتصل بـ iBus بالمفتاح؛ الطلبات عبر النطاقات من المتصفح مسموحة لتطبيق iBus فقط.

ماذا بعد#

الدليل
↑ ↓ تنقّلEnter فتحEsc إغلاق