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
⚠️209 warnings
Validation carried out using the current GTFS file and the GTFS-RT the 2025-11-21 at 08:10 Europe/Paris using the MobilityData GTFS-RT validator.
Warnings
vehicle_id not populated W002 70 errors
vehicle_id should be populated for TripUpdates and VehiclePositions
Sample errors
- trip_id 1103-0750 does not have a vehicle_id
- trip_id 1101-0805 does not have a vehicle_id
- trip_id 1101-0835 does not have a vehicle_id
- trip_id 1103-0820 does not have a vehicle_id
- trip_id 10-0805 does not have a vehicle_id
schedule_relationship not populated W009 139 errors
trip.schedule_relationship and stop_time_update.schedule_relationship should be populated
Sample errors
- trip_id 1103-0750 stop_sequence 1 (and potentially more for this trip) does not have a schedule_relationship
- trip_id 1103-0750 does not have a schedule_relationship
- trip_id 1101-0805 stop_sequence 1 (and potentially more for this trip) does not have a schedule_relationship
- trip_id 1101-0805 does not have a schedule_relationship
- trip_id 1101-0835 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 | 1 491 | 30 times (100 % of validations) |
| W009 | trip.schedule_relationship and stop_time_update.schedule_relationship should be populated | 2 970 | 30 times (100 % 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. | 19 | 16 times (53 % of validations) |
| W008 | The data in a GTFS-realtime feed should always be less than one minute old | 7 | 7 times (23 % of validations) |
GTFS-RT feed content
Entities
Entities present in this feed at 2025-11-21 at 23:20 Europe/Paris.
trip_updates (8) 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 2025-11-21 at 23:20 Europe/Paris. You can look at the GTFS-RT documentation.
{
"entity": [
{
"id": "SM:1106-2250",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"delay": 297,
"time": "1763762097"
},
"stopId": "Saint-Louis_Gare_Ouest_AR",
"stopSequence": 1
},
{
"arrival": {
"delay": 360,
"time": "1763762760"
},
"stopId": "EuroAirport_AR",
"stopSequence": 2
}
],
"timestamp": "1763762124",
"trip": {
"routeId": "11",
"tripId": "1106-2250"
}
}
},
{
"id": "SM:1106-2320",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"time": "1763763600"
},
"stopId": "Saint-Louis_Gare_Ouest_AR",
"stopSequence": 1
},
{
"arrival": {
"time": "1763764200"
},
"stopId": "EuroAirport_AR",
"stopSequence": 2
}
],
"timestamp": "1763762678",
"trip": {
"routeId": "11",
"tripId": "1106-2320"
}
}
},
{
"id": "SM:1106-2305",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"delay": 124,
"time": "1763762824"
},
"stopId": "EuroAirport_AR",
"stopSequence": 1
},
{
"arrival": {
"delay": 136,
"time": "1763763436"
},
"stopId": "Saint-Louis_Gare_Ouest_AR",
"stopSequence": 2
}
],
"timestamp": "1763762853",
"trip": {
"directionId": 1,
"routeId": "11",
"tripId": "1106-2305"
}
}
},
{
"id": "SM:1106-2335",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"time": "1763764500"
},
"stopId": "EuroAirport_AR",
"stopSequence": 1
},
{
"arrival": {
"time": "1763765100"
},
"stopId": "Saint-Louis_Gare_Ouest_AR",
"stopSequence": 2
}
],
"timestamp": "1763762863",
"trip": {
"directionId": 1,
"routeId": "11",
"tripId": "1106-2335"
}
}
},
{
"id": "SM:450-2300",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"delay": 401,
"time": "1763762801"
},
"stopId": "Professeur_Coste_A",
"stopSequence": 1
},
{
"arrival": {
"delay": 401,
"time": "1763762861"
},
"departure": {
"delay": 401,
"time": "1763762861"
},
"stopId": "Rousserolles_A",
"stopSequence": 2
},
{
"arrival": {
"delay": 440,
"time": "1763762900"
},
"departure": {
"delay": 440,
"time": "1763762900"
},
"stopId": "Muguet_A",
"stopSequence": 3
},
{
"arrival": {
"delay": 406,
"time": "1763762926"
},
"departure": {
"delay": 406,
"time": "1763762926"
},
"stopId": "Cité_Beaulieu_A",
"stopSequence": 4
},
{
"arrival": {
"delay": 431,
"time": "1763762945"
},
"departure": {
"delay": 431,
"time": "1763762951"
},
"stopId": "Parc_des_Maréchaux_A",
"stopSequence": 5
},
{
"arrival": {
"delay": 420,
"time": "1763763060"
},
"departure": {
"delay": 420,
"time": "1763763060"
},
"stopId": "Parc_Soleil_A",
"stopSequence": 6
},
{
"arrival": {
"delay": 491,
"time": "1763763165"
},
"departure": {
"delay": 491,
"time": "1763763191"
},
"stopId": "Petite_Camargue_Alsacienne_A",
"stopSequence": 7
},
{
"arrival": {
"delay": 511,
"time": "1763763271"
},
"departure": {
"delay": 511,
"time": "1763763271"
},
"stopId": "Saint-Claude_A",
"stopSequence": 8
},
{
"arrival": {
"delay": 481,
"time": "1763763301"
},
"departure": {
"delay": 481,
"time": "1763763301"
},
"stopId": "Chapelle_A",
"stopSequence": 9
},
{
"arrival": {
"delay": 611,
"time": "1763763348"
},
"departure": {
"delay": 611,
"time": "1763763431"
},
"stopId": "Rue_de_Séville_A",
"stopSequence": 10
},
{
"arrival": {
"delay": 643,
"time": "1763763523"
},
"departure": {
"delay": 643,
"time": "1763763523"
},
"stopId": "Cité_du_Rail_A",
"stopSequence": 11
},
{
"arrival": {
"delay": 595,
"time": "1763763595"
},
"departure": {
"delay": 595,
"time": "1763763595"
},
"stopId": "Trois_Lys_A",
"stopSequence": 12
},
{
"arrival": {
"delay": 595,
"time": "1763763655"
},
"departure": {
"delay": 595,
"time": "1763763655"
},
"stopId": "Saint-Louis_Gare_Est_AR",
"stopSequence": 13
},
{
"arrival": {
"delay": 655,
"time": "1763763775"
},
"departure": {
"delay": 655,
"time": "1763763775"
},
"stopId": "Église_Saint-Louis_A",
"stopSequence": 14
},
{
"arrival": {
"delay": 655,
"time": "1763763835"
},
"departure": {
"delay": 655,
"time": "1763763835"
},
"stopId": "Breisach_A",
"stopSequence": 15
},
{
"arrival": {
"delay": 715,
"time": "1763763955"
},
"departure": {
"delay": 715,
"time": "1763763955"
},
"stopId": "Croisée_des_Lys_A",
"stopSequence": 16
},
{
"arrival": {
"delay": 655,
"time": "1763764015"
},
"departure": {
"delay": 655,
"time": "1763764015"
},
"stopId": "Claude_Hess_A",
"stopSequence": 17
},
{
"arrival": {
"delay": 655,
"time": "1763764075"
},
"departure": {
"delay": 655,
"time": "1763764075"
},
"stopId": "Rhin_A",
"stopSequence": 18
},
{
"arrival": {
"delay": 655,
"time": "1763764135"
},
"departure": {
"delay": 655,
"time": "1763764135"
},
"stopId": "Notre-Dame_de_la_Paix_A",
"stopSequence": 19
},
{
"arrival": {
"delay": 715,
"time": "1763764255"
},
"departure": {
"delay": 715,
"time": "1763764255"
},
"stopId": "Frontière_A",
"stopSequence": 20
},
{
"arrival": {
"delay": 655,
"time": "1763764315"
},
"departure": {
"delay": 655,
"time": "1763764315"
},
"stopId": "Hüningerstrasse_A",
"stopSequence": 21
},
{
"arrival": {
"delay": 775,
"time": "1763764495"
},
"departure": {
"delay": 775,
"time": "1763764495"
},
"stopId": "Voltaplatz_A",
"stopSequence": 22
}
],
"timestamp": "1763762832",
"trip": {
"routeId": "604",
"tripId": "450-2300"
}
}
},
{
"id": "SM:450-2330",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"delay": 419,
"time": "1763764619"
},
"stopId": "Schifflände_R",
"stopSequence": 1
},
{
"arrival": {
"delay": 419,
"time": "1763764739"
},
"departure": {
"delay": 419,
"time": "1763764739"
},
"stopId": "Kinderspital_UKBB_R",
"stopSequence": 2
},
{
"arrival": {
"delay": 419,
"time": "1763764979"
},
"departure": {
"delay": 419,
"time": "1763764979"
},
"stopId": "Voltaplatz_R",
"stopSequence": 3
},
{
"arrival": {
"delay": 419,
"time": "1763765039"
},
"departure": {
"delay": 419,
"time": "1763765039"
},
"stopId": "Hüningerstrasse_R",
"stopSequence": 4
},
{
"arrival": {
"delay": 419,
"time": "1763765159"
},
"departure": {
"delay": 419,
"time": "1763765159"
},
"stopId": "Frontière_R",
"stopSequence": 5
},
{
"arrival": {
"delay": 419,
"time": "1763765219"
},
"departure": {
"delay": 419,
"time": "1763765219"
},
"stopId": "Notre-Dame_de_la_Paix_R",
"stopSequence": 6
},
{
"arrival": {
"delay": 419,
"time": "1763765279"
},
"departure": {
"delay": 419,
"time": "1763765279"
},
"stopId": "Rhin_R",
"stopSequence": 7
},
{
"arrival": {
"delay": 419,
"time": "1763765339"
},
"departure": {
"delay": 419,
"time": "1763765339"
},
"stopId": "Claude_Hess_R",
"stopSequence": 8
},
{
"arrival": {
"delay": 419,
"time": "1763765399"
},
"departure": {
"delay": 419,
"time": "1763765399"
},
"stopId": "Croisée_des_Lys_R",
"stopSequence": 9
},
{
"arrival": {
"delay": 419,
"time": "1763765459"
},
"departure": {
"delay": 419,
"time": "1763765459"
},
"stopId": "Breisach_R",
"stopSequence": 10
},
{
"arrival": {
"delay": 389,
"time": "1763765489"
},
"departure": {
"delay": 389,
"time": "1763765489"
},
"stopId": "Église_Saint-Louis_R",
"stopSequence": 11
},
{
"arrival": {
"delay": 419,
"time": "1763765519"
},
"departure": {
"delay": 419,
"time": "1763765519"
},
"stopId": "Saint-Louis_Gare_Est_AR",
"stopSequence": 12
},
{
"arrival": {
"delay": 539,
"time": "1763765699"
},
"departure": {
"delay": 539,
"time": "1763765699"
},
"stopId": "Trois_Lys_R",
"stopSequence": 13
},
{
"arrival": {
"delay": 479,
"time": "1763765759"
},
"departure": {
"delay": 479,
"time": "1763765759"
},
"stopId": "Cité_du_Rail_R",
"stopSequence": 14
},
{
"arrival": {
"delay": 479,
"time": "1763765819"
},
"departure": {
"delay": 479,
"time": "1763765819"
},
"stopId": "Rue_de_Séville_R",
"stopSequence": 15
},
{
"arrival": {
"delay": 449,
"time": "1763765849"
},
"departure": {
"delay": 449,
"time": "1763765849"
},
"stopId": "Chapelle_R",
"stopSequence": 16
},
{
"arrival": {
"delay": 419,
"time": "1763765879"
},
"departure": {
"delay": 419,
"time": "1763765879"
},
"stopId": "Saint-Claude_R",
"stopSequence": 17
},
{
"arrival": {
"delay": 479,
"time": "1763765939"
},
"departure": {
"delay": 479,
"time": "1763765939"
},
"stopId": "Petite_Camargue_Alsacienne_R",
"stopSequence": 18
},
{
"arrival": {
"delay": 536,
"time": "1763766056"
},
"departure": {
"delay": 536,
"time": "1763766056"
},
"stopId": "Parc_des_Maréchaux_R",
"stopSequence": 19
},
{
"arrival": {
"delay": 539,
"time": "1763766179"
},
"departure": {
"delay": 539,
"time": "1763766179"
},
"stopId": "Parc_Soleil_A",
"stopSequence": 20
},
{
"arrival": {
"delay": 465,
"time": "1763766225"
},
"departure": {
"delay": 465,
"time": "1763766225"
},
"stopId": "Cité_Beaulieu_R",
"stopSequence": 21
},
{
"arrival": {
"delay": 435,
"time": "1763766255"
},
"departure": {
"delay": 435,
"time": "1763766255"
},
"stopId": "Muguet_R",
"stopSequence": 22
},
{
"arrival": {
"delay": 405,
"time": "1763766285"
},
"departure": {
"delay": 405,
"time": "1763766285"
},
"stopId": "Rousserolles_R",
"stopSequence": 23
}
],
"timestamp": "1763763590",
"trip": {
"directionId": 1,
"routeId": "604",
"tripId": "450-2330"
}
}
},
{
"id": "SM:450-2230",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"delay": 500,
"time": "1763761100"
},
"stopId": "Schifflände_R",
"stopSequence": 1
},
{
"arrival": {
"delay": 500,
"time": "1763761220"
},
"departure": {
"delay": 500,
"time": "1763761220"
},
"stopId": "Kinderspital_UKBB_R",
"stopSequence": 2
},
{
"arrival": {
"delay": 500,
"time": "1763761460"
},
"departure": {
"delay": 500,
"time": "1763761460"
},
"stopId": "Voltaplatz_R",
"stopSequence": 3
},
{
"arrival": {
"delay": 500,
"time": "1763761520"
},
"departure": {
"delay": 500,
"time": "1763761520"
},
"stopId": "Hüningerstrasse_R",
"stopSequence": 4
},
{
"arrival": {
"delay": 500,
"time": "1763761640"
},
"departure": {
"delay": 500,
"time": "1763761640"
},
"stopId": "Frontière_R",
"stopSequence": 5
},
{
"arrival": {
"delay": 500,
"time": "1763761700"
},
"departure": {
"delay": 500,
"time": "1763761700"
},
"stopId": "Notre-Dame_de_la_Paix_R",
"stopSequence": 6
},
{
"arrival": {
"delay": 500,
"time": "1763761760"
},
"departure": {
"delay": 500,
"time": "1763761760"
},
"stopId": "Rhin_R",
"stopSequence": 7
},
{
"arrival": {
"delay": 500,
"time": "1763761820"
},
"departure": {
"delay": 500,
"time": "1763761820"
},
"stopId": "Claude_Hess_R",
"stopSequence": 8
},
{
"arrival": {
"delay": 500,
"time": "1763761880"
},
"departure": {
"delay": 500,
"time": "1763761880"
},
"scheduleRelationship": "SKIPPED",
"stopId": "Croisée_des_Lys_R",
"stopSequence": 9
},
{
"arrival": {
"delay": 500,
"time": "1763761940"
},
"departure": {
"delay": 500,
"time": "1763761940"
},
"scheduleRelationship": "SKIPPED",
"stopId": "Breisach_R",
"stopSequence": 10
},
{
"arrival": {
"delay": 470,
"time": "1763761970"
},
"departure": {
"delay": 470,
"time": "1763761970"
},
"scheduleRelationship": "SKIPPED",
"stopId": "Église_Saint-Louis_R",
"stopSequence": 11
},
{
"arrival": {
"delay": 484,
"time": "1763762044"
},
"departure": {
"delay": 484,
"time": "1763762044"
},
"stopId": "Trois_Lys_R",
"stopSequence": 13
},
{
"arrival": {
"delay": 455,
"time": "1763762135"
},
"departure": {
"delay": 455,
"time": "1763762135"
},
"stopId": "Cité_du_Rail_R",
"stopSequence": 14
},
{
"arrival": {
"delay": 455,
"time": "1763762195"
},
"departure": {
"delay": 455,
"time": "1763762195"
},
"stopId": "Rue_de_Séville_R",
"stopSequence": 15
},
{
"arrival": {
"delay": 416,
"time": "1763762211"
},
"departure": {
"delay": 416,
"time": "1763762216"
},
"stopId": "Chapelle_R",
"stopSequence": 16
},
{
"arrival": {
"delay": 445,
"time": "1763762294"
},
"departure": {
"delay": 445,
"time": "1763762305"
},
"stopId": "Saint-Claude_R",
"stopSequence": 17
},
{
"arrival": {
"delay": 505,
"time": "1763762365"
},
"departure": {
"delay": 505,
"time": "1763762365"
},
"stopId": "Petite_Camargue_Alsacienne_R",
"stopSequence": 18
},
{
"arrival": {
"delay": 595,
"time": "1763762485"
},
"departure": {
"delay": 595,
"time": "1763762515"
},
"stopId": "Parc_des_Maréchaux_R",
"stopSequence": 19
},
{
"arrival": {
"delay": 595,
"time": "1763762635"
},
"departure": {
"delay": 595,
"time": "1763762635"
},
"stopId": "Parc_Soleil_A",
"stopSequence": 20
},
{
"arrival": {
"delay": 535,
"time": "1763762695"
},
"departure": {
"delay": 535,
"time": "1763762695"
},
"stopId": "Cité_Beaulieu_R",
"stopSequence": 21
},
{
"arrival": {
"delay": 490,
"time": "1763762710"
},
"departure": {
"delay": 490,
"time": "1763762710"
},
"stopId": "Muguet_R",
"stopSequence": 22
},
{
"arrival": {
"delay": 479,
"time": "1763762759"
},
"departure": {
"delay": 479,
"time": "1763762759"
},
"stopId": "Rousserolles_R",
"stopSequence": 23
}
],
"timestamp": "1763761143",
"trip": {
"directionId": 1,
"routeId": "604",
"tripId": "450-2230"
}
}
},
{
"id": "SM:450-2400",
"tripUpdate": {
"stopTimeUpdate": [
{
"departure": {
"delay": 285,
"time": "1763766285"
},
"stopId": "Professeur_Coste_A",
"stopSequence": 1
},
{
"arrival": {
"delay": 285,
"time": "1763766345"
},
"departure": {
"delay": 285,
"time": "1763766345"
},
"stopId": "Rousserolles_A",
"stopSequence": 2
},
{
"arrival": {
"delay": 255,
"time": "1763766375"
},
"departure": {
"delay": 255,
"time": "1763766375"
},
"stopId": "Muguet_A",
"stopSequence": 3
},
{
"arrival": {
"delay": 270,
"time": "1763766390"
},
"departure": {
"delay": 270,
"time": "1763766390"
},
"stopId": "Cité_Beaulieu_A",
"stopSequence": 4
},
{
"arrival": {
"delay": 285,
"time": "1763766405"
},
"departure": {
"delay": 285,
"time": "1763766405"
},
"stopId": "Parc_des_Maréchaux_A",
"stopSequence": 5
},
{
"arrival": {
"delay": 285,
"time": "1763766525"
},
"departure": {
"delay": 285,
"time": "1763766525"
},
"stopId": "Parc_Soleil_A",
"stopSequence": 6
},
{
"arrival": {
"delay": 285,
"time": "1763766585"
},
"departure": {
"delay": 285,
"time": "1763766585"
},
"stopId": "Petite_Camargue_Alsacienne_A",
"stopSequence": 7
},
{
"arrival": {
"delay": 285,
"time": "1763766645"
},
"departure": {
"delay": 285,
"time": "1763766645"
},
"stopId": "Saint-Claude_A",
"stopSequence": 8
},
{
"arrival": {
"delay": 255,
"time": "1763766675"
},
"departure": {
"delay": 255,
"time": "1763766675"
},
"stopId": "Chapelle_A",
"stopSequence": 9
},
{
"arrival": {
"delay": 285,
"time": "1763766705"
},
"departure": {
"delay": 285,
"time": "1763766705"
},
"stopId": "Rue_de_Séville_A",
"stopSequence": 10
},
{
"arrival": {
"delay": 285,
"time": "1763766765"
},
"departure": {
"delay": 285,
"time": "1763766765"
},
"stopId": "Cité_du_Rail_A",
"stopSequence": 11
},
{
"arrival": {
"delay": 285,
"time": "1763766885"
},
"departure": {
"delay": 285,
"time": "1763766885"
},
"stopId": "Trois_Lys_A",
"stopSequence": 12
},
{
"arrival": {
"delay": 345,
"time": "1763767065"
},
"departure": {
"delay": 345,
"time": "1763767065"
},
"stopId": "Église_Saint-Louis_A",
"stopSequence": 14
},
{
"arrival": {
"delay": 345,
"time": "1763767125"
},
"departure": {
"delay": 345,
"time": "1763767125"
},
"stopId": "Breisach_A",
"stopSequence": 15
}
],
"timestamp": "1763763590",
"trip": {
"routeId": "604",
"tripId": "450-2400"
}
}
}
],
"header": {
"gtfsRealtimeVersion": "1.0",
"timestamp": "1763763625"
}
}