mavplusz.hu APImavplusz.hu ↗
Get real-time and scheduled departure data from Hungarian public transit stops via the MÁV+ system. Includes delays, platforms, destinations, and line numbers.
curl -X GET 'https://api.parse.bot/scraper/c6edf73a-1844-4a91-88a1-a7c28f365698/get_departures?time_range=3600&max_departures=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Get all departures from a Hungarian transit stop. Returns departure time, destination, line number, track/platform, route name, and real-time information when available. Results are sorted by departure time.
| Param | Type | Description |
|---|---|---|
| stop_id | string | The GTFS stop ID for the transit stop (e.g. 'BUD:keleti|keleti_100001_99' for Budapest Keleti). |
| time_range | integer | Time range in seconds from now to fetch departures. |
| max_departures | integer | Maximum number of departures per route pattern to return. |
{
"type": "object",
"fields": {
"stop_id": "string - GTFS stop identifier",
"stop_name": "string - Human-readable stop name",
"departures": "array of departure objects sorted by time, each containing departure_time, realtime_departure, delay_minutes, is_realtime, destination, line_number, route_name, trip_name, track, mode, route_color",
"total_departures": "integer - Total number of departures found"
},
"sample": {
"data": {
"stop_id": "SOM:hkir|hkir_101357_99",
"stop_name": "Gyöngyös, autóbusz-állomás",
"departures": [
{
"mode": "COACH",
"track": "7",
"trip_name": "3610/25",
"route_name": "Hatvan-Ecséd-Rózsaszentmárton-Szűcsi-Gyöngyöspata-Gyöngyös",
"destination": "Gyöngyös, vasútállomás",
"is_realtime": true,
"line_number": "3610",
"route_color": "F6AC00",
"delay_minutes": 5,
"departure_time": "13:53",
"realtime_departure": "13:58"
}
],
"total_departures": 52
},
"status": "success"
}
}About the mavplusz.hu API
The MÁV+ API provides access to Hungarian public transit departure data through a single get_departures endpoint that returns up to the full scheduled board for any GTFS-identified stop. Each response includes at least 8 fields per departure: scheduled time, real-time departure, delay in minutes, destination, line number, track or platform, route name, and a flag indicating whether the timing is live. Results are sorted chronologically by departure time.
What the API Returns
The get_departures endpoint accepts a GTFS stop_id (e.g. BUD:keleti|keleti_100001_99 for Budapest Keleti) and returns a structured departure board for that stop. The response includes stop_id, stop_name, total_departures, and a departures array sorted by departure time. Each departure object carries departure_time, realtime_departure, delay_minutes, is_realtime, destination, line number, platform or track, and route name.
Filtering and Scoping Results
Three optional parameters let you narrow the result set. time_range (integer, seconds) limits departures to a window starting from the current time — useful for building "next N minutes" departure boards. max_departures caps the number of entries returned per route pattern, preventing high-frequency routes from dominating the list. Omitting both parameters returns the full available board for the stop.
Real-Time vs Scheduled Data
Each departure entry includes an is_realtime boolean. When true, realtime_departure reflects the live estimated time and delay_minutes indicates how many minutes behind schedule the service is running. When false, only the scheduled time is available. This distinction matters for integration: downstream alerting or display logic should check is_realtime before presenting delay information as live.
Stop Identification
Stops are identified by GTFS stop IDs as used in the MÁV+ system. These follow a structured format combining a network prefix and a stop code. You need the correct GTFS stop ID for the stop you want — the API does not currently include a stop search or autocomplete endpoint.
- Display a live departure board for Budapest Keleti or any other Hungarian rail/bus stop in a mobile or web app.
- Alert commuters when
delay_minutesexceeds a threshold on their regular route. - Build a journey planner that queries multiple stop IDs and merges sorted departure times.
- Monitor platform assignments by parsing the track/platform field for operational dashboards.
- Filter departures using
time_rangeto show only trains departing within the next 30 minutes. - Log historical delay data by recording
delay_minutesandrealtime_departurevalues over time for a given stop.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does MÁV+ have an official developer API?+
How does the API distinguish real-time data from scheduled data?+
is_realtime boolean. When it is true, the realtime_departure field holds the live estimated departure time and delay_minutes reflects the current delay. When is_realtime is false, only the scheduled departure_time is populated and delay_minutes should be treated as zero or absent.Does the API cover bus and tram stops, or only trains?+
Is there a stop search endpoint to find GTFS stop IDs?+
stop_id directly; there is no search-by-name or autocomplete endpoint in this version. You can fork this API on Parse and revise it to add a stop lookup endpoint.Does the API return intermediate stops or the full route path for a departure?+
route name and destination, but the full list of intermediate stops along the route is not returned. The API covers stop-level departure boards, not complete trip itineraries. You can fork this API on Parse and revise it to add a trip detail endpoint that returns the full stop sequence.