
Intégration API SNCF & transport
Nous développons votre connecteur SNCF
Nous branchons api.sncf.com sur votre outil d'interventions ou de notes de frais : gare la plus proche, prochain train, impact d'une perturbation. Sans renvoyer l'utilisateur vers SNCF Connect, et sans brûler le quota avant midi.
- Équipe produit senior
- connecteurs de données publiques en production
- du cadrage au monitoring
À quoi sert l'API SNCF et dans quels cas l'intégrer à une application ?
L'API SNCF donne accès en temps réel aux horaires, aux itinéraires et aux prochains départs de trains en France : TGV, TER, Intercités, Transilien et liaisons internationales. On l'intègre dans des applications de mobilité d'entreprise pour afficher les options de trajet en train à une date donnée, dans des outils de gestion des déplacements professionnels pour suggérer les trajets disponibles, ou dans des plateformes logistiques pour planifier les livraisons en tenant compte des horaires ferroviaires. L'accès est gratuit dans les limites du quota journalier.
Ce que nos clients construisent sur l'API SNCF
Prochain train dans un outil d'interventions
Gare de départ = gare la plus proche du technicien. Le déplacement n'est plus recopié depuis l'app grand public.
Autocomplete gare dans un SIRH
Notes de frais, CSE, travel management : une proposition d'aller-retour, plus un horaire périmé dans un tableur.
Alerte retard sur un trajet déjà posé
On surveille prudemment les trajets déjà posés au planning. Pas de rafraîchissement agressif qui brûle le quota avant midi.
Parcours francilien, bascule PRIM
Dès qu'il y a métro ou RER IDFM, ce n'est plus api.sncf.com. On câble PRIM, pas un Navitia trains étendu au doigt mouillé.
Ce que ça change dans vos déplacements métier
La technique au service d'un résultat mesurable : le train suivant dans l'outil, un quota qui tient jusqu'au soir.
L'API officielle, pas un scrape
Avec un jeton valide, les horaires répondent. On ne reconstruit pas un parcours sur un site grand public.
Le quota tient jusqu'au soir
Un champ gare sans limite brûle le forfait journalier. Cache et appels côté serveur : le service reste dispo.
Transilien n'est pas du temps réel
Afficher un « temps réel » Transilien est un mensonge produit. TGV / TER oui ; Transilien, théorique seulement.
Train seulement, pas tout le MaaS
Pas de métro, pas de bus. Pour la France multimodale, on câble les bonnes sources (données ouvertes, PRIM en Île-de-France).
Comment nous livrons votre connecteur SNCF
Cadrage
Train only ou multimodal, volume d'autocomplete, Île-de-France ou non. On dimensionne le quota avant d'écrire une ligne.
Développement
Jeton en secret serveur, debounce, cache court sur /places, compteur quotidien, distinction théorique / temps réel.
Recette
Rejeu sur vos gares réelles, test Transilien vs TGV, test de la coupure à 5 000, test HTTPS (la FAQ mélange encore HTTP).
Monitoring
Alerte à 80 % du quota, 401, latence. Vous savez qu'un widget est mort avant que le terrain rappelle.
Ce que permet l'API SNCF
- Autocomplete de gares
- Recherche à partir d'une chaîne. C'est l'appel qui brûle le quota si on oublie le debounce. Cache court obligatoire.
- Prochains départs et arrivées
- Le widget « prochain train » d'un outil d'interventions. Cache de quelques dizaines de secondes, pas un refresh à chaque pixel.
- Calcul d'itinéraire train
- Gare à gare ou ville à ville, fenêtre J-1 / J / J+23. Correspondances intra-muros Paris : durées approximatives.
- Grilles horaires
- Horaires théoriques des lignes. Utile à un CSE ; insuffisant pour du temps réel Transilien, qui n'existe pas ici.
Le vocabulaire de l'API SNCF
- Navitia
- Le moteur (Hove / Kisio) derrière api.sncf.com. La doc générique vit sur doc.navitia.io : toutes les URLs d'exemple sont à réécrire vers api.sncf.com, sinon l'auth casse.
- Token développeur
- Inscription sur numerique.sncf.com. HTTP Basic, username = jeton, mot de passe vide, ou jeton dans l'URL. Sans lui, 401 no token.
- 5 000 / jour
- Quota gratuit par réutilisateur. Exemple officiel : 5 000 requêtes en 12 h, bloqué 12 h. Un autocomplete sans debounce est un suicide de quota.
- Transilien théorique
- TGV, Intercités, TER, Lyria, Eurostar : théorique + temps réel. Transilien : théorique seulement. Afficher « temps réel » sur du Transilien est faux.
- PRIM
- Île-de-France Mobilités, prim.iledefrance-mobilites.fr. Second Navitia, licence Mobilité, quota propre. Un itinéraire Paris porte-à-porte n'est pas un appel SNCF.
- J-1 / J / J+23
- Fenêtre temporelle documentée. On ne construit pas un historique à six mois sur cette API. Pour l'offre théorique nationale, les GTFS de transport.data.gouv.fr tiennent mieux le volume.
Les contraintes réelles de l'API SNCF
5 000 appels, puis coupure jusqu'à minuit
Ce n'est pas un 429 poli : l'accès est bloqué le temps restant. Architecture : cache, proxy, un jeton applicatif, compteur, coupe-circuit avant le blocage SNCF.
Pas de métro, pas de bus
Trains SNCF seulement. Le mot-clé api ratp pointe vers PRIM ou transport.data.gouv.fr, pas vers api.sncf.com. Un MaaS France n'est pas un connecteur SNCF.
Deux Navitia en Île-de-France
api.sncf.com (trains) et PRIM (réseau IDFM). Les correspondances intra-muros SNCF sont des durées approximatives. On ne vend pas un porte-à-porte Paris sur l'API SNCF.
Le jeton n'a rien à faire dans le navigateur
Quota par réutilisateur, fuite garantie, explosion de volume. Appels serveur, HTTPS (la FAQ mélange encore HTTP), CGU acceptées.
API SNCF ou PRIM Île-de-France Mobilités ?
Deux Navitia, deux licences, deux quotas. Le bon choix dépend du réseau, pas du logo train.
| Critère | API SNCFTrains SNCF | PRIM IDFMÎle-de-France |
|---|---|---|
| Hôte | api.sncf.com/v1 | prim.iledefrance-mobilites.fr |
| Réseau | TGV, TER, Intercités, Lyria, Eurostar | Réseau IDFM, dont métro / RER |
| Transilien / RATP | Transilien théorique, pas de métro | Couverture voyageur francilienne |
| Quota gratuit | 5 000 / jour, puis coupure | Compte PRIM, quota propre |
| Licence | CGU SNCF | Licence Mobilité |
| Fenêtre | J-1 / J / J+23 | Selon l'offre PRIM |
| Le bon cas | Déplacement train France | Porte-à-porte francilien |
Pour l'offre théorique nationale, on ingère aussi les GTFS de transport.data.gouv.fr et on réserve Navitia SNCF au temps réel train. C'est un arbitrage de cadrage.
Ce que nous mesurons sur une intégration SNCF
Les autres API publiques
Les briques que nous branchons le plus souvent à côté d'un connecteur train.
SNCF & transportNous développons votre connecteur SNCFCette page
API AdresseGéocoder le lieu d'intervention pour en déduire la gare la plus proche.
Météo FranceVigilance sur le département du déplacement, distincte des horaires train.
URSSAFOpen data ou DPAE, sans rapport avec Navitia : autre produit, autre secret.
API Particulier
France Travail
DVF & cadastre
LegifranceNous développons votre connecteur Légifrance
API GéoOn combine SNCF avec
La stack qui entoure les horaires train sur nos projets.
Intégration SNCF : vos questions
Demander un token développeur sur numerique.sncf.com, l'appeler en HTTP Basic (username = jeton, mot de passe vide) sur https://api.sncf.com/v1, jamais depuis le navigateur. Debounce et cache court sur /places, cache de quelques dizaines de secondes sur les départs, compteur quotidien vers 5 000 avec alerte à 80 % et coupe-circuit applicatif. Distinguer théorique et temps réel, marquer Transilien comme théorique. Si le besoin est multimodal France, ingérer les GTFS de transport.data.gouv.fr ; si c'est de l'Île-de-France porte-à-porte, basculer sur PRIM.
Oui, dans la limite de 5 000 requêtes par jour et par réutilisateur. Au-delà, l'accès est coupé pour le reste de la journée (exemple officiel : 5 000 en 12 h, bloqué 12 h). Un plan premium existe sur devis. 99,8 % des réponses sont annoncées sous 3 secondes. Gratuit n'est pas illimité : un widget sur une home à fort trafic n'est pas un cas 5 000/j. Nous dimensionnons le quota au cadrage : nombre d'utilisateurs, debounce, cache, et le cas échéant un plan premium.
Non. Trains SNCF seulement. Pas de métro RATP, pas de bus, pas de cars. En Île-de-France, le calculateur voyageur officiel est PRIM Île-de-France Mobilités. Les données d'offre (GTFS, NeTEx) et beaucoup d'API temps réel locales passent par transport.data.gouv.fr. Un produit « tous transports France » n'est pas un connecteur api.sncf.com. Un produit « tous transports France » combine GTFS, PRIM et SNCF ; ce n'est pas un seul client Navitia.
L'accès est bloqué jusqu'à la fin de la journée, pas simplement ralenti. D'où un compteur applicatif, une alerte à 80 %, un coupe-circuit avant le blocage SNCF, et une UX de repli (dernier horaire en cache, message « horaires non rafraîchis »). Sans cela, le service disparaît à 14 h un mardi de pointe, et personne ne comprend pourquoi. Le repli UX (dernier horaire en cache, message honnête) se spécifie au cadrage, pas le jour où le quota saute.
L'accès gratuit suffit à un autocomplete interne bien cadré. Le coût est le connecteur : secret, cache, compteur, drapeau théorique, éventuellement PRIM ou GTFS en plus. Un widget prochain train sur un outil d'interventions est un chantier court. Un calculateur CSE à fort trafic, ou un MaaS France, est un autre projet, avec un plan premium ou d'autres sources. Nous cadrons le volume et donnons une estimation ferme avant de commencer.
Un projet d'intégration SNCF ?
Parlons-en. 30 minutes pour cadrer votre besoin, vérifier si c'est SNCF, PRIM ou du GTFS, et vous dire franchement ce qui est faisable.
Parler de mon projet SNCF & transport