Resource details

File name: Horaire temps réel (GTFS-RT PROTOBUF) - réseau TOHM
Format: gtfs-rt

Données horaires temps réel, au format GTFS-RT PROTOBUF, du réseau TOHM

This resource file is part of the dataset Réseau urbain TOHM.

Download availability

2025-12-20
100%
2025-12-21
100%
2025-12-22
100%
2025-12-23
100%
2025-12-24
100%
2025-12-25
100%
2025-12-26
100%
2025-12-27
100%
2025-12-28
100%
2025-12-29
100%
2025-12-30
100%
2025-12-31
100%
2026-01-01
100%
2026-01-02
100%
2026-01-03
100%
2026-01-04
100%
2026-01-05
100%
2026-01-06
100%
2026-01-07
100%
2026-01-08
100%
2026-01-09
100%
2026-01-10
100%
2026-01-11
100%
2026-01-12
100%
2026-01-13
100%
2026-01-14
97%
2026-01-15
100%
2026-01-16
100%
2026-01-17
100%
2026-01-18
100%
2026-01-19
100%
Learn more
We test this resource download availability every hour by making an HTTP HEAD request with a timeout of 5 seconds. If we detect a downtime, we perform subsequent tests every 10 minutes, until the resource is back online.

For SIRI and SIRI Lite feeds, we perform a GET request: a 401 or 405 status code is considered successful. In case of HTTP 500, the feed will be considered unavailable, unless the body appears to contain SOAP.

Validation details

⚠️34 warnings

Validation carried out using the current GTFS file and the GTFS-RT the 2026-01-19 at 08:07 Europe/Paris using the MobilityData GTFS-RT validator.

Warnings

vehicle_id not populated W002 11 errors

vehicle_id should be populated for TripUpdates and VehiclePositions

Sample errors
  • trip_id 2603 does not have a vehicle_id
  • trip_id 2641 does not have a vehicle_id
  • trip_id 2672 does not have a vehicle_id
  • trip_id 2673 does not have a vehicle_id
  • trip_id 2674 does not have a vehicle_id

Header timestamp is older than 65 seconds W008 1 error

The data in a GTFS-realtime feed should always be less than one minute old

Sample errors
  • header.timestamp is 6 min 47 sec old which is greater than the recommended age of 65 seconds

schedule_relationship not populated W009 22 errors

trip.schedule_relationship and stop_time_update.schedule_relationship should be populated

Sample errors
  • trip_id 2603 stop_sequence 3 (and potentially more for this trip) does not have a schedule_relationship
  • trip_id 2603 does not have a schedule_relationship
  • trip_id 2641 stop_sequence 1 (and potentially more for this trip) does not have a schedule_relationship
  • trip_id 2641 does not have a schedule_relationship
  • trip_id 2672 stop_sequence 5 (and potentially more for this trip) does not have a schedule_relationship
Validate this GTFS-RT now

Previous validations

Here is a recap of all the error types encountered over the last 30 days.

Error ID Description Errors count Number of occurences
W002 vehicle_id should be populated for TripUpdates and VehiclePositions 260 26 times (87 % of validations)
W009 trip.schedule_relationship and stop_time_update.schedule_relationship should be populated 520 26 times (87 % of validations)
W008 The data in a GTFS-realtime feed should always be less than one minute old 5 5 times (17 % of validations)
E037 Sequential GTFS-rt trip stop_time_updates shouldn't have the same stop_id 3 3 times (10 % of validations)
E003 All trip_ids provided in the GTFS-rt feed must exist in the GTFS data, unless the schedule_relationship is ADDED 19 1 times (3 % of validations)
E035 The GTFS-rt trip.trip_id should belong to the specified trip.route_id in GTFS trips.txt 3 1 times (3 % of validations)
E045 If GTFS-rt stop_time_update contains both stop_sequence and stop_id, the values must match the GTFS data in stop_times.txt 1 1 times (3 % of validations)

GTFS-RT feed content

Entities

Entities present in this feed at 2026-01-19 at 13:07 Europe/Paris.

trip_updates (12) vehicle_positions (0) service_alerts (0)

Entities seen in the last 7 days.

trip_updates

Decoded GTFS-RT feed

See full payload

Here is the decoded GTFS-RT feed Protobuf at 2026-01-19 at 13:07 Europe/Paris. You can look at the GTFS-RT documentation.

{ "entity": [ { "id": "SM:2614", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "delay": -49, "time": "1768823711" }, "departure": { "delay": -49, "time": "1768823711" }, "stopId": "PSMSEU2", "stopSequence": 4 }, { "arrival": { "delay": 5, "time": "1768823885" }, "departure": { "delay": 5, "time": "1768823885" }, "stopId": "PSMHOP2", "stopSequence": 5 }, { "arrival": { "delay": -57, "time": "1768824033" }, "departure": { "delay": -57, "time": "1768824063" }, "stopId": "PSMMRI2", "stopSequence": 6 }, { "arrival": { "delay": -64, "time": "1768824236" }, "departure": { "delay": -64, "time": "1768824236" }, "stopId": "PSMCHM2", "stopSequence": 7 }, { "arrival": { "delay": -64, "time": "1768824416" }, "stopId": "PSMGAR2", "stopSequence": 8 } ], "timestamp": "1768823696", "trip": { "directionId": 1, "routeId": "A1", "tripId": "2614" } } }, { "id": "SM:2615", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1768825380" }, "departure": { "time": "1768825380" }, "stopId": "PSMCHM1", "stopSequence": 2 }, { "arrival": { "time": "1768825800" }, "departure": { "time": "1768825800" }, "stopId": "PSMHOP1", "stopSequence": 4 }, { "arrival": { "time": "1768825920" }, "departure": { "time": "1768825920" }, "stopId": "PSMSEU1", "stopSequence": 5 }, { "arrival": { "time": "1768826100" }, "departure": { "time": "1768826100" }, "stopId": "PSMMBR1", "stopSequence": 6 }, { "arrival": { "time": "1768826160" }, "departure": { "time": "1768826160" }, "stopId": "PSMVMT1", "stopSequence": 7 }, { "arrival": { "time": "1768826280" }, "departure": { "time": "1768826280" }, "stopId": "PSMJDF1", "stopSequence": 8 } ], "timestamp": "1768821784", "trip": { "routeId": "A1", "tripId": "2615" } } }, { "id": "SM:2616", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1768827960" }, "departure": { "time": "1768827960" }, "stopId": "PSMSEU2", "stopSequence": 4 } ], "timestamp": "1768824366", "trip": { "directionId": 1, "routeId": "A1", "tripId": "2616" } } }, { "id": "SM:2649", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1768823700" }, "departure": { "time": "1768823700" }, "stopId": "PSMBAT1", "stopSequence": 2 }, { "arrival": { "time": "1768823820" }, "departure": { "time": "1768823820" }, "stopId": "PSMECL1", "stopSequence": 3 } ], "timestamp": "1768820105", "trip": { "routeId": "A2", "tripId": "2649" } } }, { "id": "SM:2650", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1768825020" }, "stopId": "PSMCOA1", "stopSequence": 1 }, { "arrival": { "time": "1768825800" }, "departure": { "time": "1768825800" }, "stopId": "PSMECL1", "stopSequence": 6 }, { "arrival": { "time": "1768825920" }, "departure": { "time": "1768825920" }, "stopId": "PSMPLA2", "stopSequence": 8 }, { "arrival": { "time": "1768826040" }, "departure": { "time": "1768826040" }, "stopId": "PSMVMO1", "stopSequence": 10 }, { "arrival": { "time": "1768826100" }, "departure": { "time": "1768826100" }, "stopId": "PSMCOU1", "stopSequence": 11 }, { "arrival": { "time": "1768826160" }, "departure": { "time": "1768826160" }, "stopId": "PSMGRE1", "stopSequence": 12 } ], "timestamp": "1768821426", "trip": { "directionId": 1, "routeId": "A2", "tripId": "2650" } } }, { "id": "SM:2651", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1768827120" }, "stopId": "PSMGAR1", "stopSequence": 1 }, { "arrival": { "time": "1768827660" }, "departure": { "time": "1768827660" }, "stopId": "PSMPLA1", "stopSequence": 5 } ], "timestamp": "1768823523", "trip": { "routeId": "A2", "tripId": "2651" } } }, { "id": "SM:2680", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1768823760" }, "departure": { "time": "1768823760" }, "stopId": "BRLMON1", "stopSequence": 2 }, { "arrival": { "time": "1768823820" }, "departure": { "time": "1768823820" }, "stopId": "BRLMAI1", "stopSequence": 3 }, { "arrival": { "delay": -24, "time": "1768824336" }, "departure": { "delay": -24, "time": "1768824336" }, "stopId": "PSMFLA1", "stopSequence": 6 }, { "arrival": { "time": "1768824480" }, "departure": { "time": "1768824480" }, "stopId": "PSMART1", "stopSequence": 8 }, { "arrival": { "time": "1768824600" }, "departure": { "time": "1768824600" }, "stopId": "PSMSAL1", "stopSequence": 10 }, { "arrival": { "time": "1768825020" }, "departure": { "time": "1768825020" }, "stopId": "PSMGAR1", "stopSequence": 13 } ], "timestamp": "1768820161", "trip": { "routeId": "B", "tripId": "2680" } } }, { "id": "SM:2681", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1768826520" }, "departure": { "time": "1768826520" }, "stopId": "LAGDUP1", "stopSequence": 2 }, { "arrival": { "time": "1768826760" }, "departure": { "time": "1768826760" }, "stopId": "LAGVER2", "stopSequence": 3 }, { "arrival": { "time": "1768827180" }, "departure": { "time": "1768827180" }, "stopId": "PSMPOM2", "stopSequence": 5 }, { "arrival": { "time": "1768827960" }, "departure": { "time": "1768827960" }, "stopId": "PSMZIN1", "stopSequence": 13 } ], "timestamp": "1768822926", "trip": { "directionId": 1, "routeId": "B", "tripId": "2681" } } }, { "id": "SM:2705", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "delay": 219, "time": "1768822669" }, "departure": { "delay": 219, "time": "1768822839" }, "stopId": "PTPMOR2", "stopSequence": 2 }, { "arrival": { "delay": 46, "time": "1768823026" }, "departure": { "delay": 46, "time": "1768823026" }, "stopId": "PTPSTP2", "stopSequence": 3 }, { "arrival": { "delay": 219, "time": "1768823319" }, "departure": { "delay": 219, "time": "1768823319" }, "stopId": "PTPSTG2", "stopSequence": 4 }, { "arrival": { "delay": 8, "time": "1768823468" }, "departure": { "delay": 8, "time": "1768823468" }, "stopId": "PSMSLT2", "stopSequence": 6 }, { "arrival": { "delay": 8, "time": "1768823708" }, "departure": { "delay": 8, "time": "1768823708" }, "stopId": "PSMMRI2", "stopSequence": 7 }, { "arrival": { "delay": -130, "time": "1768823930" }, "departure": { "delay": -130, "time": "1768823930" }, "stopId": "PSMFEL2", "stopSequence": 9 }, { "arrival": { "delay": -130, "time": "1768824110" }, "stopId": "PSMCOA1", "stopSequence": 10 } ], "timestamp": "1768822848", "trip": { "directionId": 1, "routeId": "C", "tripId": "2705" } } }, { "id": "SM:2732", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1768826100" }, "departure": { "time": "1768826100" }, "stopId": "PSMAUV1", "stopSequence": 4 } ], "timestamp": "1768822500", "trip": { "routeId": "D", "tripId": "2732" } } }, { "id": "SM:2733", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1768827120" }, "stopId": "PSMGAR1", "stopSequence": 1 }, { "arrival": { "time": "1768827660" }, "departure": { "time": "1768827660" }, "stopId": "PSMVHA1", "stopSequence": 3 } ], "timestamp": "1768823523", "trip": { "directionId": 1, "routeId": "D", "tripId": "2733" } } }, { "id": "SM:2787", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1768821960" }, "departure": { "time": "1768821960" }, "stopId": "PSMSAL1", "stopSequence": 4 }, { "arrival": { "time": "1768823040" }, "departure": { "time": "1768823040" }, "stopId": "PSMCHM1", "stopSequence": 8 }, { "arrival": { "time": "1768823340" }, "departure": { "time": "1768823340" }, "stopId": "PSMMRI1", "stopSequence": 9 }, { "arrival": { "time": "1768823700" }, "departure": { "time": "1768823700" }, "stopId": "PSMJDF1", "stopSequence": 12 }, { "arrival": { "time": "1768823760" }, "departure": { "time": "1768823760" }, "stopId": "PSMCBR1", "stopSequence": 13 }, { "arrival": { "time": "1768823820" }, "stopId": "PSMCOA1", "stopSequence": 14 } ], "timestamp": "1768818369", "trip": { "routeId": "SCO", "tripId": "2787" } } } ], "header": { "gtfsRealtimeVersion": "1.0", "timestamp": "1768824440" } }