Resource details
Données temps-réel du réseau L’va suivant la structure GTFS-RT au format Protocol Buffers.
This resource file is part of the dataset Réseau urbain L'va.
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, 4 warnings
Validation carried out using the current GTFS file and the GTFS-RT the 2026-01-30 at 08:03 Europe/Paris using the MobilityData GTFS-RT validator.
Errors
Vehicle position far from trip shape E029 1 error
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.
Sample errors
- vehicle.id vienne_faure-983 trip_id 1400000949 at (45.587223,4.9598265) is more than 200.0 meters (0.12 mile(s)) from the GTFS trip shape - vehicle should be near trip shape or on DETOUR
Warnings
vehicle_id not populated W002 2 errors
vehicle_id should be populated for TripUpdates and VehiclePositions
Sample errors
- trip_id 1400000691 does not have a vehicle_id
- trip_id 1400001177 does not have a vehicle_id
ID in one feed missing from the other W003 2 errors
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
Sample errors
- trip_id 1400000691 is in TripUpdates but not in VehiclePositions feed
- trip_id 1400001177 is in TripUpdates but not in VehiclePositions feed
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 |
|---|---|---|---|
| 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 | 97 | 23 times (77 % of validations) |
| W002 | vehicle_id should be populated for TripUpdates and VehiclePositions | 57 | 21 times (70 % 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. | 35 | 15 times (50 % of validations) |
| E041 | Unless a trip's schedule_relationship is CANCELED, a trip must have at least one stop_time_update | 3 | 2 times (7 % of validations) |
| E003 | All trip_ids provided in the GTFS-rt feed must exist in the GTFS data, unless the schedule_relationship is ADDED | 39 | 1 times (3 % of validations) |
| E022 | stop_time_update arrival/departure times between sequential stops should always increase - they should never be the same or decrease. | 10 | 1 times (3 % of validations) |
GTFS-RT feed content
Entities
Entities present in this feed at 2026-01-31 at 06:42 Europe/Paris.
vehicle_positions (3) trip_updates (3) service_alerts (0)Entities seen in the last 7 days.
trip_updates vehicle_positionsDecoded GTFS-RT feed
See full payload
Here is the decoded GTFS-RT feed Protobuf at 2026-01-31 at 06:42 Europe/Paris. You can look at the GTFS-RT documentation.
{
"entity": [
{
"id": "trip-1600000194",
"tripUpdate": {
"delay": -88,
"stopTimeUpdate": [
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "viemars2",
"stopSequence": 14
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "vieverd2",
"stopSequence": 15
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "vieserv2",
"stopSequence": 16
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "viepyra2",
"stopSequence": 17
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "vieden1",
"stopSequence": 18
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "vietren2",
"stopSequence": 19
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "vieparm2",
"stopSequence": 20
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "viemoul2",
"stopSequence": 21
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "viegali2",
"stopSequence": 22
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "vieavou2",
"stopSequence": 23
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "vieparc3",
"stopSequence": 24
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "viedame2",
"stopSequence": 25
},
{
"arrival": {
"delay": -88
},
"departure": {
"delay": -88
},
"stopId": "viecoll",
"stopSequence": 26
}
],
"timestamp": "1769838120",
"trip": {
"directionId": 1,
"routeId": "2",
"scheduleRelationship": "SCHEDULED",
"startTime": "06:23:00",
"tripId": "1600000194"
},
"vehicle": {
"id": "vienne-82",
"label": "82",
"licensePlate": ""
}
}
},
{
"id": "trip-1600000065",
"tripUpdate": {
"delay": 0,
"stopTimeUpdate": [
{
"arrival": {
"delay": 0,
"time": "1769838110"
},
"departure": {
"delay": 0,
"time": "1769838120"
},
"stopId": "ponrevo2",
"stopSequence": 2
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponclai2",
"stopSequence": 3
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "pongeor4",
"stopSequence": 4
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponnets2",
"stopSequence": 5
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "pongeor3",
"stopSequence": 6
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "pontann2",
"stopSequence": 7
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "poncann2",
"stopSequence": 8
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponresi2",
"stopSequence": 9
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viepont2",
"stopSequence": 10
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viecomt",
"stopSequence": 11
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vielafa",
"stopSequence": 12
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vierevo",
"stopSequence": 13
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viefaug",
"stopSequence": 14
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vierabe",
"stopSequence": 15
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viedrap",
"stopSequence": 16
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viecuvi",
"stopSequence": 17
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viejeud2",
"stopSequence": 18
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viesncf",
"stopSequence": 19
}
],
"timestamp": "1769838122",
"trip": {
"directionId": 1,
"routeId": "4",
"scheduleRelationship": "SCHEDULED",
"startTime": "06:40:00",
"tripId": "1600000065"
},
"vehicle": {
"id": "vienne-87",
"label": "87",
"licensePlate": "87"
}
}
},
{
"id": "trip-1600000400",
"tripUpdate": {
"delay": 0,
"stopTimeUpdate": [
{
"arrival": {
"delay": -648,
"time": "1769837951"
},
"departure": {
"delay": -648
},
"stopId": "vieccom2",
"stopSequence": 1
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viezies2",
"stopSequence": 2
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viebern2",
"stopSequence": 3
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viesavo2",
"stopSequence": 4
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viecent2",
"stopSequence": 5
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viecuri2",
"stopSequence": 6
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viecite2",
"stopSequence": 7
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viegest2",
"stopSequence": 8
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vieprin2",
"stopSequence": 9
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vierey2",
"stopSequence": 10
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vieteur2",
"stopSequence": 11
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viejeud2",
"stopSequence": 12
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viesncf",
"stopSequence": 13
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viecybe2",
"stopSequence": 14
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viechor4",
"stopSequence": 15
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vierava2",
"stopSequence": 16
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viechar2",
"stopSequence": 17
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vieceva2",
"stopSequence": 18
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponvega2",
"stopSequence": 19
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponforg2",
"stopSequence": 20
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponbleu2",
"stopSequence": 21
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "poncent2",
"stopSequence": 22
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponmesa2",
"stopSequence": 23
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "pongent2",
"stopSequence": 24
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponplan2",
"stopSequence": 25
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponbras2",
"stopSequence": 26
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "poncour2",
"stopSequence": 27
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponzmon2",
"stopSequence": 28
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponfrer2",
"stopSequence": 29
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "ponabb2",
"stopSequence": 30
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vierond2",
"stopSequence": 31
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viecedr2",
"stopSequence": 32
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viehorl2",
"stopSequence": 33
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "vieferm2",
"stopSequence": 34
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viehame2",
"stopSequence": 35
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viemali2",
"stopSequence": 36
},
{
"arrival": {
"delay": 0
},
"departure": {
"delay": 0
},
"stopId": "viesmal2",
"stopSequence": 37
}
],
"timestamp": "1769838104",
"trip": {
"directionId": 1,
"routeId": "1",
"scheduleRelationship": "SCHEDULED",
"startTime": "06:50:00",
"tripId": "1600000400"
},
"vehicle": {
"id": "vienne-83",
"label": "83",
"licensePlate": ""
}
}
},
{
"id": "vehicle-vienne-82",
"vehicle": {
"currentStopSequence": 14,
"position": {
"bearing": 186.0,
"latitude": 45.521331787109375,
"longitude": 4.874290943145752,
"speed": 0.0
},
"stopId": "viemars2",
"timestamp": "1769838118",
"trip": {
"directionId": 1,
"routeId": "2",
"scheduleRelationship": "SCHEDULED",
"tripId": "1600000194"
},
"vehicle": {
"id": "vienne-82",
"label": "82",
"licensePlate": ""
}
}
},
{
"id": "vehicle-vienne-87",
"vehicle": {
"currentStopSequence": 3,
"position": {
"bearing": 259.0,
"latitude": 45.5308723449707,
"longitude": 4.922636032104492,
"speed": 10.833333969116211
},
"stopId": "ponclai2",
"timestamp": "1769838120",
"trip": {
"directionId": 1,
"routeId": "4",
"scheduleRelationship": "SCHEDULED",
"tripId": "1600000065"
},
"vehicle": {
"id": "vienne-87",
"label": "87",
"licensePlate": "87"
}
}
},
{
"id": "vehicle-vienne-83",
"vehicle": {
"currentStatus": "STOPPED_AT",
"currentStopSequence": 1,
"position": {
"bearing": 144.0,
"latitude": 45.5422477722168,
"longitude": 4.850295543670654,
"speed": 0.0
},
"stopId": "vieccom2",
"timestamp": "1769838101",
"trip": {
"directionId": 1,
"routeId": "1",
"scheduleRelationship": "SCHEDULED",
"tripId": "1600000400"
},
"vehicle": {
"id": "vienne-83",
"label": "83",
"licensePlate": ""
}
}
}
],
"header": {
"gtfsRealtimeVersion": "2.0",
"timestamp": "1769838128"
}
}