Resource details

File name: L'va - GTFS-RT TripUpdate
Format: gtfs-rt

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

2026-01-01
100%
2026-01-02
100%
2026-01-03
100%
2026-01-04
100%
2026-01-05
100%
2026-01-06
100%
2026-01-07
100%
2026-01-08
100%
2026-01-09
100%
2026-01-10
100%
2026-01-11
100%
2026-01-12
100%
2026-01-13
100%
2026-01-14
100%
2026-01-15
100%
2026-01-16
100%
2026-01-17
100%
2026-01-18
100%
2026-01-19
100%
2026-01-20
100%
2026-01-21
100%
2026-01-22
100%
2026-01-23
100%
2026-01-24
99.3%
2026-01-25
100%
2026-01-26
100%
2026-01-27
100%
2026-01-28
100%
2026-01-29
100%
2026-01-30
100%
2026-01-31
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, 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
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
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_positions

Decoded 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" } }