Resource details

File name: Horaires temps réel des lignes du réseau Distribus
Format: gtfs-rt

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

Download availability

2026-03-10
100%
2026-03-11
100%
2026-03-12
100%
2026-03-13
100%
2026-03-14
100%
2026-03-15
100%
2026-03-16
96.3%
2026-03-17
100%
2026-03-18
100%
2026-03-19
100%
2026-03-20
100%
2026-03-21
100%
2026-03-22
100%
2026-03-23
100%
2026-03-24
100%
2026-03-25
100%
2026-03-26
100%
2026-03-27
100%
2026-03-28
100%
2026-03-29
100%
2026-03-30
100%
2026-03-31
100%
2026-04-01
100%
2026-04-02
100%
2026-04-03
100%
2026-04-04
100%
2026-04-05
99.4%
2026-04-06
100%
2026-04-07
100%
2026-04-08
100%
2026-04-09
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

1 error, 131 warnings

Validation carried out using the current GTFS file and the GTFS-RT the 2026-04-09 at 09:11 Europe/Paris using the MobilityData GTFS-RT validator.

Errors

stop_time_update departure time is before arrival time E025 1 error

Within the same stop_time_update, arrival and departures times can be the same, or the departure time can be later than the arrival time - the departure time should never come before the arrival time.

Sample errors
  • trip_id 405T-0823 stop_sequence 22 departure_time 09:04:08 (1775718248) is less than the same stop arrival_time 09:06:08 (1775718368) - departure time must be equal to or greater than arrival time

Warnings

vehicle_id not populated W002 44 errors

vehicle_id should be populated for TripUpdates and VehiclePositions

Sample errors
  • trip_id 1101-0850 does not have a vehicle_id
  • trip_id 103-0905 does not have a vehicle_id
  • trip_id 101-0910 does not have a vehicle_id
  • trip_id 105-0833 does not have a vehicle_id
  • trip_id 103-0820 does not have a vehicle_id

schedule_relationship not populated W009 87 errors

trip.schedule_relationship and stop_time_update.schedule_relationship should be populated

Sample errors
  • trip_id 1101-0850 stop_sequence 1 (and potentially more for this trip) does not have a schedule_relationship
  • trip_id 1101-0850 does not have a schedule_relationship
  • trip_id 103-0905 stop_sequence 1 (and potentially more for this trip) does not have a schedule_relationship
  • trip_id 103-0905 does not have a schedule_relationship
  • trip_id 101-0910 stop_sequence 1 (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 649 16 times (53 % of validations)
W009 trip.schedule_relationship and stop_time_update.schedule_relationship should be populated 1,287 16 times (53 % of validations)
E025 Within the same stop_time_update, arrival and departures times can be the same, or the departure time can be later than the arrival time - the departure time should never come before the arrival time. 5 5 times (17 % of validations)
W008 The data in a GTFS-realtime feed should always be less than one minute old 1 1 times (3 % of validations)

GTFS-RT feed content

Entities

Entities present in this feed at 2026-04-09 at 22:29 Europe/Paris.

trip_updates (8) 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-04-09 at 22:29 Europe/Paris. You can look at the GTFS-RT documentation.

{ "entity": [ { "id": "SM:1106-2250", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775767800" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 1 }, { "arrival": { "time": "1775768400" }, "stopId": "EuroAirport_AR", "stopSequence": 2 } ], "timestamp": "1775765875", "trip": { "routeId": "11", "tripId": "1106-2250" } } }, { "id": "SM:1106-2320", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775769600" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 1 } ], "timestamp": "1775766008", "trip": { "routeId": "11", "tripId": "1106-2320" } } }, { "id": "SM:1106-2305", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775768700" }, "stopId": "EuroAirport_AR", "stopSequence": 1 }, { "arrival": { "time": "1775769300" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 2 } ], "timestamp": "1775765875", "trip": { "directionId": 1, "routeId": "11", "tripId": "1106-2305" } } }, { "id": "SM:1106-2220", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775766000" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 1 }, { "arrival": { "delay": -493, "time": "1775766107" }, "stopId": "EuroAirport_AR", "stopSequence": 2 } ], "timestamp": "1775765712", "trip": { "routeId": "11", "tripId": "1106-2220" } } }, { "id": "SM:450T-2200", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "delay": 271, "time": "1775765131" }, "departure": { "delay": 271, "time": "1775765131" }, "stopId": "Rousserolles_A", "stopSequence": 2 }, { "arrival": { "delay": 280, "time": "1775765140" }, "departure": { "delay": 280, "time": "1775765140" }, "stopId": "Muguet_A", "stopSequence": 3 }, { "arrival": { "delay": 275, "time": "1775765195" }, "departure": { "delay": 275, "time": "1775765195" }, "stopId": "Parc_des_Maréchaux_A", "stopSequence": 5 }, { "arrival": { "delay": 284, "time": "1775765324" }, "departure": { "delay": 284, "time": "1775765324" }, "stopId": "Parc_Soleil_A", "stopSequence": 6 }, { "arrival": { "delay": 339, "time": "1775765439" }, "departure": { "delay": 339, "time": "1775765439" }, "stopId": "Petite_Camargue_Alsacienne_A", "stopSequence": 7 }, { "arrival": { "delay": 342, "time": "1775765502" }, "departure": { "delay": 342, "time": "1775765502" }, "stopId": "Saint-Claude_A", "stopSequence": 8 }, { "arrival": { "delay": 309, "time": "1775765529" }, "departure": { "delay": 309, "time": "1775765529" }, "stopId": "Chapelle_A", "stopSequence": 9 }, { "arrival": { "delay": 390, "time": "1775765562" }, "departure": { "delay": 390, "time": "1775765610" }, "stopId": "Rue_de_Séville_A", "stopSequence": 10 }, { "arrival": { "delay": 427, "time": "1775765707" }, "departure": { "delay": 427, "time": "1775765707" }, "stopId": "Cité_du_Rail_A", "stopSequence": 11 }, { "arrival": { "delay": 407, "time": "1775765807" }, "departure": { "delay": 407, "time": "1775765807" }, "stopId": "Trois_Lys_A", "stopSequence": 12 }, { "arrival": { "delay": 390, "time": "1775765850" }, "departure": { "delay": 390, "time": "1775765850" }, "stopId": "Saint-Louis_Gare_Est_AR", "stopSequence": 13 }, { "arrival": { "delay": 416, "time": "1775765936" }, "departure": { "delay": 416, "time": "1775765936" }, "stopId": "Église_Saint-Louis_A", "stopSequence": 14 }, { "arrival": { "delay": 390, "time": "1775765970" }, "departure": { "delay": 390, "time": "1775765970" }, "stopId": "Breisach_A", "stopSequence": 15 }, { "arrival": { "delay": 390, "time": "1775766016" }, "departure": { "delay": 390, "time": "1775766030" }, "stopId": "Croisée_des_Lys_A", "stopSequence": 16 }, { "arrival": { "delay": 450, "time": "1775766151" }, "departure": { "delay": 450, "time": "1775766210" }, "stopId": "Claude_Hess_A", "stopSequence": 17 }, { "arrival": { "delay": 480, "time": "1775766293" }, "departure": { "delay": 480, "time": "1775766300" }, "stopId": "Rhin_A", "stopSequence": 18 }, { "arrival": { "delay": 480, "time": "1775766355" }, "departure": { "delay": 480, "time": "1775766360" }, "stopId": "Notre-Dame_de_la_Paix_A", "stopSequence": 19 }, { "arrival": { "delay": 480, "time": "1775766416" }, "departure": { "delay": 480, "time": "1775766420" }, "stopId": "Frontière_A", "stopSequence": 20 }, { "arrival": { "delay": 490, "time": "1775766550" }, "departure": { "delay": 490, "time": "1775766550" }, "stopId": "Hüningerstrasse_A", "stopSequence": 21 }, { "arrival": { "delay": 490, "time": "1775766610" }, "departure": { "delay": 490, "time": "1775766610" }, "stopId": "Voltaplatz_A", "stopSequence": 22 }, { "arrival": { "delay": 490, "time": "1775766910" }, "stopId": "Schifflände_A", "stopSequence": 24 } ], "timestamp": "1775765079", "trip": { "routeId": "604", "tripId": "450T-2200" } } }, { "id": "SM:450T-2230", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "delay": 314, "time": "1775766914" }, "stopId": "Schifflände_R", "stopSequence": 1 }, { "arrival": { "delay": 314, "time": "1775767034" }, "departure": { "delay": 314, "time": "1775767034" }, "stopId": "Kinderspital_UKBB_R", "stopSequence": 2 }, { "arrival": { "delay": 314, "time": "1775767274" }, "departure": { "delay": 314, "time": "1775767274" }, "stopId": "Voltaplatz_R", "stopSequence": 3 }, { "arrival": { "delay": 314, "time": "1775767334" }, "departure": { "delay": 314, "time": "1775767334" }, "stopId": "Hüningerstrasse_R", "stopSequence": 4 }, { "arrival": { "delay": 314, "time": "1775767454" }, "departure": { "delay": 314, "time": "1775767454" }, "stopId": "Frontière_R", "stopSequence": 5 }, { "arrival": { "delay": 314, "time": "1775767514" }, "departure": { "delay": 314, "time": "1775767514" }, "stopId": "Notre-Dame_de_la_Paix_R", "stopSequence": 6 }, { "arrival": { "delay": 314, "time": "1775767574" }, "departure": { "delay": 314, "time": "1775767574" }, "stopId": "Rhin_R", "stopSequence": 7 }, { "arrival": { "delay": 314, "time": "1775767694" }, "departure": { "delay": 314, "time": "1775767694" }, "stopId": "Croisée_des_Lys_R", "stopSequence": 9 }, { "arrival": { "delay": 314, "time": "1775767754" }, "departure": { "delay": 314, "time": "1775767754" }, "stopId": "Breisach_R", "stopSequence": 10 }, { "arrival": { "delay": 284, "time": "1775767784" }, "departure": { "delay": 284, "time": "1775767784" }, "stopId": "Église_Saint-Louis_R", "stopSequence": 11 }, { "arrival": { "delay": 314, "time": "1775767814" }, "departure": { "delay": 314, "time": "1775767814" }, "stopId": "Saint-Louis_Gare_Est_AR", "stopSequence": 12 }, { "arrival": { "delay": 314, "time": "1775767874" }, "departure": { "delay": 314, "time": "1775767874" }, "stopId": "Trois_Lys_R", "stopSequence": 13 }, { "arrival": { "delay": 314, "time": "1775767994" }, "departure": { "delay": 314, "time": "1775767994" }, "stopId": "Cité_du_Rail_R", "stopSequence": 14 }, { "arrival": { "delay": 314, "time": "1775768054" }, "departure": { "delay": 314, "time": "1775768054" }, "stopId": "Rue_de_Séville_R", "stopSequence": 15 }, { "arrival": { "delay": 314, "time": "1775768114" }, "departure": { "delay": 314, "time": "1775768114" }, "stopId": "Chapelle_R", "stopSequence": 16 }, { "arrival": { "delay": 284, "time": "1775768144" }, "departure": { "delay": 284, "time": "1775768144" }, "stopId": "Saint-Claude_R", "stopSequence": 17 }, { "arrival": { "delay": 314, "time": "1775768174" }, "departure": { "delay": 314, "time": "1775768174" }, "stopId": "Petite_Camargue_Alsacienne_R", "stopSequence": 18 }, { "arrival": { "delay": 314, "time": "1775768234" }, "departure": { "delay": 314, "time": "1775768234" }, "stopId": "Parc_des_Maréchaux_R", "stopSequence": 19 }, { "arrival": { "delay": 314, "time": "1775768354" }, "departure": { "delay": 314, "time": "1775768354" }, "stopId": "Parc_Soleil_A", "stopSequence": 20 }, { "arrival": { "delay": 344, "time": "1775768504" }, "departure": { "delay": 344, "time": "1775768504" }, "stopId": "Cité_Beaulieu_R", "stopSequence": 21 }, { "arrival": { "delay": 284, "time": "1775768564" }, "departure": { "delay": 284, "time": "1775768564" }, "stopId": "Rousserolles_R", "stopSequence": 23 } ], "timestamp": "1775766452", "trip": { "directionId": 1, "routeId": "604", "tripId": "450T-2230" } } }, { "id": "SM:450T-2300", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "delay": 195, "time": "1775768655" }, "departure": { "delay": 195, "time": "1775768655" }, "stopId": "Rousserolles_A", "stopSequence": 2 }, { "arrival": { "delay": 216, "time": "1775768676" }, "departure": { "delay": 216, "time": "1775768676" }, "stopId": "Muguet_A", "stopSequence": 3 }, { "arrival": { "delay": 198, "time": "1775768718" }, "departure": { "delay": 198, "time": "1775768718" }, "stopId": "Parc_des_Maréchaux_A", "stopSequence": 5 }, { "arrival": { "delay": 198, "time": "1775768838" }, "departure": { "delay": 198, "time": "1775768838" }, "stopId": "Parc_Soleil_A", "stopSequence": 6 }, { "arrival": { "delay": 198, "time": "1775768898" }, "departure": { "delay": 198, "time": "1775768898" }, "stopId": "Petite_Camargue_Alsacienne_A", "stopSequence": 7 }, { "arrival": { "delay": 198, "time": "1775768958" }, "departure": { "delay": 198, "time": "1775768958" }, "stopId": "Saint-Claude_A", "stopSequence": 8 }, { "arrival": { "delay": 168, "time": "1775768988" }, "departure": { "delay": 168, "time": "1775768988" }, "stopId": "Chapelle_A", "stopSequence": 9 }, { "arrival": { "delay": 198, "time": "1775769018" }, "departure": { "delay": 198, "time": "1775769018" }, "stopId": "Rue_de_Séville_A", "stopSequence": 10 }, { "arrival": { "delay": 198, "time": "1775769078" }, "departure": { "delay": 198, "time": "1775769078" }, "stopId": "Cité_du_Rail_A", "stopSequence": 11 }, { "arrival": { "delay": 198, "time": "1775769198" }, "departure": { "delay": 198, "time": "1775769198" }, "stopId": "Trois_Lys_A", "stopSequence": 12 }, { "arrival": { "delay": 198, "time": "1775769258" }, "departure": { "delay": 198, "time": "1775769258" }, "stopId": "Saint-Louis_Gare_Est_AR", "stopSequence": 13 }, { "arrival": { "delay": 198, "time": "1775769318" }, "departure": { "delay": 198, "time": "1775769318" }, "stopId": "Église_Saint-Louis_A", "stopSequence": 14 }, { "arrival": { "delay": 198, "time": "1775769378" }, "departure": { "delay": 198, "time": "1775769378" }, "stopId": "Breisach_A", "stopSequence": 15 }, { "arrival": { "delay": 198, "time": "1775769438" }, "departure": { "delay": 198, "time": "1775769438" }, "stopId": "Croisée_des_Lys_A", "stopSequence": 16 }, { "arrival": { "delay": 200, "time": "1775769560" }, "departure": { "delay": 200, "time": "1775769560" }, "stopId": "Claude_Hess_A", "stopSequence": 17 }, { "arrival": { "delay": 200, "time": "1775769620" }, "departure": { "delay": 200, "time": "1775769620" }, "stopId": "Rhin_A", "stopSequence": 18 }, { "arrival": { "delay": 200, "time": "1775769680" }, "departure": { "delay": 200, "time": "1775769680" }, "stopId": "Notre-Dame_de_la_Paix_A", "stopSequence": 19 }, { "arrival": { "delay": 200, "time": "1775769740" }, "departure": { "delay": 200, "time": "1775769740" }, "stopId": "Frontière_A", "stopSequence": 20 }, { "arrival": { "delay": 200, "time": "1775769860" }, "departure": { "delay": 200, "time": "1775769860" }, "stopId": "Hüningerstrasse_A", "stopSequence": 21 }, { "arrival": { "delay": 200, "time": "1775769920" }, "departure": { "delay": 200, "time": "1775769920" }, "stopId": "Voltaplatz_A", "stopSequence": 22 }, { "arrival": { "delay": 200, "time": "1775770220" }, "stopId": "Schifflände_A", "stopSequence": 24 } ], "timestamp": "1775766452", "trip": { "routeId": "604", "tripId": "450T-2300" } } }, { "id": "SM:1106-2235", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775766900" }, "stopId": "EuroAirport_AR", "stopSequence": 1 }, { "arrival": { "time": "1775767500" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 2 } ], "timestamp": "1775765875", "trip": { "directionId": 1, "routeId": "11", "tripId": "1106-2235" } } } ], "header": { "gtfsRealtimeVersion": "1.0", "timestamp": "1775766570" } }