Resource details
This resource file is part of the dataset Réseau urbain Distribus.
Download availability
Learn more
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
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_updatesDecoded 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"
}
}