Warsaw GTFS Feeds

Static Feeds

Operator GTFS Feed License Notes
ZTM Warszawa https://mkuran.pl/feed/ztm/ztm-latest.zip ZTM Warszawa Data Usage Terms (Polish) See below, comes with pared Koleje Mazowieckie data
Warszawska Kolej Dojazdowa https://mkuran.pl/feed/wkd/wkd-latest.zip CC0 1.0  
Komunikacja Miejska Łomianki https://mkuran.pl/feed/kml/kml-latest.zip CC0 1.0  

RealTime Feeds

Feed Name GTFS-RT Feed License Notes
ZTM Warszawa - Alerts https://mkuran.pl/feed/ztm/ztm-alerts.pbn <Human-Readable> (None) Updated every 15s. Data comes from ZTM RSS feed.
ZTM Warszawa - Vehicles https://mkuran.pl/feed/ztm/ztm-vehicles.pbn <Human-Readable> Warsaw Open Data Project Usage Terms (Polish) See Below


You can also take a look at the feeds at TransitFeed website:

All static feeds will be updated one week before schedules change, except for the ZTM Warszawa feed.

ZTM Warsawa GTFS is updated everyday around 00:30 Warsaw time. This is caused by how ZTM updates files on their FTP server. This data is then processed by my WarsawGTFS script.

As ZTM Warszawa vehicle locations is not provided by ZTM, but by the city hall on thier Open Data Project website, there may be some incompatibilities between static and RT data. If you can’t match trip_id from RT to any active trip from static data, please ignore it. For more informations on this topic please contact me.

Also City Hall, when using the Vehicle Locations RT feed, requires to put a credit to them. This credits has to the include the name Miasto Stołeczne Warszawa, date when data was downloaded and (if possible) link to http://api.um.warszawa.pl. This attribution text is also included at https://mkuran.pl/feed/ztm/vehicles-credit.txt


The ZTM Feed will include three additional columns, not included in standard GTFS Spec.

  • original_stop_id in stop_times.txt - WarsawGTFS changes some stop_ids (especially for railway stops and xxxx8x virtual stops), so this column contains original stop_id as referenced in the ZTM file,
  • platform_code in stops.txt - A platform identifier for (most) railway stops (from Google Transit extensions),
  • exceptional in trips.txt - Value 1 indicates an unusual trip which does not follow common line’s route (e.g. trips to depot) (from Google Transit extensions).


Even tough all feeds, as long as listed here, should be up-to-date, I need to leave the below statement if in any unexpected event I won’t be able to maintain the feed.

The feeds are provided “as is”, without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose and noninfrigement. In no event shall the author be liable for any claim, damages or other liability, whether in action of contract, tort or otherwise, arising from, out of or in connection with the feeds or the use or other dealings in the feeds.