iBusAPI

iBus Transport API

Stops, lines, timetables, live arrivals and official service alerts of Israel's public transport, as JSON over HTTPS. The same data the iBus app uses, for projects with an approved application.

Azrieli Mall/Menahem Begin Road
stop 21472
GET /api/transport/v2/stop/21472/arrivals?limit=6&lang=en
  1. 271Yerushalayim Boulevard/Mifrats Shlomolive אגדnow
  2. 42ת.רק''ל הקוממיות/דרך בגיןtimetable דן17:01
Example answer (saved, not live)
Show the JSON of this answer
200 application/json
{
  "stopId": "21472",
  "updatedAt": "2026-10-21T17:16:22+03:00",
  "stale": false,
  "arrivals": [
    {
      "vehicle_ref": "AVEexampleVehicle01",
      "line_ref": "9877",
      "route_short_name": "271",
      "agency_id": "3",
      "agency_name": "אגד",
      "stop_point_ref": "21472",
      "direction_ref": "1",
      "dated_vehicle_journey_ref": "9719820",
      "data_frame_ref": "2026-10-21",
      "item_identifier": "1433250322",
      "confidence_level": "probablyReliable",
      "call_order": 17,
      "distance_from_stop_m": 6887,
      "latitude": 32.0769,
      "longitude": 34.792049,
      "bearing": 206.0,
      "velocity": 0.0,
      "motion": "stopped",
      "destination_name": "Yerushalayim Boulevard/Mifrats Shlomo",
      "destination_ref": "35810",
      "direction_text": null,
      "current_stop_name": null,
      "current_stop_code": "21472",
      "origin_aimed_departure_utc": "2026-10-21T13:45:00Z",
      "expected_arrival_utc": "2026-10-21T14:17:00Z",
      "aimed_arrival_utc": null,
      "recorded_at_utc": "2026-10-21T14:16:05Z",
      "expected_in_min": 0,
      "wheelchair_accessible": 1,
      "stops_remaining": 16,
      "freshness": {
        "state": "live",
        "age_sec": 17,
        "observed_at_utc": "2026-10-21T14:16:05Z"
      },
      "observation_age_sec": 17,
      "gtfs_trip_id": "8947270_211026",
      "gtfs_stop_sequence": 17,
      "dest_code": "35810",
      "dest_names": {
        "he": "שדרות ירושלים/מפרץ שלמה",
        "en": "Yerushalayim Boulevard/Mifrats Shlomo",
        "ar": "جادة يروشلايم/خليج شلومو"
      },
      "trust": {
        "v": 1,
        "observed_at_utc": "2026-10-21T14:16:05Z",
        "received_at_utc": "2026-10-21T14:16:22Z",
        "age_sec": 17,
        "freshness": "live",
        "identity": "exact",
        "position": "ok",
        "checks": {
          "motion": "ok",
          "time": "ok",
          "geometry": "unknown",
          "direction": "unknown"
        },
        "issues": [],
        "forecast": "source",
        "verdict": "live"
      },
      "vtok": "EXAMPLEpass1"
    },
    {
      "vehicle_ref": "AVEexampleVehicle02",
      "line_ref": "2454",
      "route_short_name": "42",
      "agency_id": "5",
      "agency_name": "דן",
      "stop_point_ref": "21472",
      "direction_ref": "1",
      "dated_vehicle_journey_ref": "3019375",
      "data_frame_ref": "2026-10-21",
      "item_identifier": "1433250318",
      "confidence_level": "probablyReliable",
      "call_order": 24,
      "distance_from_stop_m": 8190,
      "latitude": 32.080585,
      "longitude": 34.79604,
      "bearing": 248.0,
      "velocity": 0.0,
      "motion": "stopped",
      "destination_name": "ת.רק''ל הקוממיות/דרך בגין",
      "destination_ref": "36108",
      "direction_text": null,
      "current_stop_name": null,
      "current_stop_code": "21472",
      "origin_aimed_departure_utc": "2026-10-21T13:35:00Z",
      "expected_arrival_utc": "2026-10-21T14:17:00Z",
      "aimed_arrival_utc": null,
      "recorded_at_utc": "2026-10-21T14:14:15Z",
      "expected_in_min": 0,
      "wheelchair_accessible": 1,
      "stops_remaining": 23,
      "freshness": {
        "state": "scheduled_confirmed",
        "age_sec": 127,
        "observed_at_utc": "2026-10-21T14:14:15Z",
        "basis": "gtfs_confirmed_stale_observation",
        "scheduled_arrival_utc": "2026-10-21T14:01:54Z"
      },
      "observation_age_sec": 127,
      "stale_observation": true,
      "schedule_confirmed": true,
      "gtfs_trip_id": "3019266_211026",
      "gtfs_stop_sequence": 24,
      "gtfs_scheduled_arrival_utc": "2026-10-21T14:01:54Z",
      "gtfs_scheduled_departure_utc": "2026-10-21T14:01:54Z",
      "dest_code": "36108",
      "dest_names": {
        "he": "ת.רק''ל הקוממיות/דרך בגין",
        "en": "ת.רק''ל הקוממיות/דרך בגין",
        "ar": "ת.רק''ל הקוממיות/דרך בגין"
      },
      "trust": {
        "v": 1,
        "observed_at_utc": "2026-10-21T14:14:15Z",
        "received_at_utc": "2026-10-21T14:16:22Z",
        "age_sec": 127,
        "freshness": "scheduled_confirmed",
        "identity": "exact",
        "position": "ok",
        "checks": {
          "motion": "ok",
          "time": "ok",
          "geometry": "unknown",
          "direction": "unknown"
        },
        "issues": [],
        "forecast": "timetable",
        "verdict": "schedule"
      },
      "vtok": "EXAMPLEpass2"
    }
  ],
  "source": "siri",
  "server_now_utc": "2026-10-21T14:16:22Z",
  "freshness_contract": 1,
  "source_state": "ok"
}

What you can get#

Access#

Integrations call the API from a server with the key of an approved project: Authorization: Bearer <key>. How to get access. Personal functions of the iBus app (favourites, notifications, the Lior assistant) are not part of this API; see access, keys and privacy.

A key is required: since 24.10.2026 the /api/transport/ operations answer only requests with a key (without one: 401 KEY_REQUIRED). The older addresses without /transport still answer without a key for now (transition); their end will be announced on the access page in advance.

Your first request#

curl
curl -H "Authorization: Bearer $IBUS_API_KEY" "https://api.ibusisrael.online/api/transport/stops/search?q=Azrieli&limit=3&lang=en"

Keep the key on your server, for example in the environment variable IBUS_API_KEY used in every example.

The answer lists stops with their public code, name and position. With the code, ask for arrivals: the first request guide goes step by step.

Data you can rely on#

Every realtime row carries freshness. Only rows with freshness.state = "live" are realtime predictions. An old observation is never presented as live, and a timetable time is labelled as such.

Timetable times are GTFS times of the service date and can be later than 24:00. The data and time guide explains this and the identifiers.

Limits#

Limits belong to the project: requests per minute (with a short burst), per day and per month, at the same time, and a separate budget for heavy operations. Over a limit the answer is 429 with Retry-After. Details: limits and errors.

For tools and AI assistants#

All published operations#

MethodOperationData
GETService health
/api/transport/healthz
reference
GETFreshness rules of realtime data
/api/transport/contract/freshness
reference
GETSearch stops by name or code
/api/transport/stops/search
reference
GETOne stop: position, address, fare zone
/api/transport/stop/{stopCode}
reference
GETStops around a point
/api/transport/nearby_stops
reference
GETNames and positions of up to 50 stops
/api/transport/gw/stops/brief
reference
GETExpected arrivals at a stop (realtime)
/api/transport/v2/stop/{stopCode}/arrivals
realtime
GETTimetable of a stop for a service date
/api/transport/stop/{stopCode}/day_schedule
timetable
GETIsrael Railways stations
/api/transport/gw/rail/stations
reference
GETSearch lines by public number
/api/transport/routes/search
reference
GETA route with its stops
/api/transport/line/{routeId}/full
reference
GETRoad geometry of a route on a date
/api/transport/gw/line/{routeId}/shape
reference
GETAll variants of the line of a route
/api/transport/gw/line/{routeId}/variants
reference
GETVariants of a public line number
/api/transport/gw/line/variants
reference
GETDepartures of a route for a service date
/api/transport/line/{routeId}/day_schedule
timetable
GETService alerts
/api/transport/alerts
alerts
GETOne service alert
/api/transport/alerts/{alertId}
alerts
GETAlerts affecting a stop
/api/transport/alerts/by-stop/{stopCode}
alerts
GETAlerts affecting a route
/api/transport/alerts/by-line/{agencyId}/{routeId}
alerts
GETTransport operators
/api/transport/agencies
reference
GETVersion of the stop list
/api/transport/stops/version
reference
GETIs a date in the timetable, and is it a usual day
/api/transport/gw/service-day
reference
GETWhat the server sees about your request (address, key, project)
/api/access/whoami
Access
Guide
↑ ↓ moveEnter openEsc close