Données ouvertes et API
Toute la base, régénérée à chaque import, sous Licence Ouverte 2.0 (Etalab). Pour citer : « horaires-travaux.fr, données du 2026-11-12 ».
Exports
- arretes.json 1.8 Mo tous les textes, leurs créneaux, leur provenance
- communes.json 12.6 Mo codes INSEE, codes postaux, arrêté effectif par public
- grilles.csv 49.0 Mo une ligne par commune, public, jour et plage
- meta.json 2 Ko version, date de génération, compteurs
API JSON
Lecture seule, sans clé, limitée à 60 requêtes par minute et par adresse. Toute réponse porte la provenance : niveau, identifiant de l'arrêté, format et date de relevé, date de vérification, liens officiels, citation de l'article.
GET /api/v1/grille?cp=33360- Les communes du code postal et leur grille effective par public.
GET /api/v1/communes/33245- Une commune par code INSEE : codes postaux, grille, page de la mairie.
GET /api/v1/arretes/33-gironde-2016-04-22- Un texte officiel, ses créneaux, sa citation, son statut.
GET /api/v1/recherche?q=lignan- Suggestions de communes pour une saisie partielle, nom ou code postal.
GET /api/v1/changements?depuis=2026-11-01&departement=33- Les changements de grille effective : ajout, remplacement, retrait, vérification, horaires. Filtres
depuis(date),departement,commune(INSEE),apres(identifiant, pour reprendre où vous en étiez).
Être prévenu d'un changement
Trois façons, du plus simple au plus intégré :
- Flux Atom
- /journal/flux.xml pour tout,
/departement/33/flux.xmlpour un département,/commune/33245-lignan-de-bordeaux/flux.xmlpour une commune. À mettre dans un lecteur, Outlook, Slack ou Teams. - Courriel
- Le formulaire d'alerte : une commune, plusieurs, ou des départements entiers. Confirmation par lien, au plus un message par jour, désinscription dans chaque message.
- Webhook
POST /api/v1/webhooksavec un corps JSON{"url": "https://…", "perimetre": [{"type": "departement", "code": "33"}, {"type": "commune", "code": "69123"}], "courriel": "facultatif"}. La réponse donne un identifiant et un secret. À chaque lot de changements, le site envoie unPOSTJSON à votre adresse, signé dans l'en-têteX-Signature(sha256=HMAC du corps avec le secret). Dix échecs consécutifs désactivent le webhook. Pour le retirer :DELETE /api/v1/webhooks/{id}avec l'en-têteX-Secret.
Si vous utilisez ces données
Merci de citer horaires-travaux.fr et de donner le lien de la page d'où vient l'information. C'est la seule condition de la Licence Ouverte 2.0, et c'est ce qui permet à vos lecteurs de retrouver l'arrêté. Chaque réponse de l'API et chaque export portent un champ attribution qui le rappelle.
Pour les assistants
Le fichier llms.txt décrit le site, la licence et la structure des données. Les robots des assistants sont explicitement autorisés dans robots.txt. Chaque page de commune est un tableau HTML sémantique avec des balises <time>, et existe aussi en JSON.