API d'alertes des transports de Montpellier

Documentation complète pour accéder aux données d'alertes du réseau de transport en commun

Transports Montpellier L2 tramway
Transports Montpellier L2 tramway
Transports Montpellier L2 tramway

Présentation de l'API

Cette API REST permet d'accéder aux informations sur les perturbations, travaux et autres événements affectant le réseau de transport en commun de Montpellier. Elle est conçue pour être facilement intégrable dans vos applications.

L'API est limitée à 10 requêtes par minute par adresse IP.

Endpoint principal

Récupérer les alertes actives

Paramètres de requête

ParamètreTypeDescription
activebooleanSi true, retourne les alertes actuellement actives
completedbooleanSi true, retourne les alertes terminées
upcomingbooleanSi true, retourne les alertes à venir
routestringFiltre par identifiant de ligne: 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 50, 51, 52, 53, 91, 92, 93, 94, 95, 96
stopstringFiltre par identifiant d'arrêt
timeFramestringPériode: 'today', 'week', 'month'
pagenumberNuméro de page (défaut: 1)
pageSizenumberNombre d'éléments par page (défaut: 20)
sortBystringChamp de tri (défaut: 'timeStart')
sortOrderstringOrdre de tri: 'asc' ou 'desc' (défaut: 'desc')

Exemples d'utilisation

Récupérer les alertes à venir pour une ligne spécifique

Récupérer les alertes d'aujourd'hui

Paginer les résultats

Structure de la réponse

L'API retourne les données au format JSON avec la structure suivante:

{ "data": [ { "id": "1234", "timeStart": "2025-03-15T08:00:00Z", "timeEnd": "2025-03-15T17:00:00Z", "cause": "MAINTENANCE", "effect": "DETOUR", "headerText": "Travaux sur la ligne T1", "descriptionText": "En raison de travaux de maintenance...", "url": "https://example.com/alerts/1234", "routeIds": "7-1", "stopIds": "1234,5678", "isComplement": false, "parentAlertId": null, "routeDetails": [ { "routeId": "7-1", "routeNumber": "1", "lineType": "main", "shortName": "1", "longName": "Tram Line 1", "type": 0, "color": "#FF0000", "textColor": "#FFFFFF" } ], "complements": [...] } ], "pagination": { "totalItems": 100, "totalPages": 5, "currentPage": 1, "pageSize": 20, "hasNextPage": true, "hasPrevPage": false } }

Codes de statut

  • 200 - Succès
  • 429 - Limite de taux dépassée
  • 500 - Erreur serveur

Types énumérés

Causes d'alertes

enum AlertCause { UNKNOWN_CAUSE = "UNKNOWN_CAUSE", OTHER_CAUSE = "OTHER_CAUSE", TECHNICAL_PROBLEM = "TECHNICAL_PROBLEM", STRIKE = "STRIKE", DEMONSTRATION = "DEMONSTRATION", ACCIDENT = "ACCIDENT", HOLIDAY = "HOLIDAY", WEATHER = "WEATHER", MAINTENANCE = "MAINTENANCE", CONSTRUCTION = "CONSTRUCTION", POLICE_ACTIVITY = "POLICE_ACTIVITY", MEDICAL_EMERGENCY = "MEDICAL_EMERGENCY", TRAFFIC_JAM = "TRAFFIC_JAM" }

Effets d'alertes

enum AlertEffect { NO_SERVICE = "NO_SERVICE", REDUCED_SERVICE = "REDUCED_SERVICE", SIGNIFICANT_DELAYS = "SIGNIFICANT_DELAYS", DETOUR = "DETOUR", ADDITIONAL_SERVICE = "ADDITIONAL_SERVICE", MODIFIED_SERVICE = "MODIFIED_SERVICE", OTHER_EFFECT = "OTHER_EFFECT", UNKNOWN_EFFECT = "UNKNOWN_EFFECT", STOP_MOVED = "STOP_MOVED", NO_EFFECT = "NO_EFFECT", ACCESSIBILITY_ISSUE = "ACCESSIBILITY_ISSUE" }

Utilisation automatisée des alertes

Ces alertes sont automatiquement publiées sur Twitter/X via un système d'automatisation utilisant Puppeteer et des cron jobs Vercel. Pour plus d'informations sur ce système, consultez la documentation technique du projet.

Voir les alertes sur Twitter

Source des données et licence

Les données fournies par cette API proviennent de Montpellier Méditerranée Métropole via le jeu de données "Offre de transport TAM en temps réel".

Cette API est distribuée sous licence ODbL (Open Database License).

Transformation et enrichissement des données

Cette API effectue plusieurs transformations sur les données d'origine tout en respectant la licence ODbL :

  • Conversion de format : Les données originales au format Protocol Buffers (.pb) sont converties en JSON pour une meilleure accessibilité et compatibilité web.
  • Enrichissement des données : Notre API enrichit les données brutes en ajoutant des informations complémentaires et des métadonnées pour faciliter la navigation.
  • Structuration optimisée : La structure de l'API est conçue pour faciliter l'intégration dans des applications clientes.

Ces transformations préservent la nature des informations, leur granularité, leurs conditions temporelles et leur emprise géographique, conformément à l'article 4.4 de la licence ODbL.