Resource details

File name: GTFS-RT GRATIBUS Flux en temps réel
Format: gtfs-rt

Flux temps réel Gratibus

This resource file is part of the dataset Réseau urbain Gratibus.

Download availability

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

Validation carried out using the current GTFS file and the GTFS-RT the 2026-07-30 at 09:05 Europe/Paris using the MobilityData GTFS-RT validator.

Errors

stop_time_update doesn't have arrival or departure E043 1 error

If a stop_time_update doesn't have a schedule_relationship of SKIPPED or NO_DATA, then either arrival or departure must be provided

Sample errors
  • trip_id Z_R_02 stop_sequence 0 doesn't have arrival or departure
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
E043 If a stop_time_update doesn't have a schedule_relationship of SKIPPED or NO_DATA, then either arrival or departure must be provided 42 19 times (70 % 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 27 18 times (67 % of validations)
E047 If separate `VehiclePositions` and `TripUpdates` feeds are provided, `VehicleDescriptor` or `TripDescriptor` ID value pairing should match between the two feeds. 16 12 times (44 % of validations)
E052 Each vehicle should have a unique ID 7 7 times (26 % of validations)
E037 Sequential GTFS-rt trip stop_time_updates shouldn't have the same stop_id 7 4 times (15 % of validations)
E034 All agency_ids provided in the GTFS-rt alert.informed_entity.agency_id should also exist in GTFS agency.txt 1 1 times (4 % of validations)
W009 trip.schedule_relationship and stop_time_update.schedule_relationship should be populated 1 1 times (4 % of validations)

GTFS-RT feed content

Entities

Entities present in this feed at 2026-07-31 at 08:17 Europe/Paris.

vehicle_positions (2) trip_updates (2) service_alerts (0)

Entities seen in the last 7 days.

service_alerts trip_updates vehicle_positions

Decoded GTFS-RT feed

See full payload

Here is the decoded GTFS-RT feed Protobuf at 2026-07-31 at 08:17 Europe/Paris. You can look at the GTFS-RT documentation.

{ "entity": [ { "id": "vehicle:686cec19be97c0a2d3f4f810", "vehicle": { "currentStopSequence": 10, "occupancyStatus": "EMPTY", "position": { "latitude": 47.0240592956543, "longitude": -2.2881243228912354 }, "stopId": "DUNES_AR", "timestamp": "1785478659", "trip": { "routeId": "Ligne C", "scheduleRelationship": "SCHEDULED", "tripId": "C_01" }, "vehicle": { "id": "686cec19be97c0a2d3f4f810", "label": "972", "licensePlate": "GT-556-BT" } } }, { "id": "vehicle:6a4cd62f33f41ca434be21fb", "vehicle": { "currentStopSequence": 7, "occupancyStatus": "EMPTY", "position": { "latitude": 46.93865203857422, "longitude": -2.1734297275543213 }, "stopId": "CENTREVILL_R", "timestamp": "1785478654", "trip": { "routeId": "Ligne Z", "scheduleRelationship": "SCHEDULED", "tripId": "Z_R_01" }, "vehicle": { "id": "6a4cd62f33f41ca434be21fb", "label": "360", "licensePlate": "GY-625-WB" } } }, { "id": "trip:Z_R_01", "tripUpdate": { "stopTimeUpdate": [ { "stopId": "RPFOSSE_AR", "stopSequence": 0 }, { "arrival": { "time": "1785477743" }, "departure": { "time": "1785477749" }, "stopId": "VILLAVAC_R", "stopSequence": 1 }, { "arrival": { "time": "1785477815" }, "departure": { "time": "1785477856" }, "stopId": "CROIXVERTE_R", "stopSequence": 2 }, { "arrival": { "time": "1785477909" }, "departure": { "time": "1785477972" }, "stopId": "NOURES_R", "stopSequence": 3 }, { "arrival": { "time": "1785478104" }, "departure": { "time": "1785478209" }, "stopId": "ONCHERE_R", "stopSequence": 4 }, { "arrival": { "time": "1785478274" }, "departure": { "time": "1785478318" }, "stopId": "CROIXROUG_R", "stopSequence": 5 }, { "arrival": { "time": "1785478408" }, "departure": { "time": "1785478451" }, "stopId": "RPGOIS_AR", "stopSequence": 6 }, { "arrival": { "time": "1785478720" }, "departure": { "time": "1785478720" }, "stopId": "CENTREVILL_R", "stopSequence": 7 }, { "arrival": { "time": "1785478840" }, "departure": { "time": "1785478840" }, "stopId": "PARCMAIRIE_R", "stopSequence": 8 }, { "arrival": { "time": "1785478900" }, "departure": { "time": "1785478900" }, "stopId": "MAIRSONROUG_R", "stopSequence": 9 }, { "arrival": { "time": "1785479140" }, "departure": { "time": "1785479140" }, "stopId": "TRESSON_AR", "stopSequence": 10 }, { "arrival": { "time": "1785479380" }, "departure": { "time": "1785479380" }, "stopId": "CAMPINGBONH_R", "stopSequence": 11 }, { "arrival": { "time": "1785479500" }, "departure": { "time": "1785479500" }, "stopId": "ECOLECOM_R", "stopSequence": 12 }, { "arrival": { "time": "1785479620" }, "departure": { "time": "1785479620" }, "stopId": "CROIXBLANCH_R", "stopSequence": 13 }, { "arrival": { "time": "1785479680" }, "departure": { "time": "1785479680" }, "stopId": "FRANCS_R", "stopSequence": 14 }, { "arrival": { "time": "1785479800" }, "departure": { "time": "1785479800" }, "stopId": "4VENTS_R", "stopSequence": 15 }, { "arrival": { "time": "1785480100" }, "departure": { "time": "1785480100" }, "stopId": "PRKCAMPING_R", "stopSequence": 16 }, { "arrival": { "time": "1785480340" }, "departure": { "time": "1785480340" }, "stopId": "PORTMORIN_AR", "stopSequence": 17 }, { "arrival": { "time": "1785480520" }, "departure": { "time": "1785480520" }, "stopId": "CAMPINGBOSS_AR", "stopSequence": 18 }, { "arrival": { "time": "1785481000" }, "departure": { "time": "1785481000" }, "stopId": "GARE-INTERURB_AR", "stopSequence": 19 } ], "timestamp": "1785478654", "trip": { "routeId": "Ligne Z", "scheduleRelationship": "SCHEDULED", "tripId": "Z_R_01" }, "vehicle": { "id": "6a4cd62f33f41ca434be21fb", "label": "360", "licensePlate": "GY-625-WB" } } }, { "id": "trip:C_01", "tripUpdate": { "stopTimeUpdate": [ { "arrival": { "time": "1785476691" }, "departure": { "time": "1785477758" }, "stopId": "GARE-URB_AR", "stopSequence": 0 }, { "arrival": { "time": "1785477881" }, "departure": { "time": "1785477891" }, "stopId": "MAISONSANTE_A", "stopSequence": 1 }, { "arrival": { "time": "1785478017" }, "departure": { "time": "1785478022" }, "stopId": "HOUSSI_A", "stopSequence": 2 }, { "arrival": { "time": "1785478102" }, "departure": { "time": "1785478107" }, "stopId": "LUZAY_A", "stopSequence": 3 }, { "arrival": { "time": "1785478147" }, "departure": { "time": "1785478152" }, "stopId": "LUZERON_A", "stopSequence": 4 }, { "arrival": { "time": "1785478178" }, "departure": { "time": "1785478188" }, "stopId": "PAREEBLAN_A", "stopSequence": 5 }, { "arrival": { "time": "1785478203" }, "departure": { "time": "1785478233" }, "stopId": "EGLISE_A", "stopSequence": 6 }, { "arrival": { "time": "1785478288" }, "departure": { "time": "1785478328" }, "stopId": "MAIRIEANNEXE_A", "stopSequence": 7 }, { "arrival": { "time": "1785478374" }, "departure": { "time": "1785478426" }, "stopId": "HERBAUPORT_A", "stopSequence": 8 }, { "arrival": { "time": "1785478581" }, "departure": { "time": "1785478633" }, "stopId": "RUEECOLES_AR", "stopSequence": 9 }, { "arrival": { "time": "1785478690" }, "departure": { "time": "1785478690" }, "stopId": "DUNES_AR", "stopSequence": 10 }, { "arrival": { "time": "1785478810" }, "departure": { "time": "1785478810" }, "stopId": "MARTROGER_AR", "stopSequence": 11 }, { "arrival": { "time": "1785478870" }, "departure": { "time": "1785478870" }, "stopId": "TERRSPORT_AR", "stopSequence": 12 }, { "arrival": { "time": "1785478930" }, "departure": { "time": "1785478930" }, "stopId": "GRANDEDOUV_AR", "stopSequence": 13 }, { "arrival": { "time": "1785479110" }, "departure": { "time": "1785479110" }, "stopId": "HERBAUPORT_R", "stopSequence": 14 }, { "arrival": { "time": "1785479170" }, "departure": { "time": "1785479170" }, "stopId": "MAIRIEANNEXE_R", "stopSequence": 15 }, { "arrival": { "time": "1785479290" }, "departure": { "time": "1785479290" }, "stopId": "EGLISE_R", "stopSequence": 16 }, { "arrival": { "time": "1785479350" }, "departure": { "time": "1785479350" }, "stopId": "PAREEBLAN_R", "stopSequence": 17 }, { "arrival": { "time": "1785479410" }, "departure": { "time": "1785479410" }, "stopId": "LUZERON_R", "stopSequence": 18 }, { "arrival": { "time": "1785479470" }, "departure": { "time": "1785479470" }, "stopId": "LUZAY_R", "stopSequence": 19 }, { "arrival": { "time": "1785479530" }, "departure": { "time": "1785479530" }, "stopId": "HOUSSI_R", "stopSequence": 20 }, { "arrival": { "time": "1785479650" }, "departure": { "time": "1785479650" }, "stopId": "MAISONSANTE_R", "stopSequence": 21 }, { "arrival": { "time": "1785479770" }, "departure": { "time": "1785479770" }, "stopId": "GARE-URB_AR", "stopSequence": 22 } ], "timestamp": "1785478659", "trip": { "routeId": "Ligne C", "scheduleRelationship": "SCHEDULED", "tripId": "C_01" }, "vehicle": { "id": "686cec19be97c0a2d3f4f810", "label": "972", "licensePlate": "GT-556-BT" } } } ], "header": { "gtfsRealtimeVersion": "2.0", "timestamp": "1785478660" } }