Open data du réseau Ginko

Ce site s'adresse à des développeurs en informatique

Une clé d'API est maintenant nécessaire

Une clé d'API est maintenant obligatoire pour chaque requête effectuée sur l'API. L'utilisation de l'API demeure gratuite. La clé nous permet d'obtenir des statistiques d'utilisation et de mettre en place une gestion de droits pour accéder à des informations complémentaires comme l'affluence.

Demandez dès maintenant votre clé en nous contactant à l'adresse ginko.support-ssi@keolis.com

Informations proposées en Open Data

Certaines informations sont disponibles via une API, d'autres sont proposées sous forme d'un jeu de fichiers au format GTFS. Lisez attentivement les informations ci-dessous pour connaître les différences entre ces deux sources de données.

API Temps Réel

Structure des lignes, recherche d'arrêts, horaires de passage en temps réel...

API REST API Javascript

GTFS lignes urbaines et périurbaines

Données théoriques des lignes urbaines et périurbaines Ginko (horaires, itinéraires). Fichier mis à jour à chaque changement d'offre, y compris lors des évolutions de l'offre pendant la crise sanitaire. Les données actuelles sont valables jusqu'au inclus.

Télécharger

L'API permet d'effectuer des requêtes précises pour rechercher des informations à la demande; elle donne également accès aux données temps réel du réseau Ginko (temps d'attente et infos-trafic). Nous vous conseillons de l'utiliser si votre application dispose d'un accès internet permanent lors de son utilisation. Le format GTFS donne accès à toutes les informations statiques du réseau (structure des lignes, horaires théoriques), il peut donc être chargé au démarrage de l'application afin que celle-ci ne soit plus dépendante de la connexion réseau par la suite. Une utilisation conjointe du fichier GTFS et de l'API peut être pertinente si vous développez une application de navigation.

Informations disponibles Lignes urbaines Lignes périurbaine
API GTFS API GTFS
Nom et position GPS des arrêts Oui Oui Oui Oui
Structure des lignes Oui Oui Oui Oui
Horaires théoriques Non Oui Non Oui
Tracé GPS des lignes (en suivant les routes) Non Oui Non Oui
Informations d'accessibilité des arrêts Oui Oui Oui Oui
Informations d'accessibilité des véhicules Oui Non Oui Non
Tarifs des titres de transport et abonnements Oui Non Oui Non
Temps d'attente en temps réel Oui Non Oui Non
Infos-trafic (perturbations anticipées ou non) Oui Non Oui Non
Informations temps réel sur les véhicules Oui Non Non Non
Prévision d'Affluence de la journée Oui Non Non Non
Affluence temps réel par véhicule Oui Non Non Non
Prévision d'affluence temps réel par station Oui Non Non Non

En raison de la complexité inhérente aux particularités de ces services, l'ouverture des données des services spéciaux, scolaires, et services à la demande n'est pas planifiée pour le moment.

Licence d'utilisation

Les données ouvertes du réseau Ginko sont mises à disposition gratuitement.

Les données sont mises à disposition sous Licence ODbL (Open Database Licence). L'utilisation de l'API et/ou le téléchargement du jeu de données GTFS vaut acceptation de la licence. Cette licence vous impose notamment de mentionner la provenance des informations utilisées par vos développements, ce qui peut se faire par exemple par un lien vers ce site.

Cette licence implique que vous êtes libres de :

à partir de notre base de données ...

Du moment que vous :

Continuité de service

Toute modification apportée dans la diffusion des données fera l’objet d’une information sur ce site décrivant les nouvelles modalités dans un délai d’un mois au moins avant application de la modification. Pour être notifié par email de ces modifications, faites-en la demande à l'adresse ginko.support-ssi@keolis.com.

Disclaimer

Malgré tout le soin que nous y avons accordé, la documentation peut contenir des inexactitudes. Les informations proposées ne font l'objet d'aucune garantie. La responsabilité de Keolis Besançon Mobilités, exploitant du réseau urbain Ginko, ni celle de Grand Besançon Métropole, Autorité Organisatrice des Mobilités, ne sauraient être engagées en cas de dysfonctionnement temporaire de cette plateforme ou d'inexactitude dans les informations qu'elle fournit.

N'hésitez pas à nous remonter les éventuels bugs et erreurs dans la documentation à l'adresse ginko.support-ssi@keolis.com.

L'API bas niveau permet d'interragir avec le serveur Ginko depuis n'importe quel langage; vous devez construire et exécuter les requêtes HTTP, et analyser les résultats. Si vous développez en Javascript, utilisez plutôt l'API Javascript.

Requête

L'URL à appeler est: https://api.ginko.voyage/chemin_de_la_methode.do?paramètres

Remarque importante: L'API est accessible uniquement en HTTPS.

Nous vous recommandons d'utiliser la méthode POST si vous le pouvez, afin de fournir les paramètres dans le corps de la requête plutôt que dans l'URL.

Encodage des paramètres: les paramètres des requêtes doivent être encodés en UTF-8. Les réponses de l'API sont également encodées en UTF-8.

Clé API: si vous disposez d'une clé API, celle-ci doit être fournie à chaque requête, en plus des paramètres éventuels de la requête (voir exemple ci-dessous). La clé API deviendra prochainement obligatoire.

Exemples

Réponse

La réponse est au format JSON.

En cas de succès de la requête, le résultat est toujours encapsulé de la façon suivante:

{
  "ok": true,
  "objets": résultat décapsulé, tel qu'il est décrit dans la documentation de la méthode
}

En cas d'échec de la requête, le résultat est toujours encapsulé de la façon suivante:

{
  "ok": false,
  "msg": message d'erreur
}

Attention, en cas d'indisponibilité du service ou d'un plantage non prévu, vous pouvez recevoir également une erreur de niveau HTTP (type erreur 5XX par exemple).

Cas particuliers

L'API Javascript est un outil facultatif destiné à accélérer le développement de votre application web. Elle fournit un moyen simple et rapide d'interroger l'API bas niveau, de récupérer les résultats et de traiter les erreurs. (Testé avec la dernière version d'Internet Explorer, Firefox et Chrome, mais fonctionne sûrement avec les versions plus anciennes et d'autres navigateurs.)

Mise en oeuvre

Il suffit d'inclure le script https://api.ginko.voyage/api.js dans la balise HEAD de votre page, en fournissant votre clé API si vous en avez une, comme ceci:

<script type="text/javascript" src="https://api.ginko.voyage/api.js?apiKey=XXX"></script>

Utilisez ensuite la méthode: ginkoAPI(methodPath, args, success [, error] [, timeout]) pour interroger l'API:

Paramètre Type Description
methodPath* Chaine Chemin de la méthode de l'API à invoquer. Il est indiqué dans la documentation de chaque méthode (parcourez les onglets à gauche pour découvrir les méthodes disponibles).

Exemple:
DR/getDetailsVariante
args* Objet Objet contenant les paramètres demandés par la méthode de l'API. Si vous n'avez pas de paramètre à transmettre, spécifiez un objet vide { }. Il n'est pas nécessaire de fournir votre clé d'API à chaque requête (celle-ci étant fournie lors du chargement de l'API).

Exemple:
{ idLigne: "3", idVariante: "34-0" }
success* Méthode Méthode callback invoquée en cas de succès de la requête. Reçoit un seul paramètre, qui est le résultat décapsulé de la méthode de l'API (décrit dans la documentation de la méthode).

Exemple:
function(listeArrets){ ... }
error Méthode Méthode callback invoquée en cas d'échec de la requête. Reçoit un message d'erreur en paramètre. Il n'est pas obligatoire de fournir un callback d'erreur, toutefois, si vous ne le faites pas, votre application risque de planter discrètement sans que l'utilisateur en soit informé.

Si vous ne souhaitez pas fournir ce paramètre, spécifiez null pour pouvoir indiquer le paramètre suivant.

Exemple:
function(msg){
    alert(msg); 
}
timeout Entier Délai maximal d'éxécution de la requête, en secondes. Ce paramètre est optionnel (10 secondes par défaut).

Exemple simple

Visitez cette page et consultez sa source.

Récupérer la liste des titres de transport Ginko

Retourne la liste des titres au voyage et des abonnements. Ces informations sont mises à jour à chaque modification de la gamme tarifaire. Tarifs actuels valables depuis le 1er juillet 2019.

Chemin de la méthode Tarifs/get
Paramètres Aucun paramètre
Résultat décapsulé Tableau d'objets FormTarif
Liste des titres de transport.

Exemple

Récupérer la liste des lignes et sens

Retourne la liste des lignes et variantes de lignes (sens) qui circulent aujourd'hui.

Dans une application serveur, nous vous conseillons d'appeler cette méthode une fois par jour (à 4h du matin) et de mémoriser les résultats pour le reste de la journée. Dans une application client (application smartphone par exemple), nous vous conseillons d'appeler cette méthode au lancement de l'application.

Chemin de la méthode DR/getLignes
Paramètres Aucun paramètre
Résultat décapsulé Tableau d'objets FormLigne
Liste des lignes Ginko, dans l'ordre logique où elles doivent être affichées à l'utilisateur.

Récupérer les détails d'une variante de ligne

Retourne la liste des arrêts qui composent une variante de ligne.

Chemin de la méthode DR/getDetailsVariante
Paramètres
  • idLigne: identifiant de la ligne (issu de l'objet FormLigne)
  • idVariante: identifiant de la variante dans la ligne (issu de l'objet FormVariante)
Résultat décapsulé Tableau d'objets FormArret
Liste des arrêts desservis par cette variante de ligne, dans l'ordre géographique (le premier arrêt est le terminus de départ, le dernier arrêt le terminus d'arrivée).

Récupérer la liste des arrêts de bus et tram

Retourne la liste des arrêts de bus et des stations tramway. La liste est triée par ordre alphabétique.

Attention, plusieurs arrêts peuvent avoir le même nom (typiquement, deux arrêts de bus l'un en face de l'autre); si vous prévoyez d'afficher cette liste à l'utilisateur, il est sans doute nécessaire de dédupliquer les arrêts au préalable (opération simple, car les arrêts de même nom se suivent dans la liste).

Cette liste évolue très rarement, vous pouvez la mettre en cache pendant plusieurs jours. Il se peut que d'anciens arrêts sont encore présents dans cette liste.

Chemin de la méthode DR/getArrets
Paramètres Aucun paramètre
Résultat décapsulé Tableau d'objets FormArret
Liste des arrêts de bus urbains, de tramways et d'autocars périurbains, dans l'ordre alphabétique.

Récupérer la liste lignes et sens qui desservent un arrêt

Retourne la liste des lignes/sens de circulation qui desservent un point d'arrêt.

Chemin de la méthode DR/getVariantesDesservantArret
Paramètres
  • idArret: identifiant de l'arrêt
Résultat décapsulé Tableau d'objets FormLigne
Liste des lignes desservant cet arrêt; le champ 'variantes' de l'objet FormLigne ne contient que les variantes (sens de circulation) desservant l'arrêt demandé.

Rechercher les arrêts à proximité

Retourne la liste des arrêts Ginko situés à proximité de la position fournie. Les arrêts sont triés du plus proche au plus lointain. Les arrêts situés à plus de 500 mètres à vol d'oiseau ne sont pas retournés.

Attention, plusieurs arrêts peuvent avoir le même nom (typiquement, deux arrêts de bus l'un en face de l'autre); cette méthode n'est pas conçue pour afficher une liste d'arrêts à l'utilisateur, mais plutôt pour montrer les arrêts à proximité sur une carte. Si vous prévoyez malgré tout d'afficher cette liste à l'utilisateur, il est sans doute nécessaire de dédupliquer les arrêts au préalable.

Attention, si vous obtenez la position de l'utilisateur à partir du GPS de son téléphone, assurez-vous de la précision de la position.

Chemin de la méthode DR/getArretsProches
Paramètres
  • latitude: coordonnée GPS par rapport à l'équateur, en degrés décimaux. Exemple: 47.236288
  • longitude: coordonnée GPS par rapport au méridien de Greenwich, en degrés décimaux. Exemple: 6.022884
Résultat décapsulé Tableau d'objets FormArret
Liste des arrêts de bus urbains, de tramways et d'autocars périurbains situés à moins de 500 mètres, du plus proche au plus lointain.

Récupérer les détails d'un arrêt

Retourne les détails d'un arrêt à partir de son identifiant. Les méthodes DR/getArrets et DR/getArretsProches décrites ci-dessus fournissent déjà les informations détaillées; en revanche, certaines méthodes TR (Temps Réel) indiquent uniquement l'identifiant de l'arrêt. Cette méthode peut vous permettre d'obtenir ponctuellement les détails de l'arrêt sans avoir à charger la liste complète.

Chemin de la méthode DR/getDetailsArret
Paramètres
  • id: identifiant de l'arrêt
Résultat décapsulé Objet FormArret contenant toutes les informations de l'arrêt.

Récupérer les détails d'un véhicule

Retourne les détails d'un véhicule à partir de son numéro. Les méthodes TR (Temps Réel) indiquent uniquement le numéro du véhicule, et cette méthode permet d'obtenir des informations sur les équipements présents dans le véhicule.

Les informations concernant un véhicule évoluent rarement; vous pouvez mettre en cache les résultats de cette requête (pour un véhicule) pendant 24h.

Cette méthode ne fonctionne que pour les véhicules urbains (bus et tramways); les méthodes TR ne fournissent pas le numéro des autocars périurbains.

Chemin de la méthode DR/getDetailsVehicule
Paramètres
  • num: numéro du véhicule
Résultat décapsulé Objet FormVehicule contenant toutes les informations du véhicule.

Récupérer les temps d'attente pour un lieu ou un arrêt

Un lieu est un ensemble d'arrêts portant le même nom. Par exemple, le lieu "Ile de France" regroupe les deux arrêts de la ligne 13 et les deux stations tram.

Cette notion permet d'afficher à l'utilisateur les temps d'attente de toutes les lignes/sens qui passent à un endroit donné, même s'il ne s'agit pas physiquement du même arrêt (par exemple, deux arrêts situés de part et d'autre de la route).

A contrario, un arrêt est un point physique unique, desservi par une ou plusieurs lignes, dans un seul sens de circulation; en général, un arrêt correspond à un abribus ou poteau sur le terrain.

Les temps d'attente des bus sont recalculés toutes les 30 secondes, et ceux des tram toutes les 10. Il est donc recommandé de renouveller cette requête toutes les 10 secondes afin d'actualiser l'affichage.

Chemin de la méthode TR/getTempsLieu
Paramètres
  • nom: lieu recherché (nom d'arrêt). Exemple: Ile de france. L'API recherche les arrêts dont le nom ressemble à celui indiqué (par exemple "Ile-de-France" ou "ile france" fonctionneront); vous pouvez donc fournir ici directement la saisie de l'utilisateur, sans traitement préalable.
  • idArret: identifiant de l'arrêt recherché, si vous le connaissez. Exemple: t_idf1. En effectuant la recherche par identifiant d'arrêt, l'API renverra uniquement les temps d'attente de cet arrêt, pas ceux des autres arrêts éventuels portant le même nom. Vous devez renseigner le paramètre 'nom' ou le paramètre 'idArret', mais pas les deux.
  • nb: nombre de temps d'attente souhaités pour chaque ligne/sens. Doit être compris entre 1 et 5. Attention, le résultat peut contenir moins de temps d'attente que souhaité, par exemple en fin de journée. Optionnel (2 par défaut).
Résultat décapsulé Objet contenant les champs suivants: { "nomExact":..., "listeTemps":..., "latitude":..., "longitude":... }
  • nomExact: nom précis (corrigé par rapport au nom fourni en paramètre)
  • listeTemps: tableau d'objets FormTempsAttente. Liste des prochains passages à ce lieu, triés par ligne/sens puis par temps d'attente croissant.
  • latitude: (Ajouté le 01/06/2017) Latitude approximative (en degrés décimaux). Il s'agit de la position moyenne des arrêts physiques, elle ne doit pas être affichée sur une carte du fait de son imprécision, mais plutôt être utilisée pour des calculs de distance par rapport à la zone. Si cette valeur vaut 0, c'est que les coordonnées GPS de la zone sont inconnues (très rare).
  • longitude: (Ajouté le 01/06/2017) Longitude approximative (en degrés décimaux). Mêmes remarques que pour la latitude.

Récupérer un ensemble de temps d'attente

Cette méthode permet de récupérer les temps d'attente à un ou plusieurs lieux, pour une ou plusieurs lignes.

Les temps d'attente des bus sont recalculés toutes les 30 secondes, et ceux des tram toutes les 10. Il est donc recommandé de renouveller cette requête toutes les 10 secondes afin d'actualiser l'affichage.

Les trois paramètres "listeXXX" fonctionnent en parallèle; elles doivent contenir le même nombre de valeurs. Regardez les exemples et faites des essais pour bien comprendre le fonctionnement.

Chemin de la méthode TR/getListeTemps
Paramètres
  • listeNoms: tableau de chaines, indiquant les lieux recherchés (nom d'arrêt; la notion de lieu est expliquée à la méthode précédente). Exemple: ["Ile de France", "Poste"].
  • listeIdLignes: tableau de chaines, indiquant les identifiants des lignes recherchées (attention, il ne s'agit pas du numéro public, voir doc de l'objet FormLigne). Exemple: ["101", "4"].
  • listeSensAller: tableau de booléens, indiquant si l'on souhaite le sens aller (true) ou retour (false) des lignes. Exemple: [true, false].
  • preserverOrdre: booléen indiquant si l'ordre des demandes (paramètres listesXXX) doit être respecté dans la réponse du serveur, ou non. Si le paramètre est fourni et de valeur true, alors les temps d'attente seront retournés dans l'ordre où ils sont demandés; sinon, ils sont retournés par ordre alphabétique du nom d'arrêt, puis numéro de ligne public, puis sens (aller puis retour). A moins que vous ne réalisiez une IHM permettant à l'utilisateur d'ordonner les temps comme il le souhaite, nous vous conseillons de ne pas fournir ce paramètre.
  • nb: nombre de temps d'attente souhaités pour chaque arrêt/ligne/sens. Doit être compris entre 1 et 5. Attention, le résultat peut contenir moins de temps d'attente que souhaité, par exemple en fin de journée. Optionnel (2 par défaut).
Remarques:

Les demandes incohérentes (ligne ou arrêt inexistant, ligne qui ne passe pas à l'arrêt indiqué...) sont ignorées sans faire échouer la requête.

Les demandes en doublon (deux demandes pour la même chose, même si le nom de l'arrêt est orthographié différemment) ne sont prises en compte qu'une seule fois.

Résultat décapsulé Tableau d'objets contenant les champs suivants: [{ "nomExact":..., "listeTemps":..., "latitude":..., "longitude":... }, { "nomExact":..., "listeTemps":..., "latitude":..., "longitude":... }...]
  • nomExact: nom précis (corrigé par rapport au nom fourni en paramètre)
  • listeTemps: tableau d'objets FormTempsAttente. Liste des prochains passages à ce lieu (uniquement ceux demandés), triés par arrêt/ligne/sens (si preserverOrdre est false ou non fourni) puis par temps d'attente croissant. (Notez que si vous spécifiez le paramètre preserverOrdre, le même lieu peut apparaître plusieurs fois dans la réponse, si deux demandes concernant le même arrêt ne sont pas "côte à côte" dans la requête.)
  • latitude: (Ajouté le 01/06/2017) Latitude approximative (en degrés décimaux). Il s'agit de la position moyenne des arrêts physiques, elle ne doit pas être affichée sur une carte du fait de son imprécision, mais plutôt être utilisée pour des calculs de distance par rapport à la zone. Si cette valeur vaut 0, c'est que les coordonnées GPS de la zone sont inconnues (très rare).
  • longitude: (Ajouté le 01/06/2017) Longitude approximative (en degrés décimaux). Mêmes remarques que pour la latitude.

Exemples

Récupérer les infos-trafic

Cette méthode permet de récupérer les infos-trafic concernant le réseau urbain Ginko (perturbations, travaux, incidents...).

Ces informations ne changent pas souvent en général; toutefois, elle peuvent changer à tout moment, et ne doivent donc pas être mises en cache plus d'une minute.

Les infos-trafic sont séparées en deux catégories: les informations anticipées, d'une part, correspondent à des événements prévisibles (déviation dûe à des travaux par exemple). Généralement, les informations anticipées sont disponibles un ou plusieurs jours avant la perturbation. Les informations temps réel, d'autre part, correspondent à des événements imprévisibles (intempéries, accident, incident technique, etc).

Chemin de la méthode TR/getInfosTrafic
Paramètres Aucun paramètre
Résultat décapsulé Objets contenant deux tableaux: { "infosAnticipees":[FormInfoTrafic,...], "infosTempsReel":[FormInfoTrafic,...] }
  • infosAnticipees: liste des infos-trafic anticipées (objets FormInfoTrafic), triées dans l'ordre logique d'affichage. Eventuellement un tableau vide [].
  • infosTempsReel: liste des infos-trafic temps réel (objets FormInfoTrafic), triées dans l'ordre logique d'affichage. Eventuellement un tableau vide [].

Récupérer les info temps réel d'un véhicule

Retourne les info temps réel d'un véhicule à partir de son numéro.

Les informations temps réel concernant un véhicule évoluent rapidement;

Cette méthode ne fonctionne que pour les véhicules urbains (bus et tramways); les méthodes TR ne fournissent pas le numéro des autocars périurbains.

Chemin de la méthode TR/getDetailsVehicule
Paramètres
  • num: numéro du véhicule
Résultat décapsulé Objet FormVehiculeTR contenant toutes les informations du véhicule.

Récupérer la prévision d'affluence (pas le temps réel)

Dans TR il y a les informations d'affluence temps réel par arrêt ou par véhicule. Ici, c'est la prévision d'affluence pour une journée complète

Chemin de la méthode Affluence/get
Paramètres
  • idArret: identifiant de l'arrêt
  • date: date du jour voulu au format YYYY-MM-DD
  • idLigne: identifiant de la ligne (issu de l'objet FormVariante)
  • sensAller: sens des variantes (issu de l'objet FormVariante)
Résultat décapsulé Tableau d'objets FormPrevisionAffluence
Liste de l'affluence par 1/4 d'heure de la journée.

L'objet FormTarif contient les informations détaillées concernant un titre de transport Ginko. Pour obtenir la liste des tarifs, utilisez la méthode Tarifs/get.

L'objet FormTarif contient les champs suivants:

Champ Type Description
type Entier Type de titre de transport. Vaut 0 pour un titre au voyage, 1 pour un abonnement mensuel et 2 pour un abonnement annuel.
libelle Chaine Nom commercial du titre de transport.
description Chaine Description complète et conditions d'utilisation.
pointsDeVente Chaine Points de vente où les clients peuvent se procurer ce titre de transport.
tarif Flottant Prix TTC en euros.

L'objet FormLigne regroupe les informations générales sur une ligne. Pour obtenir ces objets, vous pouvez utiliser la méthode DR/getLignes.

L'objet FormLigne contient les champs suivants:

Champ Type Description
id Chaine Identifiant de la ligne. Ne doit pas être affiché à l'utilisateur final. Certaines méthodes de l'API reçoivent en paramètre un identifiant de ligne.
numLignePublic Chaine Numéro de ligne, affichable à l'utilisateur. Par exemple "1".
libellePublic Chaine Description de la ligne, affichable à l'utilisateur. Par exemple "Hauts-du-Chazal <> Chalezeule".
modeTransport Entier
  • 0: bus
  • 1: tramway
couleurFond Chaine Couleur d'arrière-plan caractéristique de la ligne (utilisée sur tous les documents et affichages dynamiques). Format HTML, sans le # initial. Par exemple: "00A5C2".
couleurTexte Chaine Couleur de texte caractéristique de la ligne (utilisée sur tous les documents et affichages dynamiques). En général blanc ou noir. Format HTML, sans le # initial. Par exemple: "FFFFFF".
variantes Tableau de FormVariante Chaque ligne est composée de plusieurs variantes. La plupart des lignes en contiennent deux: une pour chaque sens de circulation. Toutefois, certaines lignes peuvent en contenir plus, lorsqu'un ou plusieurs arrêts sont desservis seulement à certaines heures de la journée. Attention, si vous avez obtenu cet objet en réponse à la requête DR/getVariantesDesservantArret, seules les variantes de lignes desservant l'arrêt demandé sont présentes dans la liste.
periurbain Booléen (Ajouté le 08/08/2017) Indique s'il s'agit d'une ligne périurbaine. Les lignes périurbaines relient les villages situés dans le Grand Besançon aux Pôles d'Echanges situés à Besançon (Temis, Micropolis, Orchamps et Saint Jacques).
scolaire Booléen (Ajouté le 26/06/2018) Indique s'il s'agit d'une ligne conçue spécialement pour les transports scolaires (collèges et lycées).

L'objet FormVariante regroupe les informations générales sur une variante de ligne (chaque ligne étant composée de plusieurs variantes). Pour obtenir ces objets, utilisez par exemple la méthode DR/getLignes.

L'objet FormVariante contient les champs suivants:

Champ Type Description
id Chaine Identifiant de la variante dans la ligne. Ne doit pas être affiché à l'utilisateur final. A lui seul, cet identifiant ne signifie rien: il doit être associé à un identifiant de ligne. Certaines méthodes de l'API reçoivent en paramètre un identifiant de ligne et un identifiant de variante.
sensAller Booléen

Indique le sens de circulation des véhicules qui suivent cette variante. Par convention, pour les lignes qui traversent Besançon de part en part, le sens Aller est utilisé en direction de l'Est, et le sens Retour en direction de l'Ouest. Vous aurez rarement besoin de cette information.

  • true: variante en sens Aller
  • false: variante en sens Retour
destination Chaine Destination de la variante, affichable à l'utilisateur. Correspond en général au nom du terminus d'arrivée de la variante. Par exemple "Chalezeule".
precisionDestination Chaine Précisions sur l'itinéraire emprunté pour rejoindre la destination. La plupart du temps, ce champ est une chaine vide. Il est utilisé pour certaines variantes qui effectuent un crochet dans leur itinéraire pour desservir un point d'attraction particulier à certaines heures de la journée. Par exemple "Par Piscine/Patinoire".

L'objet FormArret contient les informations propres à un arrêt du réseau. Pour obtenir la liste des arrêts d'une variante de ligne, utilisez la méthode DR/getDetailsVariante; pour obtenir la liste complète des arrêts du réseau Ginko, utilisez la méthode DR/getArrets; pour obtenir les informations d'un seul arrêt, utilisez la méthode DR/getDetailsArret.

L'objet FormArret contient les champs suivants:

Champ Type Description
id Chaine Identifiant de l'arrêt. Chaque arrêt a un identifiant unique. Vous aurez rarement besoin de cet identifiant; en général, les méthodes de l'API reçoivent le nom de l'arrêt en paramètre.
nom Chaine Nom de l'arrêt, tel qu'il doit être affiché à l'utilisateur. Plusieurs arrêts peuvent avoir le même nom (par exemple, deux arrêts situés de part et d'autre de la route).
latitude Flottant Latitude de l'arrêt (en degrés décimaux). Si cette valeur vaut 0, c'est que les coordonnées GPS de l'arrêt sont inconnues (très rare).
longitude Flottant Longitude de l'arrêt (en degrés décimaux). Si cette valeur vaut 0, c'est que les coordonnées GPS de l'arrêt sont inconnues (très rare).
accessiblite Entier (Ajouté le 24/05/2018) Indique si l'arrêt est accessible aux personnes à mobilité réduite et aménagé pour permettre leur embarquement/débarquement dans les véhicules (bande d'éveil de vigilance, quai réhaussé). 0: Aucune information n'est disponible. 1: Arrêt accessible. 2: Arrêt difficilement accessible ou non accessible. Attention, même si l'arrêt est accessible, tous les véhicules qui le desservent ne le sont pas forcément (reportez-vous au champ accessibiliteVehicule de l'objet FormTempsAttente).

L'objet FormVehicule contient les informations propres à un véhicule (bus urbain ou tramway). Pour obtenir cet objet, utilisez la méthode DR/getDetailsVehicule.

L'objet FormVehicule contient les champs suivants:

Champ Type Description
num Chaine Identifiant du véhicule, pour rappel. Ce numéro est celui qui est inscrit à l'extérieur des véhicules, à l'avant et à l'arrière. Il est de type chaine car il est possible, à l'avenir, que certains véhicules soient numérotés avec des lettres ou d'autres caractères.
affichageDynamique Booléen Indique si le véhicule est équipé d'afficheurs dynamiques annonçant les prochaines stations desservies. Attention, cette information ne tient pas compte d'un éventuel dysfonctionnement de l'équipement.
annoncesSonores Booléen Indique si le véhicule est équipé d'un dispositif d'annonces sonores des prochaines stations desservies. Attention, cette information ne tient pas compte d'un éventuel dysfonctionnement de l'équipement.
climatisation Booléen Indique si le véhicule est climatisé. Attention, cette information ne tient pas compte d'un éventuel dysfonctionnement de l'équipement.
prisesUSB Booléen Indique si le véhicule est équipé de prises USB accessibles aux voyageurs et permettant le rechargement d'appareils (smartphones par exemple). Attention, cette information ne tient pas compte d'un éventuel dysfonctionnement de l'équipement.
accessiblite Entier Indique si le véhicule est accessible aux personnes à mobilité réduite. 0: Aucune information n'est disponible. 1: Véhicule accessible. 2: Véhicule non accessible. Attention, cette information ne tient pas compte d'un éventuel dysfonctionnement de l'équipement (rampe d'accès).
energie Entier Indique le type d'énergie qu'utilise le véhicule : 0 pas d'info, 1 Véhicule au gazole, 2 Véhicule au gaz naturel, 3 Véhicule hybride (électrique + gaz naturel), 4 Véhicule 100% électrique.

L'objet FormVehiculeTR contient les informations temps réel propres à un véhicule (bus urbain ou tramway). Pour obtenir cet objet, utilisez la méthode TR/getDetailsVehicule.

L'objet FormVehiculeTR contient les champs suivants:

Champ Type Description
num Chaine Identifiant du véhicule, pour rappel. Ce numéro est celui qui est inscrit à l'extérieur des véhicules, à l'avant et à l'arrière. Il est de type chaine car il est possible, à l'avenir, que certains véhicules soient numérotés avec des lettres ou d'autres caractères.
affluence Entier Indique l'affluence en temps réel pour ce véhicule, de -1 à 2. 0 Faible - il y a peu de voyageurs à bord, 1 Modérée -il y a déjà quelques voyageurs à bord: il reste sûrement quelques places assises, 2 Forte - il y a déjà beaucoup de voyageurs à bord:il n’y a probablement plus de places assise, -1 Indisponible - Il est actuellement impossible de connaitre l’affluence à bord de ce véhicule, -2 vous n'avez pas les droits d'accès à l'affluence dans les véhicules.
texteAffluence Chaine Texte qui décrit l'affluence pour les usagers. Exemple, si affluence vaut 0, le texte pourrait être : "Il y a peu de voyageurs à bord de ce véhicule actuellement"
nbPassagersABord Entier Indique le nombre de passagers à bord du véhicule. -1 si l'information n'est pas disponible
tauxDeCharge Entier Taux en % qui indique comment le véhicule est rempli en fonction de sa capacité (100% = bus complet) -1 si l'information n'est pas disponible.
position Chaine Texte qui indique la position du véhicule. Ex: "Le véhicule est actuellement entre les stations Voirin et Gibelotte sur la ligne L3 Direction Pôle Temis par Gare Viotte et Campus" ou "Le véhicule n'est actuellement pas localisable avec précision" ou vide "" si vous n'avez pas les droits

L'objet FormTempsAttente contient le temps d'attente avant l'arrivée d'un bus ou tram à un arrêt. Pour obtenir ces objets, utilisez les méthodes TR/getTempsLieu ou TR/getListeTemps.

Normalement, toutes les informations nécessaires à l'affichage sont incluses; l'identifiant de la ligne et de l'arrêt peuvent toutefois vous êtes utiles pour obtenir des informations supplémentaires.

Champ Type Description
idArret Chaine Identifiant de l'arrêt. Normalement, si vous obtenez un objet FormTempsAttente, vous connaissez déjà le nom de l'arrêt à afficher à l'utilisateur. Cet identifiant peut en revanche vous servir pour obtenir d'autres informations sur l'arrêt (méthode DR/getDetailsArret).
latitude Flottant (Ajouté le 01/06/2017) Latitude de l'arrêt (en degrés décimaux). Si cette valeur vaut 0, c'est que les coordonnées GPS de l'arrêt sont inconnues (très rare).
longitude Flottant (Ajouté le 01/06/2017) Longitude de l'arrêt (en degrés décimaux). Si cette valeur vaut 0, c'est que les coordonnées GPS de l'arrêt sont inconnues (très rare).
idLigne Chaine Identifiant de la ligne. Ne doit pas être affichée à l'utilisateur. Consultez la documentation de l'objet FormLigne pour plus d'infos.
numLignePublic Chaine Consultez la documentation de l'objet FormLigne pour plus d'infos.
couleurFond Chaine Consultez la documentation de l'objet FormLigne pour plus d'infos.
couleurTexte Chaine Consultez la documentation de l'objet FormLigne pour plus d'infos.
sensAller Booléen Indique si la ligne circule en sens Aller (true) ou Retour (false). Cette information permet de regrouper les temps d'attente affichés par sens de circulation.
destination Chaine Destination du bus ou tram, à afficher à l'utilisateur. Cette destination ne correspond pas forcément à celle d'une variante de la ligne (certains voyages ne circulent pas jusqu'au terminus habituel de la variante).
precisionDestination Chaine Précisions sur l'itinéraire emprunté pour rejoindre la destination. La plupart du temps, ce champ est une chaine vide. Il est utilisé pour certains voyages qui effectuent un crochet dans leur itinéraire pour desservir un point d'attraction particulier à certaines heures de la journée. Par exemple "Par Clinique St Vincent".
temps Chaine Temps d'attente à afficher à l'utilisateur (exemples: "3 min", "1h 02"). Parfois, cette information est remplacée par l'annonce d'une perturbation ("Travaux", "Manifestation"...) ce qui signifie que la station n'est pas desservie. Cas particulier: le mot "Perturbations" signifie que la station est desservie mais qu'il n'est pas possible de calculer un temps d'attente en raison d'une déviation en amont.
fiable Booléen Indique si le temps d'attente est calculé à l'aide d'informations précises sur la localisation du véhicule (true) ou s'il s'agit d'une estimation basée sur les horaires théoriques (false). Lorsque cette information vaut false, vous devez remplacer le temps d'attente par la mention "Non localisé", ou bien préciser très clairement que le temps indiqué est théorique.
numVehicule Chaine Numéro du bus ou de la rame. Cette information n'est pas destinée à être affichée à l'utilisateur, mais elle peut vous servir pour récupérer des informations d'accessibilité (annonces vocales, accessibilité PMR...) en utilisant la méthode DR/getDetailsVehicule. Attention, ce champ n'est pas toujours rempli; il n'est par exemple jamais rempli pour les lignes périurbaines (Grand Besançon).
accessibiliteArret Entier (Ajouté le 24/05/2018) Indique si l'arrêt est accessible aux personnes à mobilité réduite et aménagé pour permettre leur embarquement/débarquement dans les véhicules (bande d'éveil de vigilance, quai réhaussé). 0: Aucune information n'est disponible. 1: Arrêt accessible. 2: Arrêt difficilement accessible ou non accessible.
accessibiliteVehicule Entier (Ajouté le 24/05/2018) Indique si le véhicule est accessible aux personnes à mobilité réduite. 0: Aucune information n'est disponible. 1: Véhicule accessible. 2: Véhicule non accessible. Attention, cette information ne tient pas compte d'un éventuel dysfonctionnement de l'équipement (rampe d'accès).
affluence Entier Indique la prévision d'affluence en temps réel à l'arrêt pour ce véhicule de -1 à 2.
  • 0 Faible - Lors de son passage à l'arrêt, il y aura peu de voyageurs à bord
  • 1 Modérée - Lors de son passage à l'arrêt, il y aura déjà quelques voyageurs à bord: il restera sûrement quelques places assises!
  • 2 Forte - Lors de son passage à l'arrêt, il y aura déjà beaucoup de voyageurs à bord: il n’y aura probablement plus de places assises.
  • -1 :Indisponible - Il est actuellement impossible de prévoir l’affluence à bord de ce véhicule
  • -2 :Vous n'avez pas les droits aux informations d'affluences. Contactez-nous
texteAffluence Chaine Texte qui décrit l'affluence pour les usagers. Exemple, si affluence vaut 0, le texte pourrait être : "Lors de son passage à votre arrêt, il y aura peu de voyageurs à bord: une place assise vous attend! "
aideDecisionAffluence Chaine Texte qui peut être vide ou qui peut aider l'usager à prendre une decision en fonction de l'affluence. Exemple si la charge du véhicule est forte, celle du suivant est modérée, le message pourrait être "Vous avez un peu de temps? Le bus suivant est prévu dans 6 minutes et l’affluence sera modérée."
tauxDeCharge Entier Taux en % qui indique comment le véhicule sera rempli en fonction de sa capacité (100% = bus complet) -1 si l'information n'est pas disponible. -2 :Vous n'avez pas les droits aux informations d'affluences. Contactez-nous.

Objet FormInfoTrafic

L'objet FormInfoTrafic représente une info-trafic (anticipée ou temps réel). Elle peut concerner plusieurs lignes. Pour obtenir ces objets, utilisez la méthode TR/getInfosTrafic.

Champ Type Description
id Entier Identifiant numérique de l'information. Ce numéro ne doit pas être affiché au public. Chaque information a un identifiant numérique unique. Les identifiants ne se suivent pas forcément. Cet identifiant n'est pas modifié lorsque l'information est modifiée après sa publication (mise à jour du texte ou des lignes concernées par exemple).
titre Chaine Titre de l'information. Jamais vide.
texte Chaine Contenu de l'information en version simplifiée. Jamais vide.
texteHTML Chaine (Ajouté le 12/06/2018) Contenu de l'information en version enrichie. Jamais vide. Si vous souhaitez afficher l'information sur un support web, utilisez de préférence ce champ; il contient notamment des tableaux HTML décrivant en détails les perturbations de trafic, arrêt par arrêt, alors que le champ texte ne contient qu'une information générale.
complement Chaine Ce champ est déprécié depuis le 12/06/2018 et sera prochainement retiré; utilisez texteHTML à la place. Complément d'information. Sous forme de code source HTML. Peut contenir par exemple un tableau des arrêts perturbés et des arrêts de report dans le cadre d'une déviation. Chaine vide si aucune information complémentaire n'est disponible.
url Chaine URL d'une page du site ginko.voyage sur laquelle des informations complémentaires sont disponibles. Attention, peut être une chaine vide (c'est souvent le cas pour les infos temps réel).
tempsReel Booléen Indique s'il s'agit d'une information temps réel (true) ou d'une information anticipée (false). Consultez la documentation de TR/getInfosTrafic pour plus d'infos.
alerte Booléen Indique si cette information revêt une importance capitale. Vous pouvez par exemple faire ressortir davantage cette info, ou l'afficher en priorité si l'espace disponible sur le support de diffusion est limité. Il ne peut pas y avoir plusieurs alertes en même temps.
push Booléen (Ajouté le 29/03/2018) Indique s'il est recommandé de notifier les utilisateurs finaux au sujet de cette information. Il est recommandé de notifier les utilisateurs seulement si cette propriété vaut true et si l'utilisateur a indiqué être intéressé par les infos-trafic de la/des ligne(s) concernée(s) par cette information.
lignes Tableau de FormInfoLigne Tableau d'objets FormInfoLigne (décrit ci-dessous). Liste des lignes concernées par cette info-trafic, triée par ordre logique d'affichage. Cette liste n'est jamais vide, mais elle peut ne contenir qu'un seul élément.

Objet FormInfoLigne

L'objet FormInfoLigne fournit les informations essentielles sur une ligne concernée par une info-trafic.

Normalement, toutes les informations nécessaires à l'affichage sont incluses; l'identifiant de la ligne peut toutefois vous êtes utile pour obtenir des informations supplémentaires.

idLigne Chaine Identifiant de la ligne. Ne doit pas être affichée à l'utilisateur. Consultez la documentation de l'objet FormLigne pour plus d'infos.
numLignePublic Chaine Consultez la documentation de l'objet FormLigne pour plus d'infos.
couleurFond Chaine Consultez la documentation de l'objet FormLigne pour plus d'infos.
couleurTexte Chaine Consultez la documentation de l'objet FormLigne pour plus d'infos.

Pour obtenir la prévision d'affluence pour une journée, utilisez la méthode Affluence/get.

L'objet FormPrevisionAffluence contient les champs suivants:

Champ Type Description
heureDeDebut hh:mm Heure de début de mesure de l'affluence
heureDeFin hh:mm Heure de fin de mesure de l'affluence
affluence Entier Indique l'affluence de ce créneau horaire, de -1 à 2.
  • 0 Faible - il y a peu de voyageurs à bord des véhicules
  • 1 Modérée -il y a déjà quelques voyageurs à bord des véhicules: il reste sûrement quelques places assises!
  • 2 Forte - il y a déjà beaucoup de voyageurs à bord des véhicules: il n’y a probablement plus de places assises.
  • -1 :Indisponible - Il est impossible de connaitre l’affluence pour ce créneau
texteAffluence Chaine Texte qui décrit l'affluence pour les usagers. Exemple, si affluence vaut 0, le texte pourrait être : "Il y a peu de voyageurs à bord des véhicules lors de ce créneau horaire"
nbPassagersABord Entier Indique une moyenne du nombre de passagers à bord des véhicules. -1 si l'information n'est pas disponible. -2 :Vous n'avez pas les droits aux informations d'affluences. Contactez-nous
tauxDeCharge Entier Taux en % qui indique comment les véhicules sont remplis en fonction de leur capacité. -1 si l'information n'est pas disponible. -2 :Vous n'avez pas les droits aux informations d'affluences. Contactez-nous

Contact

Pour toute question ou problème lié à l'utilisation des données ouvertes Ginko, vous pouvez nous contacter à l'adresse ginko.support-ssi@keolis.com.

Clé Temporaire

Pour pouvoir utiliser l'API de manière temporaire, vous pouvez utiliser une clé temporaire générée tous les jours. Cette clé est valable uniquement 24h, et il sera nécessaire de récupérer la nouvelle clé le lendemain. Pour obtenir une clé permanente, rendez-vous dans la section "Contact" afin d'effectuer votre demande.

Veuillez saisir les chiffres visibles à l'écran