Aller au contenu

Exemples de collecte

Les huit exports du spec datahub alimentent un entrepôt de données à partir de l'exploitation d'un groupe. Cette page en donne un exemple exécutable pour chacun, dans le langage sélectionné dans l'en-tête — actuellement cURL.

Tous les exemples s'authentifient avec une clé d'API, transmise dans l'en-tête Authorization. La page Authentification décrit comment l'obtenir. Ils lisent leurs entrées dans l'environnement :

Variable Contenu
GROUP_ID L'identifiant du groupe à exporter
PYSAE_API_KEY La clé d'API portant les droits d'export

Avant de commencer : les signatures diffèrent

Les huit exports ne s'appellent pas de la même façon. Trois familles cohabitent, et il n'y a pas d'appel générique qui couvre les huit.

Export Paramètres
trips date (requis)
trip-km, passenger-counts start_date, end_date (requis)
punctuality, trip-tracking start_date (requis), end_date
drivers, vehicles, alerts aucun paramètre requis

Écrire les dates au format compact AAAAMMJJ — par exemple 20260131. C'est le seul format accepté par les cinq endpoints datés. punctuality et trip-tracking tolèrent aussi la forme AAAA-MM-JJ, mais les trois autres la rejettent : s'en tenir au format compact évite d'avoir à retenir lesquels.

La page Statistiques et exports du guide détaille ce que chacun renvoie.

Courses réalisées

GET /api/v4/groups/{group_id}/export/trips porte sur une journée, désignée par date. Pour couvrir une période, enchaîner un appel par jour.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/trips?date=20260131" \
  --output trips.csv

Kilomètres parcourus

GET /api/v4/groups/{group_id}/export/trip-km borne une période avec start_date et end_date, tous deux requis.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/trip-km?start_date=20260101&end_date=20260131" \
  --output trip-km.csv

Comptage voyageurs

GET /api/v4/groups/{group_id}/export/passenger-counts suit la même signature que les kilomètres.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/passenger-counts?start_date=20260101&end_date=20260131" \
  --output passenger-counts.csv

Ponctualité

GET /api/v4/groups/{group_id}/export/punctuality ne requiert que start_date. L'endpoint accepte en plus des filtres facultatifs — event, stop_id, gtfs_id, driver_id, route_id — pour restreindre l'export.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/punctuality?start_date=20260101&end_date=20260131" \
  --output punctuality.csv

Suivi de course

GET /api/v4/groups/{group_id}/export/trip-tracking requiert start_date et end_date.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/trip-tracking?start_date=20260101&end_date=20260131" \
  --output trip-tracking.csv

Conducteurs

GET /api/v4/groups/{group_id}/export/drivers exporte le référentiel des conducteurs, sans notion de période. Le paramètre facultatif archived permet d'inclure les conducteurs archivés, absents par défaut.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/drivers" \
  --output drivers.csv

Véhicules

GET /api/v4/groups/{group_id}/export/vehicles exporte le parc. Le paramètre facultatif statuses restreint aux véhicules dans un état donné.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/vehicles" \
  --output vehicles.csv

Alertes

GET /api/v4/groups/{group_id}/export/alerts exporte les messages d'information voyageurs du groupe. Aucun paramètre.

curl --fail --location \
  --header "Authorization: Api-Key ${PYSAE_API_KEY}" \
  "https://api.pysae.com/api/v4/groups/${GROUP_ID}/export/alerts" \
  --output alerts.csv

En production

  • Découper les longues périodes. Une tranche mensuelle se reprend après un échec ; un export annuel recommence de zéro.
  • Ne pas fixer de délai d'attente court. Les réponses sont diffusées au fil de l'eau et un export large met du temps à démarrer : un client qui impose un délai serré coupe la connexion avant la première ligne.
  • Rejouer un export est sans effet de bord. Ces endpoints sont en lecture seule.
  • Vérifier le périmètre de la clé. Une clé restreinte à certaines équipes exporte moins de lignes, sans que la réponse le signale.

Note interne

Des endpoints internes servent les mêmes données pour les usages back-office. Ils ne sont pas destinés aux intégrations externes.