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 20:51 Europe/Paris.

trip_updates (10) 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 20:51 Europe/Paris. You can look at the GTFS-RT documentation.

{ "entity": [ { "id": "SM:1106-2135", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775763300" }, "stopId": "EuroAirport_AR", "stopSequence": 1 } ], "timestamp": "1775760002", "trip": { "directionId": 1, "routeId": "11", "tripId": "1106-2135" } } }, { "id": "SM:304-2030", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775759400" }, "stopId": "Schifflände_R", "stopSequence": 1 }, { "arrival": { "time": "1775759520" }, "departure": { "time": "1775759520" }, "stopId": "Kinderspital_UKBB_R", "stopSequence": 2 }, { "arrival": { "time": "1775759760" }, "departure": { "time": "1775759760" }, "stopId": "Voltaplatz_R", "stopSequence": 3 }, { "arrival": { "time": "1775759820" }, "departure": { "time": "1775759820" }, "stopId": "Hüningerstrasse_R", "stopSequence": 4 }, { "arrival": { "time": "1775759940" }, "departure": { "time": "1775759940" }, "stopId": "Huningue_Frontière_R", "stopSequence": 5 }, { "arrival": { "delay": 29, "time": "1775760069" }, "departure": { "delay": 29, "time": "1775760089" }, "stopId": "Tivoli_R", "stopSequence": 6 }, { "arrival": { "delay": 334, "time": "1775760454" }, "departure": { "delay": 334, "time": "1775760454" }, "stopId": "Parc_des_Eaux-Vives_R", "stopSequence": 7 }, { "arrival": { "delay": 373, "time": "1775760553" }, "departure": { "delay": 373, "time": "1775760553" }, "stopId": "Place_Abbatucci_R", "stopSequence": 8 }, { "arrival": { "delay": 389, "time": "1775760619" }, "departure": { "delay": 389, "time": "1775760629" }, "stopId": "Square_Soustons_R", "stopSequence": 9 }, { "arrival": { "delay": 412, "time": "1775760712" }, "departure": { "delay": 412, "time": "1775760712" }, "stopId": "Domino_603R", "stopSequence": 10 } ], "timestamp": "1775759453", "trip": { "directionId": 1, "routeId": "603", "tripId": "304-2030" } } }, { "id": "SM:1106-2035", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "delay": 61, "time": "1775759761" }, "stopId": "EuroAirport_AR", "stopSequence": 1 }, { "arrival": { "delay": -174, "time": "1775760126" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 2 } ], "timestamp": "1775759784", "trip": { "directionId": 1, "routeId": "11", "tripId": "1106-2035" } } }, { "id": "SM:1106-2120", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775762400" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 1 }, { "arrival": { "time": "1775763000" }, "stopId": "EuroAirport_AR", "stopSequence": 2 } ], "timestamp": "1775760637", "trip": { "routeId": "11", "tripId": "1106-2120" } } }, { "id": "SM:450T-2130", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775763000" }, "stopId": "Schifflände_R", "stopSequence": 1 }, { "arrival": { "time": "1775763120" }, "departure": { "time": "1775763120" }, "stopId": "Kinderspital_UKBB_R", "stopSequence": 2 }, { "arrival": { "time": "1775763360" }, "departure": { "time": "1775763360" }, "stopId": "Voltaplatz_R", "stopSequence": 3 }, { "arrival": { "time": "1775763420" }, "departure": { "time": "1775763420" }, "stopId": "Hüningerstrasse_R", "stopSequence": 4 }, { "arrival": { "time": "1775763540" }, "departure": { "time": "1775763540" }, "stopId": "Frontière_R", "stopSequence": 5 }, { "arrival": { "time": "1775763600" }, "departure": { "time": "1775763600" }, "stopId": "Notre-Dame_de_la_Paix_R", "stopSequence": 6 }, { "arrival": { "time": "1775763660" }, "departure": { "time": "1775763660" }, "stopId": "Rhin_R", "stopSequence": 7 }, { "arrival": { "time": "1775763780" }, "departure": { "time": "1775763780" }, "stopId": "Croisée_des_Lys_R", "stopSequence": 9 }, { "arrival": { "time": "1775763840" }, "departure": { "time": "1775763840" }, "stopId": "Breisach_R", "stopSequence": 10 }, { "arrival": { "delay": -30, "time": "1775763870" }, "departure": { "delay": -30, "time": "1775763870" }, "stopId": "Église_Saint-Louis_R", "stopSequence": 11 }, { "arrival": { "time": "1775763960" }, "departure": { "time": "1775763960" }, "stopId": "Trois_Lys_R", "stopSequence": 13 }, { "arrival": { "time": "1775764080" }, "departure": { "time": "1775764080" }, "stopId": "Cité_du_Rail_R", "stopSequence": 14 }, { "arrival": { "time": "1775764140" }, "departure": { "time": "1775764140" }, "stopId": "Rue_de_Séville_R", "stopSequence": 15 }, { "arrival": { "time": "1775764200" }, "departure": { "time": "1775764200" }, "stopId": "Chapelle_R", "stopSequence": 16 }, { "arrival": { "delay": -30, "time": "1775764230" }, "departure": { "delay": -30, "time": "1775764230" }, "stopId": "Saint-Claude_R", "stopSequence": 17 }, { "arrival": { "time": "1775764260" }, "departure": { "time": "1775764260" }, "stopId": "Petite_Camargue_Alsacienne_R", "stopSequence": 18 } ], "timestamp": "1775759401", "trip": { "directionId": 1, "routeId": "604", "tripId": "450T-2130" } } }, { "id": "SM:404T-2035", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "delay": 518, "time": "1775759738" }, "stopId": "Schifflände_R", "stopSequence": 1 }, { "arrival": { "delay": 38, "time": "1775759858" }, "departure": { "delay": 38, "time": "1775759858" }, "stopId": "Kinderspital_UKBB_R", "stopSequence": 2 }, { "arrival": { "delay": 38, "time": "1775760098" }, "departure": { "delay": 38, "time": "1775760098" }, "stopId": "Voltaplatz_R", "stopSequence": 3 }, { "arrival": { "delay": 38, "time": "1775760158" }, "departure": { "delay": 38, "time": "1775760158" }, "stopId": "Hüningerstrasse_R", "stopSequence": 4 }, { "arrival": { "delay": 38, "time": "1775760278" }, "departure": { "delay": 38, "time": "1775760278" }, "stopId": "Frontière_R", "stopSequence": 5 }, { "arrival": { "delay": 38, "time": "1775760338" }, "departure": { "delay": 38, "time": "1775760338" }, "stopId": "Notre-Dame_de_la_Paix_R", "stopSequence": 6 }, { "arrival": { "delay": 38, "time": "1775760398" }, "departure": { "delay": 38, "time": "1775760398" }, "stopId": "Rhin_R", "stopSequence": 7 }, { "arrival": { "delay": 119, "time": "1775760577" }, "departure": { "delay": 119, "time": "1775760659" }, "stopId": "Croisée_des_Lys_R", "stopSequence": 9 }, { "arrival": { "delay": 111, "time": "1775760711" }, "departure": { "delay": 111, "time": "1775760711" }, "stopId": "Breisach_R", "stopSequence": 10 }, { "arrival": { "delay": 71, "time": "1775760731" }, "departure": { "delay": 71, "time": "1775760731" }, "stopId": "Église_Saint-Louis_R", "stopSequence": 11 }, { "arrival": { "delay": -24, "time": "1775760816" }, "departure": { "delay": -24, "time": "1775760816" }, "stopId": "Saint-Louis_Gare_Est_AR", "stopSequence": 12 }, { "arrival": { "delay": -168, "time": "1775760912" }, "departure": { "delay": -168, "time": "1775760912" }, "stopId": "Trois_Lys_R", "stopSequence": 13 }, { "arrival": { "delay": -402, "time": "1775761038" }, "departure": { "delay": -402, "time": "1775761038" }, "stopId": "Cité_du_Rail_R", "stopSequence": 14 }, { "arrival": { "delay": -368, "time": "1775761132" }, "departure": { "delay": -368, "time": "1775761132" }, "stopId": "Rue_de_Séville_R", "stopSequence": 15 }, { "arrival": { "delay": -385, "time": "1775761175" }, "departure": { "delay": -385, "time": "1775761175" }, "stopId": "Chapelle_R", "stopSequence": 16 }, { "arrival": { "delay": -423, "time": "1775761197" }, "departure": { "delay": -423, "time": "1775761197" }, "stopId": "Saint-Claude_R", "stopSequence": 17 }, { "arrival": { "delay": -360, "time": "1775761260" }, "departure": { "delay": -360, "time": "1775761260" }, "stopId": "Petite_Camargue_Alsacienne_R", "stopSequence": 18 }, { "arrival": { "delay": -360, "time": "1775761320" }, "departure": { "delay": -360, "time": "1775761320" }, "stopId": "Parc_des_Maréchaux_R", "stopSequence": 19 }, { "arrival": { "delay": -360, "time": "1775761440" }, "departure": { "delay": -360, "time": "1775761440" }, "stopId": "Parc_Soleil_A", "stopSequence": 20 }, { "arrival": { "delay": -360, "time": "1775761560" }, "departure": { "delay": -360, "time": "1775761560" }, "stopId": "Cité_Beaulieu_R", "stopSequence": 21 }, { "arrival": { "delay": -360, "time": "1775761620" }, "departure": { "delay": -360, "time": "1775761620" }, "stopId": "Rousserolles_R", "stopSequence": 23 } ], "timestamp": "1775759794", "trip": { "directionId": 1, "routeId": "604", "tripId": "404T-2035" } } }, { "id": "SM:450T-2100", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1775761260" }, "departure": { "time": "1775761260" }, "stopId": "Rousserolles_A", "stopSequence": 2 }, { "arrival": { "delay": 20, "time": "1775761280" }, "departure": { "delay": 20, "time": "1775761280" }, "stopId": "Muguet_A", "stopSequence": 3 }, { "arrival": { "time": "1775761320" }, "departure": { "time": "1775761320" }, "stopId": "Parc_des_Maréchaux_A", "stopSequence": 5 }, { "arrival": { "time": "1775761440" }, "departure": { "time": "1775761440" }, "stopId": "Parc_Soleil_A", "stopSequence": 6 }, { "arrival": { "time": "1775761500" }, "departure": { "time": "1775761500" }, "stopId": "Petite_Camargue_Alsacienne_A", "stopSequence": 7 }, { "arrival": { "time": "1775761560" }, "departure": { "time": "1775761560" }, "stopId": "Saint-Claude_A", "stopSequence": 8 }, { "arrival": { "delay": -30, "time": "1775761590" }, "departure": { "delay": -30, "time": "1775761590" }, "stopId": "Chapelle_A", "stopSequence": 9 }, { "arrival": { "time": "1775761620" }, "departure": { "time": "1775761620" }, "stopId": "Rue_de_Séville_A", "stopSequence": 10 }, { "arrival": { "time": "1775761680" }, "departure": { "time": "1775761680" }, "stopId": "Cité_du_Rail_A", "stopSequence": 11 }, { "arrival": { "time": "1775761800" }, "departure": { "time": "1775761800" }, "stopId": "Trois_Lys_A", "stopSequence": 12 }, { "arrival": { "time": "1775761860" }, "departure": { "time": "1775761860" }, "stopId": "Saint-Louis_Gare_Est_AR", "stopSequence": 13 }, { "arrival": { "time": "1775761920" }, "departure": { "time": "1775761920" }, "stopId": "Église_Saint-Louis_A", "stopSequence": 14 }, { "arrival": { "time": "1775761980" }, "departure": { "time": "1775761980" }, "stopId": "Breisach_A", "stopSequence": 15 }, { "arrival": { "time": "1775762040" }, "departure": { "time": "1775762040" }, "stopId": "Croisée_des_Lys_A", "stopSequence": 16 }, { "arrival": { "time": "1775762160" }, "departure": { "time": "1775762160" }, "stopId": "Claude_Hess_A", "stopSequence": 17 }, { "arrival": { "time": "1775762220" }, "departure": { "time": "1775762220" }, "stopId": "Rhin_A", "stopSequence": 18 }, { "arrival": { "time": "1775762280" }, "departure": { "time": "1775762280" }, "stopId": "Notre-Dame_de_la_Paix_A", "stopSequence": 19 }, { "arrival": { "time": "1775762340" }, "departure": { "time": "1775762340" }, "stopId": "Frontière_A", "stopSequence": 20 }, { "arrival": { "time": "1775762460" }, "departure": { "time": "1775762460" }, "stopId": "Hüningerstrasse_A", "stopSequence": 21 }, { "arrival": { "time": "1775762520" }, "departure": { "time": "1775762520" }, "stopId": "Voltaplatz_A", "stopSequence": 22 }, { "arrival": { "time": "1775762820" }, "stopId": "Schifflände_A", "stopSequence": 24 } ], "timestamp": "1775757667", "trip": { "routeId": "604", "tripId": "450T-2100" } } }, { "id": "SM:408T-2017", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775758620" }, "stopId": "Schifflände_R", "stopSequence": 1 }, { "arrival": { "time": "1775758740" }, "departure": { "time": "1775758740" }, "stopId": "Kinderspital_UKBB_R", "stopSequence": 2 }, { "arrival": { "time": "1775758980" }, "departure": { "time": "1775758980" }, "stopId": "Voltaplatz_R", "stopSequence": 3 }, { "arrival": { "time": "1775759040" }, "departure": { "time": "1775759040" }, "stopId": "Hüningerstrasse_R", "stopSequence": 4 }, { "arrival": { "time": "1775759160" }, "departure": { "time": "1775759160" }, "stopId": "Frontière_R", "stopSequence": 5 }, { "arrival": { "time": "1775759220" }, "departure": { "time": "1775759220" }, "stopId": "Notre-Dame_de_la_Paix_R", "stopSequence": 6 }, { "arrival": { "delay": 240, "time": "1775759520" }, "departure": { "delay": 240, "time": "1775759520" }, "stopId": "Rhin_R", "stopSequence": 7 }, { "arrival": { "delay": 240, "time": "1775759670" }, "departure": { "delay": 240, "time": "1775759700" }, "stopId": "Croisée_des_Lys_R", "stopSequence": 9 }, { "arrival": { "delay": 231, "time": "1775759751" }, "departure": { "delay": 231, "time": "1775759751" }, "stopId": "Breisach_R", "stopSequence": 10 }, { "arrival": { "delay": 210, "time": "1775759766" }, "departure": { "delay": 210, "time": "1775759790" }, "stopId": "Église_Saint-Louis_R", "stopSequence": 11 }, { "arrival": { "delay": 150, "time": "1775759863" }, "departure": { "delay": 150, "time": "1775759910" }, "stopId": "Saint-Louis_Gare_Est_AR", "stopSequence": 12 }, { "arrival": { "time": "1775759988" }, "departure": { "time": "1775760000" }, "stopId": "Trois_Lys_R", "stopSequence": 13 }, { "arrival": { "time": "1775760097" }, "departure": { "time": "1775760360" }, "stopId": "Cité_du_Rail_R", "stopSequence": 14 }, { "arrival": { "delay": 60, "time": "1775760458" }, "departure": { "delay": 60, "time": "1775760480" }, "stopId": "Rue_de_Séville_R", "stopSequence": 15 }, { "arrival": { "delay": 41, "time": "1775760521" }, "departure": { "delay": 41, "time": "1775760521" }, "stopId": "Chapelle_R", "stopSequence": 16 }, { "arrival": { "delay": 2, "time": "1775760542" }, "departure": { "delay": 2, "time": "1775760542" }, "stopId": "Saint-Claude_R", "stopSequence": 17 }, { "arrival": { "delay": 69, "time": "1775760609" }, "departure": { "delay": 69, "time": "1775760609" }, "stopId": "Petite_Camargue_Alsacienne_R", "stopSequence": 18 }, { "arrival": { "delay": 60, "time": "1775760646" }, "departure": { "delay": 60, "time": "1775760660" }, "stopId": "Parc_des_Maréchaux_R", "stopSequence": 19 }, { "arrival": { "delay": 61, "time": "1775760781" }, "departure": { "delay": 61, "time": "1775760781" }, "stopId": "Muguet_R", "stopSequence": 21 } ], "timestamp": "1775758671", "trip": { "directionId": 1, "routeId": "604", "tripId": "408T-2017" } } }, { "id": "SM:1106-2105", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775761500" }, "stopId": "EuroAirport_AR", "stopSequence": 1 }, { "arrival": { "time": "1775762100" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 2 } ], "timestamp": "1775760002", "trip": { "directionId": 1, "routeId": "11", "tripId": "1106-2105" } } }, { "id": "SM:1106-2050", "tripUpdate": { "stopTimeUpdate": [ { "departure": { "time": "1775760600" }, "stopId": "Saint-Louis_Gare_Ouest_AR", "stopSequence": 1 }, { "arrival": { "delay": 18, "time": "1775761218" }, "stopId": "EuroAirport_AR", "stopSequence": 2 } ], "timestamp": "1775760627", "trip": { "routeId": "11", "tripId": "1106-2050" } } } ], "header": { "gtfsRealtimeVersion": "1.0", "timestamp": "1775760690" } }