Unofficial GTFS Realtime feed for Berlin & Brandenburg

This endpoint provides realtime transit data for Berlin & Brandenburg in the GTFS Realtime (GTFS-RT) format.

API status

Underneath, it works by polling the VBB HAFAS endpoint. Those interested in delays of all vehicles, instead of a particular one, don't have to poll VBB's API brute-force: They're able to fetch the data efficiently from here.

Note: This feed is run by people not related to VBB, BVG and the government.

Why use this API?

Getting Started

Note: This project is work-in-progress, the feed might go offline at any time! I'm happy to receive any kind of feedback via the berlin-gtfs-rt-server GitHub Issues.

The URL of the GTFS-RT feed is https://v0.berlin-gtfs-rt.transport.rest/feed.

As an example, let's use print-gtfs-rt-cli, head and jq to inspect it:

curl 'https://v0.berlin-gtfs-rt.transport.rest/feed' -s | print-gtfs-rt --json | head -n 1 | jq
{
	"id": "10989100",
	"is_deleted": false,
	"trip_update": null,
	"vehicle": {
		"trip": {
			"trip_id": "143651102",
			"route_id": "17453_700",
			"direction_id": 0,
			"start_time": "",
			"start_date": "",
			"schedule_relationship": 0
		},
		"vehicle": {
			"id": "m41",
			"label": "U Hermannplatz",
			"license_plate": ""
		},
		"position": {
			"latitude": 52.48768997192383,
			"longitude": 13.42607307434082,
			"bearing": 0,
			"odometer": 0,
			"speed": 0
		},
		"current_stop_sequence": 0,
		"stop_id": "900000078105",
		"current_status": 1,
		"timestamp": 0,
		"congestion_level": 0,
		"occupancy_status": 0
	},
	"alert": null
}