Resource details

File name: GTFS-RT - Positions des véhicules (lignes Transdev Rouen)
Format: gtfs-rt

Cette ressource met à disposition la position des véhicules des lignes du réseau Astuce exploitées par Transdev Rouen au format GTFS-RT.

Contrairement au GTFS-RT officiel, ce GTFS-RT est continuellement mis à jour : en le téléchargeant toutes les \~ 15 secondes, vous serez en mesure d’avoir des données quasi systématiquement fraiches.

En bonus, la fréquentation en temps réel des véhicules est renvoyée lorsque l’information est disponible.

Depuis le 20 octobre 2025, cette ressource s’aligne sur le GTFS complet publié sur le PAN. Pour revenir aux anciens identifiants, ajouter ?id_format=TCAR à la fin de vos URLs.

Pour télécharger la représentation JSON : https://gtfs.bus-tracker.fr/gtfs-rt/tcar/vehicle-positions.json.

Le numéro du véhicule se trouve dans le champ id du VehicleDescriptor. Le champ label contient la destination SAE (et peut être utilisée à la place du trip_headsign pour une fiabilité de l’information accrue) lorsque la donnée provient du site web site web myastuce.fr.

Pour toute question, ou en cas d’anomalie rencontrée lors de l’utilisation de cette ressource, nous vous invitons à nous contacter à contact@bus-tracker.fr.

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

Download availability

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

No validation available
Validate this GTFS-RT now

GTFS-RT feed content

Entities

Entities present in this feed at 2025-10-22 at 23:37 Europe/Paris.

vehicle_positions (31) service_alerts (0) trip_updates (0)

Entities seen in the last 7 days.

vehicle_positions

Decoded GTFS-RT feed

See full payload

Here is the decoded GTFS-RT feed Protobuf at 2025-10-22 at 23:37 Europe/Paris. You can look at the GTFS-RT documentation.

{ "entity": [ { "id": "VM:TCAR:854", "vehicle": { "currentStatus": "STOPPED_AT", "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 331.0, "latitude": 49.400474548339844, "longitude": 1.0425509214401245 }, "stopId": "TCAR:BRAQU1", "timestamp": "1761168486", "trip": { "directionId": 1, "routeId": "TCAR:90", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:5212:4015270" }, "vehicle": { "id": "TCAR:854", "label": "Boulingrin C" } } }, { "id": "VM:TCAR:845", "vehicle": { "position": { "bearing": 191.0, "latitude": 49.398136138916016, "longitude": 1.0717793703079224 }, "stopId": "TCAR:PARC0", "timestamp": "1761169056", "trip": { "directionId": 0, "routeId": "TCAR:90", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:4211:4015270" }, "vehicle": { "id": "TCAR:845", "label": "Technopôle" } } }, { "id": "VM:TCAR:846", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 236.0, "latitude": 49.43191909790039, "longitude": 1.083246111869812 }, "stopId": "TCAR:STSEV0", "timestamp": "1761169056", "trip": { "directionId": 0, "routeId": "TCAR:90", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:4677:4015270" }, "vehicle": { "id": "TCAR:846", "label": "Georges Braque" } } }, { "id": "VM:TCAR:6412", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 294.0, "latitude": 49.440128326416016, "longitude": 1.0897547006607056 }, "stopId": "TCAR:TARTT2", "timestamp": "1761169045", "trip": { "directionId": 1, "routeId": "TCAR:93", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:2367:4015343" }, "vehicle": { "id": "TCAR:6412", "label": "Monet" } } }, { "id": "VM:TCAR:6403", "vehicle": { "currentStatus": "STOPPED_AT", "currentStopSequence": 1, "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 185.0, "latitude": 49.457115173339844, "longitude": 1.0361582040786743 }, "stopId": "TCAR:TMONET", "timestamp": "1761168845", "trip": { "directionId": 0, "routeId": "TCAR:93", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:3291:4015343" }, "vehicle": { "id": "TCAR:6403", "label": "Durécu-Lavoisier" } } }, { "id": "VM:TCAR:849", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 2.0, "latitude": 49.42350769042969, "longitude": 1.0889747142791748 }, "stopId": "TCAR:BALZA1", "timestamp": "1761169056", "trip": { "directionId": 1, "routeId": "TCAR:90", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:5651:4015270" }, "vehicle": { "id": "TCAR:849", "label": "Boulingrin B" } } }, { "id": "VM:TCAR:6414", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 343.0, "latitude": 49.45612335205078, "longitude": 1.056841492652893 }, "stopId": "TCAR:MAISO2", "timestamp": "1761169045", "trip": { "directionId": 1, "routeId": "TCAR:92", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:378:4015335" }, "vehicle": { "id": "TCAR:6414", "label": "V. Schoelcher" } } }, { "id": "VM:TCAR:5501", "vehicle": { "currentStatus": "STOPPED_AT", "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 320.0, "latitude": 49.41255187988281, "longitude": 1.0731998682022095 }, "stopId": "TCAR:DIOCH4", "timestamp": "1761169056", "trip": { "directionId": 1, "routeId": "TCAR:01", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:10609:4015342" }, "vehicle": { "id": "TCAR:5501", "label": "Pl. de la Ronce" } } }, { "id": "VM:TCAR:5211", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 216.0, "latitude": 49.4057731628418, "longitude": 1.1520073413848877 }, "stopId": "TCAR:HUBER1", "timestamp": "1761169056", "trip": { "directionId": 1, "routeId": "TCAR:05", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:12894:4015286" }, "vehicle": { "id": "TCAR:5211", "label": "Théâtre des Arts" } } }, { "id": "VM:TCAR:4002", "vehicle": { "position": { "bearing": 19.0, "latitude": 49.44083786010742, "longitude": 1.0977555513381958 }, "stopId": "TCAR:HVR4", "timestamp": "1761169045", "trip": { "directionId": 1, "routeId": "TCAR:07", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:14732:4015292" }, "vehicle": { "id": "TCAR:4002", "label": "La Pléiade" } } }, { "id": "VM:TCAR:6404", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 16.0, "latitude": 49.44384002685547, "longitude": 1.1504794359207153 }, "stopId": "TCAR:DUREC", "timestamp": "1761168435", "trip": { "directionId": 1, "routeId": "TCAR:93", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:2311:4015343" }, "vehicle": { "id": "TCAR:6404", "label": "Monet" } } }, { "id": "VM:TCAR:5315", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 34.0, "latitude": 49.46980285644531, "longitude": 1.1199511289596558 }, "stopId": "TCAR:BGUI31", "timestamp": "1761169056", "trip": { "directionId": 1, "routeId": "TCAR:01", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:10597:4015342" }, "vehicle": { "id": "TCAR:5315", "label": "Pl. de la Ronce" } } }, { "id": "VM:TCAR:5403", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 55.0, "latitude": 49.46808624267578, "longitude": 1.0752203464508057 }, "stopId": "TCAR:LEHM21", "timestamp": "1761169045", "trip": { "directionId": 1, "routeId": "TCAR:02", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:11291:4015269" }, "vehicle": { "id": "TCAR:5403", "label": "La Vatine-C.Cial" } } }, { "id": "VM:TCAR:4012", "vehicle": { "position": { "bearing": 203.0, "latitude": 49.44491195678711, "longitude": 1.0921870470046997 }, "stopId": "TCAR:BARTS0", "timestamp": "1761169045", "trip": { "directionId": 0, "routeId": "TCAR:07", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:14404:4015292" }, "vehicle": { "id": "TCAR:4012", "label": "HDV Sotteville" } } }, { "id": "VM:TCAR:6106", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 241.0, "latitude": 49.44023132324219, "longitude": 1.1122359037399292 }, "stopId": "TCAR:CHRUT2", "timestamp": "1761168655", "trip": { "directionId": 1, "routeId": "TCAR:91", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:6260:4015277" }, "vehicle": { "id": "TCAR:6106", "label": "Mont aux Malades" } } }, { "id": "VM:TCAR:6231", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 320.0, "latitude": 49.488712310791016, "longitude": 1.0488694906234741 }, "stopId": "TCAR:BMAIR1", "timestamp": "1761168065", "trip": { "directionId": 0, "routeId": "TCAR:92", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:1406:4015335" }, "vehicle": { "id": "TCAR:6231", "label": "Tamarelle" } } }, { "id": "VM:TCAR:5316", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 28.0, "latitude": 49.461273193359375, "longitude": 1.1311936378479004 }, "stopId": "TCAR:TAMAR4", "timestamp": "1761169025", "trip": { "directionId": 0, "routeId": "TCAR:02", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:10934:4015269" }, "vehicle": { "id": "TCAR:5316", "label": "Tamarelle" } } }, { "id": "VM:TCAR:6237", "vehicle": { "currentStatus": "STOPPED_AT", "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 285.0, "latitude": 49.461368560791016, "longitude": 1.0711959600448608 }, "stopId": "TCAR:CBLBE1", "timestamp": "1761169056", "trip": { "directionId": 0, "routeId": "TCAR:91", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:6979:4015277" }, "vehicle": { "id": "TCAR:6237", "label": "CHU Ch. Nicolle" } } }, { "id": "VM:TCAR:6230", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 357.0, "latitude": 49.46310806274414, "longitude": 1.1314811706542969 }, "stopId": "TCAR:TAMAR", "timestamp": "1761169056", "trip": { "directionId": 1, "routeId": "TCAR:92", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:448:4015335" }, "vehicle": { "id": "TCAR:6230", "label": "V. Schoelcher" } } }, { "id": "VM:TCAR:5305", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 237.0, "latitude": 49.528892517089844, "longitude": 1.0403636693954468 }, "stopId": "TCAR:CMEDI1", "timestamp": "1761169056", "trip": { "directionId": 0, "routeId": "TCAR:04", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:12370:4015282" }, "vehicle": { "id": "TCAR:5305", "label": "Mont-Riboudet" } } }, { "id": "VM:TCAR:5209", "vehicle": { "currentStatus": "STOPPED_AT", "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 196.0, "latitude": 49.43604278564453, "longitude": 1.0955021381378174 }, "stopId": "TCAR:PCORN0", "timestamp": "1761169045", "trip": { "directionId": 0, "routeId": "TCAR:01", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:10227:4015342" }, "vehicle": { "id": "TCAR:5209", "label": "Stade Diochon" } } }, { "id": "VM:TCAR:6408", "vehicle": { "currentStatus": "STOPPED_AT", "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 109.0, "latitude": 49.44888687133789, "longitude": 1.0649867057800293 }, "stopId": "TCAR:RIBOU1", "timestamp": "1761169045", "trip": { "directionId": 0, "routeId": "TCAR:93", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:3298:4015343" }, "vehicle": { "id": "TCAR:6408", "label": "Durécu-Lavoisier" } } }, { "id": "VM:TCAR:703", "vehicle": { "position": { "bearing": 198.0, "latitude": 49.378211975097656, "longitude": 1.1015524864196777 }, "stopId": "TCAR:LANGU0", "timestamp": "1761169035", "trip": { "directionId": 0, "routeId": "TCAR:03", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:11485:4015276" }, "vehicle": { "id": "TCAR:703", "label": "TERM. PROVISOIRE" } } }, { "id": "VM:TCAR:6102", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 98.0, "latitude": 49.441890716552734, "longitude": 1.1163294315338135 }, "stopId": "TCAR:JEUNE1", "timestamp": "1761169056", "trip": { "directionId": 0, "routeId": "TCAR:92", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:1397:4015335" }, "vehicle": { "id": "TCAR:6102", "label": "Tamarelle" } } }, { "id": "VM:TCAR:708", "vehicle": { "position": { "bearing": 358.0, "latitude": 49.3477668762207, "longitude": 1.095821738243103 }, "stopId": "TCAR:PEZO21", "timestamp": "1761169035", "trip": { "directionId": 1, "routeId": "TCAR:03", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:11416:4015276" }, "vehicle": { "id": "TCAR:708", "label": "HDV Sotteville" } } }, { "id": "VM:TCAR:6234", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 43.0, "latitude": 49.46088790893555, "longitude": 1.074198603630066 }, "stopId": "TCAR:COQUE2", "timestamp": "1761169056", "trip": { "directionId": 1, "routeId": "TCAR:91", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:6258:4015277" }, "vehicle": { "id": "TCAR:6234", "label": "Mont aux Malades" } } }, { "id": "VM:TCAR:684", "vehicle": { "currentStatus": "STOPPED_AT", "currentStopSequence": 1, "position": { "bearing": 354.0, "latitude": 49.37656021118164, "longitude": 1.1093528270721436 }, "stopId": "TCAR:GARES", "timestamp": "1761169015", "trip": { "directionId": 1, "routeId": "TCAR:06", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:13565:4015288" }, "vehicle": { "id": "TCAR:684" } } }, { "id": "VM:TCAR:673", "vehicle": { "position": { "bearing": 195.0, "latitude": 49.36578369140625, "longitude": 1.0139997005462646 }, "stopId": "TCAR:LYLEG0", "timestamp": "1761169045", "trip": { "directionId": 1, "routeId": "TCAR:06", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:13552:4015288" }, "vehicle": { "id": "TCAR:673", "label": "Les Bouttières" } } }, { "id": "VM:TCAR:831", "vehicle": { "occupancyStatus": "MANY_SEATS_AVAILABLE", "position": { "bearing": 91.0, "latitude": 49.448463439941406, "longitude": 1.0956283807754517 }, "stopId": "TCAR:BEAUV1", "timestamp": "1761169056", "trip": { "directionId": 1, "routeId": "TCAR:90", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:5192:4015270" }, "vehicle": { "id": "TCAR:831", "label": "Boulingrin C" } } }, { "id": "VM:TCAR:6123", "vehicle": { "position": { "bearing": 176.0, "latitude": 49.42336654663086, "longitude": 1.0669972896575928 }, "stopId": "TCAR:NOVET1", "timestamp": "1761169056", "trip": { "directionId": 0, "routeId": "TCAR:94", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:8884:4015293" }, "vehicle": { "id": "TCAR:6123", "label": "Zénith-Parc Expo" } } }, { "id": "VM:TCAR:6406", "vehicle": { "currentStatus": "STOPPED_AT", "position": { "bearing": 270.0, "latitude": 49.43791198730469, "longitude": 1.114633321762085 }, "stopId": "TCAR:MCURIE", "timestamp": "1761168846", "trip": { "directionId": 0, "routeId": "TCAR:94", "scheduleRelationship": "SCHEDULED", "tripId": "TCAR:8838:4015293" }, "vehicle": { "id": "TCAR:6406", "label": "Zénith-Parc Expo" } } } ], "header": { "gtfsRealtimeVersion": "2.0", "timestamp": "1761169064" } }