Resource details
Horaires temps-réel du réseau Lunéo (GTFS-RT)
This resource file is part of the dataset Réseau urbain Lunéo.
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
❌4 errors
Validation carried out using the current GTFS file and the GTFS-RT the 2025-08-05 at 09:07 Europe/Paris using the MobilityData GTFS-RT validator.
Errors
Sequential stop_time_update times are not increasing E022 4 errors
stop_time_update arrival/departure times between sequential stops should always increase - they should never be the same or decrease.
Sample errors
- trip_id 2_08h50_ZAD stop_sequence 22 arrival_time 09:26:30 (1754378790) is equal to previous stop arrival_time 09:26:30 (1754378790) - times must increase between two sequential stops
- trip_id 2_08h50_ZAD stop_sequence 22 arrival_time 09:26:30 (1754378790) is equal to previous stop departure_time 09:26:30 (1754378790) - times must increase between two sequential stops
- trip_id 2_08h50_ZAD stop_sequence 22 departure_time 09:26:30 (1754378790) is equal to previous stop departure_time 09:26:30 (1754378790) - times must increase between two sequential stops
- trip_id 2_08h50_ZAD stop_sequence 22 departure_time 09:26:30 (1754378790) is equal to previous stop arrival_time 09:26:30 (1754378790) - times must increase between two sequential stops
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 |
---|---|---|---|
E022 | stop_time_update arrival/departure times between sequential stops should always increase - they should never be the same or decrease. | 126 | 25 times (83 % of validations) |
W003 | a trip_id that is provided in the VehiclePositions feed should be provided in the TripUpdates feed, and a vehicle_id that is provided in the TripUpdates feed should be provided in the VehiclePositions feed | 6 | 3 times (10 % of validations) |
W009 | trip.schedule_relationship and stop_time_update.schedule_relationship should be populated | 3 | 3 times (10 % of validations) |
E029 | The vehicle position should be within a certain distance of the GTFS shapes.txt data for the current trip unless there is a Service Alert with the Effect of DETOUR for this trip_id. | 2 | 2 times (7 % of validations) |
GTFS-RT feed content
Entities
Entities present in this feed at 2025-08-05 at 19:06 Europe/Paris.
vehicle_positions (3) trip_updates (3) service_alerts (2)Entities seen in the last 7 days.
service_alerts trip_updates vehicle_positionsService alerts
Here is a display of service alerts contained in this feed at 2025-08-05 at 19:06 Europe/Paris.
TRAVAUX rue René Basset le 23/08/25 Detour
Travaux rue René basset le 23/08/25. En raison de travaux rue René Basset, une déviation à été mise en place. L'arrêt "Hôtel de Ville" ne sera pas desservi la journée du 23/08/25 Reportez-vous aux arrêts "Léopold" / "Hôpital" et "Remparts". Merci pour votre compréhension, L'équipe Lunéo.
Fin des travaux Rue de Villers Unknown effect
Suite à la fin des travaux Rue de Villers, l’arrêt Saint-Charles est à nouveau accessible. L'équipe Lunéo.
Decoded GTFS-RT feed
See full payload
Here is the decoded GTFS-RT feed Protobuf at 2025-08-05 at 19:06 Europe/Paris. You can look at the GTFS-RT documentation.
{
"entity": [
{
"id": "vehicle:66b9b78c14f3fcb51555c4c3",
"vehicle": {
"currentStopSequence": 19,
"position": {
"latitude": 48.58647537231445,
"longitude": 6.483458042144775
},
"stopId": "71",
"timestamp": "1754413573",
"trip": {
"routeId": "2",
"scheduleRelationship": "SCHEDULED",
"tripId": "2_18h40_ZAD"
},
"vehicle": {
"id": "66b9b78c14f3fcb51555c4c3",
"label": "365",
"licensePlate": "GY-365-LH"
}
}
},
{
"id": "vehicle:8ec290bf1c7700fb",
"vehicle": {
"currentStatus": "INCOMING_AT",
"currentStopSequence": 17,
"position": {
"latitude": 48.57950210571289,
"longitude": 6.5210418701171875
},
"stopId": "154",
"timestamp": "1754413570",
"trip": {
"routeId": "1",
"scheduleRelationship": "SCHEDULED",
"tripId": "1_18h37_Jolivet"
},
"vehicle": {
"id": "8ec290bf1c7700fb"
}
}
},
{
"id": "vehicle:5ce6b3f6f4e5a26fc64b3063",
"vehicle": {
"currentStatus": "INCOMING_AT",
"currentStopSequence": 4,
"position": {
"latitude": 48.60197448730469,
"longitude": 6.479955196380615
},
"stopId": "134",
"timestamp": "1754413568",
"trip": {
"routeId": "1",
"scheduleRelationship": "SCHEDULED",
"tripId": "1_19h01_Faisanderie"
},
"vehicle": {
"id": "5ce6b3f6f4e5a26fc64b3063",
"label": "456",
"licensePlate": "EZ-456-XD"
}
}
},
{
"id": "trip:2_18h40_ZAD",
"tripUpdate": {
"stopTimeUpdate": [
{
"arrival": {
"time": "1754411833"
},
"departure": {
"time": "1754412029"
},
"stopId": "20",
"stopSequence": 1
},
{
"arrival": {
"time": "1754412099"
},
"departure": {
"time": "1754412112"
},
"stopId": "7",
"stopSequence": 2
},
{
"arrival": {
"time": "1754412157"
},
"departure": {
"time": "1754412167"
},
"stopId": "19",
"stopSequence": 3
},
{
"arrival": {
"time": "1754412211"
},
"departure": {
"time": "1754412227"
},
"stopId": "14",
"stopSequence": 4
},
{
"arrival": {
"time": "1754412248"
},
"departure": {
"time": "1754412261"
},
"stopId": "6",
"stopSequence": 5
},
{
"arrival": {
"time": "1754412289"
},
"departure": {
"time": "1754412361"
},
"stopId": "10",
"stopSequence": 6
},
{
"arrival": {
"time": "1754412390"
},
"departure": {
"time": "1754412399"
},
"stopId": "12",
"stopSequence": 7
},
{
"arrival": {
"time": "1754412446"
},
"departure": {
"time": "1754412455"
},
"stopId": "124",
"stopSequence": 8
},
{
"arrival": {
"time": "1754412507"
},
"departure": {
"time": "1754412526"
},
"stopId": "40",
"stopSequence": 9
},
{
"arrival": {
"time": "1754412593"
},
"departure": {
"time": "1754412795"
},
"stopId": "128",
"stopSequence": 10
},
{
"arrival": {
"time": "1754412873"
},
"departure": {
"time": "1754412883"
},
"stopId": "26",
"stopSequence": 11
},
{
"arrival": {
"time": "1754412922"
},
"departure": {
"time": "1754412935"
},
"stopId": "95",
"stopSequence": 12
},
{
"arrival": {
"time": "1754413011"
},
"departure": {
"time": "1754413095"
},
"stopId": "825",
"stopSequence": 13
},
{
"arrival": {
"time": "1754413124"
},
"departure": {
"time": "1754413137"
},
"stopId": "323",
"stopSequence": 14
},
{
"arrival": {
"time": "1754413283"
},
"departure": {
"time": "1754413392"
},
"stopId": "110",
"stopSequence": 15
},
{
"arrival": {
"time": "1754413435"
},
"departure": {
"time": "1754413447"
},
"stopId": "826",
"stopSequence": 16
},
{
"arrival": {
"time": "1754413475"
},
"departure": {
"time": "1754413492"
},
"stopId": "137",
"stopSequence": 17
},
{
"arrival": {
"time": "1754413559"
},
"departure": {
"time": "1754413575"
},
"stopId": "70",
"stopSequence": 18
},
{
"arrival": {
"time": "1754413670"
},
"departure": {
"time": "1754413670"
},
"stopId": "71",
"stopSequence": 19
},
{
"arrival": {
"time": "1754413910"
},
"departure": {
"time": "1754413910"
},
"stopId": "52",
"stopSequence": 20
},
{
"arrival": {
"time": "1754414030"
},
"departure": {
"time": "1754414030"
},
"stopId": "118",
"stopSequence": 21
},
{
"arrival": {
"time": "1754414030"
},
"departure": {
"time": "1754414030"
},
"stopId": "29",
"stopSequence": 22
},
{
"arrival": {
"time": "1754414090"
},
"departure": {
"time": "1754414090"
},
"stopId": "103",
"stopSequence": 23
},
{
"arrival": {
"time": "1754414210"
},
"departure": {
"time": "1754414210"
},
"stopId": "117",
"stopSequence": 24
},
{
"arrival": {
"time": "1754414270"
},
"departure": {
"time": "1754414270"
},
"stopId": "130",
"stopSequence": 25
},
{
"arrival": {
"time": "1754414330"
},
"departure": {
"time": "1754414330"
},
"stopId": "331",
"stopSequence": 26
}
],
"timestamp": "1754413573",
"trip": {
"routeId": "2",
"scheduleRelationship": "SCHEDULED",
"tripId": "2_18h40_ZAD"
},
"vehicle": {
"id": "66b9b78c14f3fcb51555c4c3",
"label": "365",
"licensePlate": "GY-365-LH"
}
}
},
{
"id": "trip:1_19h01_Faisanderie",
"tripUpdate": {
"stopTimeUpdate": [
{
"arrival": {
"time": "1754413254"
},
"departure": {
"time": "1754413335"
},
"stopId": "74",
"stopSequence": 1
},
{
"arrival": {
"time": "1754413450"
},
"departure": {
"time": "1754413464"
},
"stopId": "88",
"stopSequence": 2
},
{
"arrival": {
"time": "1754413526"
},
"departure": {
"time": "1754413546"
},
"stopId": "68",
"stopSequence": 3
},
{
"arrival": {
"time": "1754413600"
},
"departure": {
"time": "1754413600"
},
"stopId": "134",
"stopSequence": 4
},
{
"arrival": {
"time": "1754413660"
},
"departure": {
"time": "1754413660"
},
"stopId": "141",
"stopSequence": 5
},
{
"arrival": {
"time": "1754413720"
},
"departure": {
"time": "1754413720"
},
"stopId": "51",
"stopSequence": 6
},
{
"arrival": {
"time": "1754413780"
},
"departure": {
"time": "1754413780"
},
"stopId": "122",
"stopSequence": 7
},
{
"arrival": {
"time": "1754413780"
},
"departure": {
"time": "1754413780"
},
"stopId": "30",
"stopSequence": 8
},
{
"arrival": {
"time": "1754413840"
},
"departure": {
"time": "1754413840"
},
"stopId": "35",
"stopSequence": 9
},
{
"arrival": {
"time": "1754413900"
},
"departure": {
"time": "1754413900"
},
"stopId": "36",
"stopSequence": 10
},
{
"arrival": {
"time": "1754413960"
},
"departure": {
"time": "1754413960"
},
"stopId": "48",
"stopSequence": 11
},
{
"arrival": {
"time": "1754414020"
},
"departure": {
"time": "1754414020"
},
"stopId": "133",
"stopSequence": 12
},
{
"arrival": {
"time": "1754414080"
},
"departure": {
"time": "1754414080"
},
"stopId": "94",
"stopSequence": 13
},
{
"arrival": {
"time": "1754414260"
},
"departure": {
"time": "1754414260"
},
"stopId": "110",
"stopSequence": 14
},
{
"arrival": {
"time": "1754414380"
},
"departure": {
"time": "1754414380"
},
"stopId": "93",
"stopSequence": 15
},
{
"arrival": {
"time": "1754414440"
},
"departure": {
"time": "1754414440"
},
"stopId": "81",
"stopSequence": 16
},
{
"arrival": {
"time": "1754414620"
},
"departure": {
"time": "1754414620"
},
"stopId": "832",
"stopSequence": 17
},
{
"arrival": {
"time": "1754414680"
},
"departure": {
"time": "1754414680"
},
"stopId": "77",
"stopSequence": 18
},
{
"arrival": {
"time": "1754414740"
},
"departure": {
"time": "1754414740"
},
"stopId": "144",
"stopSequence": 19
},
{
"arrival": {
"time": "1754414860"
},
"departure": {
"time": "1754414860"
},
"stopId": "62",
"stopSequence": 20
},
{
"arrival": {
"time": "1754414980"
},
"departure": {
"time": "1754414980"
},
"stopId": "130",
"stopSequence": 21
},
{
"arrival": {
"time": "1754415040"
},
"departure": {
"time": "1754415040"
},
"stopId": "154",
"stopSequence": 22
},
{
"arrival": {
"time": "1754415100"
},
"departure": {
"time": "1754415100"
},
"stopId": "159",
"stopSequence": 23
},
{
"arrival": {
"time": "1754415160"
},
"departure": {
"time": "1754415160"
},
"stopId": "157",
"stopSequence": 24
},
{
"arrival": {
"time": "1754415340"
},
"departure": {
"time": "1754415340"
},
"stopId": "147",
"stopSequence": 25
}
],
"timestamp": "1754413568",
"trip": {
"routeId": "1",
"scheduleRelationship": "SCHEDULED",
"tripId": "1_19h01_Faisanderie"
},
"vehicle": {
"id": "5ce6b3f6f4e5a26fc64b3063",
"label": "456",
"licensePlate": "EZ-456-XD"
}
}
},
{
"id": "trip:1_18h37_Jolivet",
"tripUpdate": {
"stopTimeUpdate": [
{
"arrival": {
"time": "1754411703"
},
"departure": {
"time": "1754412002"
},
"stopId": "23",
"stopSequence": 1
},
{
"arrival": {
"time": "1754412034"
},
"departure": {
"time": "1754412045"
},
"stopId": "24",
"stopSequence": 2
},
{
"arrival": {
"time": "1754412146"
},
"departure": {
"time": "1754412164"
},
"stopId": "30",
"stopSequence": 3
},
{
"arrival": {
"time": "1754412170"
},
"departure": {
"time": "1754412186"
},
"stopId": "35",
"stopSequence": 4
},
{
"arrival": {
"time": "1754412216"
},
"departure": {
"time": "1754412236"
},
"stopId": "36",
"stopSequence": 5
},
{
"arrival": {
"time": "1754412283"
},
"departure": {
"time": "1754412300"
},
"stopId": "48",
"stopSequence": 6
},
{
"arrival": {
"time": "1754412308"
},
"departure": {
"time": "1754412324"
},
"stopId": "133",
"stopSequence": 7
},
{
"arrival": {
"time": "1754412371"
},
"departure": {
"time": "1754412388"
},
"stopId": "94",
"stopSequence": 8
},
{
"arrival": {
"time": "1754412466"
},
"departure": {
"time": "1754412616"
},
"stopId": "110",
"stopSequence": 9
},
{
"arrival": {
"time": "1754412664"
},
"departure": {
"time": "1754412704"
},
"stopId": "93",
"stopSequence": 10
},
{
"arrival": {
"time": "1754412742"
},
"departure": {
"time": "1754412755"
},
"stopId": "81",
"stopSequence": 11
},
{
"arrival": {
"time": "1754412860"
},
"departure": {
"time": "1754412876"
},
"stopId": "832",
"stopSequence": 12
},
{
"arrival": {
"time": "1754412894"
},
"departure": {
"time": "1754412912"
},
"stopId": "77",
"stopSequence": 13
},
{
"arrival": {
"time": "1754412962"
},
"departure": {
"time": "1754412994"
},
"stopId": "144",
"stopSequence": 14
},
{
"arrival": {
"time": "1754413086"
},
"departure": {
"time": "1754413105"
},
"stopId": "62",
"stopSequence": 15
},
{
"arrival": {
"time": "1754413155"
},
"departure": {
"time": "1754413166"
},
"stopId": "130",
"stopSequence": 16
},
{
"arrival": {
"time": "1754413561"
},
"departure": {
"time": "1754413580"
},
"stopId": "154",
"stopSequence": 17
},
{
"arrival": {
"time": "1754413523"
},
"departure": {
"time": "1754413640"
},
"stopId": "159",
"stopSequence": 18
},
{
"arrival": {
"time": "1754413481"
},
"departure": {
"time": "1754413700"
},
"stopId": "157",
"stopSequence": 19
},
{
"arrival": {
"time": "1754413422"
},
"departure": {
"time": "1754413880"
},
"stopId": "147",
"stopSequence": 20
}
],
"timestamp": "1754413570",
"trip": {
"routeId": "1",
"scheduleRelationship": "SCHEDULED",
"tripId": "1_18h37_Jolivet"
},
"vehicle": {
"id": "8ec290bf1c7700fb"
}
}
},
{
"alert": {
"cause": "CONSTRUCTION",
"descriptionText": {
"translation": [
{
"text": "Travaux rue René basset le 23/08/25.\n\nEn raison de travaux rue René Basset, une déviation à été mise en place. \n\nL'arrêt \"Hôtel de Ville\" ne sera pas desservi la journée du 23/08/25\n\nReportez-vous aux arrêts \"Léopold\" / \"Hôpital\" et \"Remparts\".\n\nMerci pour votre compréhension, \n\nL'équipe Lunéo."
}
]
},
"effect": "DETOUR",
"headerText": {
"translation": [
{
"text": "TRAVAUX rue René Basset le 23/08/25"
}
]
},
"informedEntity": [
{
"routeId": "1"
}
]
},
"id": "alert:686531b08e26151779ed1fac"
},
{
"alert": {
"descriptionText": {
"translation": [
{
"text": "Suite à la fin des travaux Rue de Villers, l’arrêt Saint-Charles est à nouveau accessible.\n\nL'équipe Lunéo. "
}
]
},
"headerText": {
"translation": [
{
"text": "Fin des travaux Rue de Villers"
}
]
},
"informedEntity": [
{
"routeId": "1"
},
{
"routeId": "2"
},
{
"stopId": "10"
},
{
"stopId": "103"
},
{
"stopId": "104"
},
{
"stopId": "11"
},
{
"stopId": "110"
},
{
"stopId": "114"
},
{
"stopId": "117"
},
{
"stopId": "118"
},
{
"stopId": "119"
},
{
"stopId": "12"
},
{
"stopId": "122"
},
{
"stopId": "123"
},
{
"stopId": "124"
},
{
"stopId": "125"
},
{
"stopId": "128"
},
{
"stopId": "129"
},
{
"stopId": "13"
},
{
"stopId": "130"
},
{
"stopId": "131"
},
{
"stopId": "132"
},
{
"stopId": "133"
},
{
"stopId": "134"
},
{
"stopId": "135"
},
{
"stopId": "136"
},
{
"stopId": "137"
},
{
"stopId": "138"
},
{
"stopId": "14"
},
{
"stopId": "141"
},
{
"stopId": "142"
},
{
"stopId": "144"
},
{
"stopId": "145"
},
{
"stopId": "146"
},
{
"stopId": "147"
},
{
"stopId": "15"
},
{
"stopId": "154"
},
{
"stopId": "155"
},
{
"stopId": "157"
},
{
"stopId": "158"
},
{
"stopId": "159"
},
{
"stopId": "18"
},
{
"stopId": "19"
},
{
"stopId": "20"
},
{
"stopId": "22"
},
{
"stopId": "23"
},
{
"stopId": "24"
},
{
"stopId": "241"
},
{
"stopId": "242"
},
{
"stopId": "244"
},
{
"stopId": "245"
},
{
"stopId": "246"
},
{
"stopId": "248"
},
{
"stopId": "249"
},
{
"stopId": "25"
},
{
"stopId": "251"
},
{
"stopId": "252"
},
{
"stopId": "253"
},
{
"stopId": "254"
},
{
"stopId": "255"
},
{
"stopId": "257"
},
{
"stopId": "258"
},
{
"stopId": "26"
},
{
"stopId": "260"
},
{
"stopId": "261"
},
{
"stopId": "265"
},
{
"stopId": "266"
},
{
"stopId": "267"
},
{
"stopId": "27"
},
{
"stopId": "271"
},
{
"stopId": "273"
},
{
"stopId": "274"
},
{
"stopId": "275"
},
{
"stopId": "276"
},
{
"stopId": "277"
},
{
"stopId": "279"
},
{
"stopId": "28"
},
{
"stopId": "282"
},
{
"stopId": "283"
},
{
"stopId": "284"
},
{
"stopId": "285"
},
{
"stopId": "289"
},
{
"stopId": "29"
},
{
"stopId": "292"
},
{
"stopId": "295"
},
{
"stopId": "296"
},
{
"stopId": "297"
},
{
"stopId": "298"
},
{
"stopId": "299"
},
{
"stopId": "30"
},
{
"stopId": "300"
},
{
"stopId": "301"
},
{
"stopId": "302"
},
{
"stopId": "303"
},
{
"stopId": "304"
},
{
"stopId": "306"
},
{
"stopId": "308"
},
{
"stopId": "309"
},
{
"stopId": "31"
},
{
"stopId": "310"
},
{
"stopId": "313"
},
{
"stopId": "314"
},
{
"stopId": "315"
},
{
"stopId": "316"
},
{
"stopId": "323"
},
{
"stopId": "330"
},
{
"stopId": "331"
},
{
"stopId": "34"
},
{
"stopId": "35"
},
{
"stopId": "36"
},
{
"stopId": "37"
},
{
"stopId": "40"
},
{
"stopId": "41"
},
{
"stopId": "47"
},
{
"stopId": "48"
},
{
"stopId": "5"
},
{
"stopId": "50"
},
{
"stopId": "51"
},
{
"stopId": "52"
},
{
"stopId": "54"
},
{
"stopId": "6"
},
{
"stopId": "62"
},
{
"stopId": "63"
},
{
"stopId": "67"
},
{
"stopId": "68"
},
{
"stopId": "69"
},
{
"stopId": "7"
},
{
"stopId": "70"
},
{
"stopId": "71"
},
{
"stopId": "72"
},
{
"stopId": "73"
},
{
"stopId": "74"
},
{
"stopId": "76"
},
{
"stopId": "77"
},
{
"stopId": "8"
},
{
"stopId": "81"
},
{
"stopId": "825"
},
{
"stopId": "826"
},
{
"stopId": "828"
},
{
"stopId": "831"
},
{
"stopId": "832"
},
{
"stopId": "88"
},
{
"stopId": "89"
},
{
"stopId": "93"
},
{
"stopId": "94"
},
{
"stopId": "95"
},
{
"stopId": "96"
}
]
},
"id": "alert:688b2f1019b6309ff1a5a902"
}
],
"header": {
"gtfsRealtimeVersion": "2.0",
"timestamp": "1754413573"
}
}