L'API Ginto

Dernière mise à jour : 
8/4/2026
API
appli
Web
Avant de commencer

L'API est sécurisée et ne peut être appelée que si la requête est authentifiée à l'aide d'une clé API. Celle-ci doit être indiquée dans l'en-tête « Authorization » sous forme de jeton « Bearer » à chaque requête. Veuillez contacter support@ginto.guide pour obtenir une clé API permettant l'authenti

Note

Disposez-vous déjà d'une interface avec l'une de nos organisations partenaires, par exemple l'AccommoDataHub d'HotellerieSuisse ? Dans ce cas, vous pouvez également y trouver certaines informations relatives à l'accessibilité, telles que des liens vers Ginto ou des pictogrammes.

Conseil professionnel

Utilisez notre espace de test Ginto dans Postman pour tester les différentes requêtes.

C'est ce que vous trouverez dans ce guide :

Demandez un preuve OK:GO pour «Swisstainable»
Questions fréquemment posées

Introduction

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Pour en savoir plus sur GraphQL.

Autorisation

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

La clé API doit être fournie dans l'en-tête Authorization sous forme de Jeton Bearer  à chaque requête :

Authorization: Bearer {token}

Remplacez {apiKey} par votre clé personnelle, sans les accolades.

Envoyer la demande

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Les requêtes sont envoyées au format JSON avec la structure suivante dans le corps de la requête :

{
  "query": "{ allEntries(first: 10) { nodes { id name } } }",
  "variables": {}
}

La requête doit être envoyée à l'URL du point de terminaison https://api.ginto.guide/graphql et doit contenir les informations suivantes :

  • Content-Type: application/json (En-tête)
  • Accept: application/graphql-response+json, application/json (En-tête)
  • Authorization: Bearer {apiKey} (En-tête avec votre clé API)
  • Optional: Accept-Language (En-tête permettant de sélectionner la langue souhaitée : de, en, fr ou it)

Lorsque les opérations aboutissent, le serveur renvoie un objet JSON contenant l'objet data. En cas d'erreur, la réponse peut contenir un tableau errors. Dans ce cas, l'objet data est soit NUL, soit partiellement présent.

Exemple avec  cURL:

curl -X POST https://api.ginto.guide/graphql \
  -H "Content-Type: application/json" \
  -H "Accept: application/graphql-response+json, application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept-Language: de" \
  -d '{"query":"{ allEntries(first: 10) { nodes { id name } } }","variables":{}}'

Remplacez YOUR_API_KEY par votre clé API. L'en-tête Accept-Language est facultatif. Supprimez-le ou remplacez de (allemand) par en (anglais), fr (français) ou it (italien) si nécessaire.

Tester avec Postman

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

En cliquant sur ce lien, la collection de requêtes de Ginto sera automatiquement clonée et tu pourras commencer à explorer l'API Ginto.

Pour configurer la clé API dans Postman, ouvrez l'environnement production et créez-y la variable apiKey en y saisissant votre clé API réelle. Activez ensuite l'environnement. Vous êtes désormais prêt à envoyer une requête.

Postman peut être utilisé en ligne et téléchargé gratuitement. Vous trouverez ici un guide détaillé sur la création de requêtes GraphQL dans Postman.

Sélectionner la langue

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

La langue par défaut des données renvoyées peut être sélectionnée en définissant l'en-tête HTTP Accept-Language. Actuellement, les options de (allemand), en (anglais), fr (français) et it (italien) sont prises en charge.

Vous trouverez ici de plus amples informations sur  En-tête HTTP Accept-Language.

Pour les textes disponibles en plusieurs langues, il est également possible de définir une langue spécifique via le champ Argument.

Aperçu des demandes

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
Requête Description
allEntries Obtient une liste de toutes les entrées dans Ginto.
entriesByFilter Obtient une liste de toutes les entrées au sein d'un filtre de publication prédéfini. Un filtre de publication peut filtrer les entrées selon divers critères et doit être demandé à l'équipe d'assistance de Ginto.
entriesBySearch Recherche des entrées à proximité d'une coordonnée et/ou par texte de requête.
entry Obtient les données d'une entrée spécifique identifiée par son ID.
deletedEntries Obtient la liste de tous les identifiants (IDs) des entrées qui ont été supprimées.
availableCategories Obtient la liste de toutes les catégories disponibles.
availableDefaultRatings Obtient la liste de toutes les évaluations par défaut disponibles, chacune incluant un pictogramme et un bref résumé de l'accessibilité de cette entrée. Les évaluations par défaut d'une entrée doivent être utilisées pour la publication de l'accessibilité de l'entrée sur des sites web externes.
availableFilterTags Obtient la liste de tous les tags de filtrage disponibles. Un tag de filtrage est un mot-clé prédéfini qui peut être attribué aux entrées et aide à filtrer selon des caractéristiques spécifiques.
availablePublicationFilters Obtient la liste de tous les filtres de publication pour lesquels l'utilisateur dispose de permissions. Un filtre de publication doit être demandé à l'équipe d'assistance de Ginto.
availableRatingProfiles Obtient la liste de tous les profils d'évaluation prédéfinis. Contrairement aux évaluations par défaut, un profil d'évaluation (ex. « fauteuil roulant ») peut être utilisé pour calculer une évaluation basée sur ce profil, tandis que les évaluations par défaut définissent les résultats d'évaluation possibles (ex. « Partiellement accessible en fauteuil roulant »).
availableSources Obtient la liste de toutes les sources externes liées à des entrées dans Ginto.

Schéma de données

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

La plupart des applications GraphQL peuvent récupérer automatiquement le schéma via Introspection et offrent les fonctionnalités suivantes :

  • Saisie semi-automatique pour les champs et les arguments
  • Documentation en ligne de toutes les requêtes et de tous les champs disponibles
  • Validation des requêtes avant leur envoi

Des outils tels que Postman, Bruno, Insomnia et de nombreux IDE GraphQL prennent en charge cette fonctionnalité par défaut et affichent la documentation du schéma directement dans leurs interfaces.

Mise en page (pagination)

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Le concept repose sur les Connections et Edges, ce qui est en quelque sorte la norme en matière de pagination dans GraphQL. La pagination utilise un modèle basé sur un curseur avec les arguments suivants :

  • first: Nombre d'éléments à renvoyer (maximum: 50)
  • after: Curseur sur le dernier élément de la page précédente (à omettre pour la première page)

Les requêtes paginées renvoient les résultats suivants :

  • nodes: les éléments proprement dits
  • pageInfo.endCursor: Curseur sur le dernier élément de la page actuelle
  • pageInfo.hasNextPage: indique s'il y a une autre page
  • totalCount: Nombre total d'éléments (si la requête le prend en charge)

Exemple

Il n'est pas nécessaire de définir d'argument after pour la première page. La requête suivante renvoie les 50 premières entrées ainsi qu'un objet pageInfo contenant l'endCursor de la page.

{
    allEntries(first: 50) {
        totalCount
        pageInfo {
            hasNextPage
            endCursor
        }
        edges {
            node {
                id
                name
            }
        }
    }
}

Pour récupérer les 50 entrées suivantes, utilise l'endCursor de la réponse précédente et définis-le comme suit pour l'argument after de la requête suivante :

{
    allEntries(first: 50, after: "NTA") {
        totalCount
        pageInfo {
            hasNextPage
            endCursor
        }
        edges {
            node {
                id
                name
            }
        }
    }
}

Exemple : consulter les informations relatives à l'accessibilité

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

Utilisez cette requête pour obtenir des informations telles que les liens Web Ginto et les notes standard pour certaines localités. Intégrez-les à votre site Web avec d'autres données, comme les horaires d'ouverture. Vous trouverez ici un exemple d'utilisation.

Pour garantir un filtrage efficace, l'équipe d'assistance Ginto peut configurer pour vous un filtre de publication avec différents paramètres de filtrage (catégorie, source, code postal, statut de vérification, niveau de détail). Si vous intégrez l'identifiant (filterId) de ce filtre de publication dans la requête, la requête API ne renverra que les entrées correspondant au filtre de publication.

Version sans sous-rubriques

La requête suivante vous permet de récupérer toutes les entrées correspondant à un filtre de publication. Vous obtiendrez également des informations sur le nom, la fonction, l'adresse, les notes par défaut et le lien Web Ginto de chaque entrée.

{
    entriesByFilter(filterId: "0ace704e-db54-41c1-aa45-8f5d1e45cc27") {
        totalCount
        pageInfo {
            endCursor
            hasNextPage
            hasPreviousPage
            startCursor
        }
        nodes {
            entryId
            name
            createdAt
            updatedAt
            categories {
                groupKey
                groupName
                key
                name
            }
            position {
                street
                housenumber
                postcode
                city
                countryCode
                lat
                lng
            }
            accessibilityInfo {
                defaultRatings {
                    descriptionDE: description(locale: DE)
                    descriptionEN: description(locale: EN)
                    descriptionFR: description(locale: FR)
                    descriptionIT: description(locale: IT)
                    iconUrl
                    key
                }
            }
            publication {
                linkTextDE: linkText(locale: DE)
                linkTextEN: linkText(locale: EN)
                linkTextFR: linkText(locale: FR)
                linkTextIT: linkText(locale: IT)
                linkUrl
            }
            licenseInfo {
                attribution
                isOpenData
                license
            }
            sources {
                originIds
                sourceKey
                sourceName
            }
        }
    }
}

accessibilityInfo.defaultRatings: Contient une liste de toutes les évaluations standard calculées pour l'entrée. Une évaluation standard comprend un pictogramme et un bref résumé d'un aspect spécifique de l'accessibilité de l'entrée Ginto correspondante. Utilisez les évaluations standard d'une entrée Ginto pour publier les informations relatives à l'accessibilité d'un lieu sur votre site web.

publication.linkUrl: Contient une URL vers la page Ginto de l'entrée correspondante, sur laquelle figurent toutes les informations détaillées concernant l'accessibilité. Veuillez toujours inclure ce lien lorsque vous publiez des informations sur l'accessibilité des lieux sur votre site web.

Variante avec sous-rubriques

Si l'on souhaite récupérer les notes par défaut et le lien Web Ginto pour chaque section d'une entrée, la requête ci-dessus peut être étendue comme suit :

{
    entriesByFilter(filterId: "0ace704e-db54-41c1-aa45-8f5d1e45cc27") {
        totalCount
        pageInfo {
            endCursor
            hasNextPage
            hasPreviousPage
            startCursor
        }
        nodes {
            entryId
            name
            createdAt
            updatedAt
            categories {
                groupKey
                groupName
                key
                name
            }
            position {
                street
                housenumber
                postcode
                city
                countryCode
                lat
                lng
            }
            accessibilityInfo {
                defaultRatings {
                    descriptionDE: description(locale: DE)
                    descriptionEN: description(locale: EN)
                    descriptionFR: description(locale: FR)
                    descriptionIT: description(locale: IT)
                    iconUrl
                    key
                }
            }
            publication {
                linkTextDE: linkText(locale: DE)
                linkTextEN: linkText(locale: EN)
                linkTextFR: linkText(locale: FR)
                linkTextIT: linkText(locale: IT)
                linkUrl
            }
            licenseInfo {
                attribution
                isOpenData
                license
            }
            sources {
                originIds
                sourceKey
                sourceName
            }
            areas {
                areaTemplateKey
                id
                name
                accessibilityInfo {
                    defaultRatings {
                        descriptionDE: description(locale: DE)
                        descriptionEN: description(locale: EN)
                        descriptionFR: description(locale: FR)
                        descriptionIT: description(locale: IT)
                        iconUrl
                        key
                    }
                }
                publication {
                    linkTextDE: linkText(locale: DE)
                    linkTextEN: linkText(locale: EN)
                    linkTextFR: linkText(locale: FR)
                    linkTextIT: linkText(locale: IT)
                    linkUrl
                }
                subAreas {
                    areaTemplateKey
                    id
                    name
                    accessibilityInfo {
                        defaultRatings {
                            descriptionDE: description(locale: DE)
                            descriptionEN: description(locale: EN)
                            descriptionFR: description(locale: FR)
                            descriptionIT: description(locale: IT)
                            iconUrl
                            key
                        }
                    }
                    publication {
                        linkTextDE: linkText(locale: DE)
                        linkTextEN: linkText(locale: EN)
                        linkTextFR: linkText(locale: FR)
                        linkTextIT: linkText(locale: IT)
                        linkUrl
                    }
                }
            }
        }
    }
}

Demandez un preuve OK:GO pour «Swisstainable»

OK:GO est reconnu comme une preuve dans le cadre du programme de durabilité «Swisstainable» de niveau II - engaged (en combinaison). Vous trouverez un aperçu de tous les certificats de durabilité reconnus ici.

Un certificat OK:GO de participation à «Swisstainable» peut être demandé via ce formulaire en ligne. Un certificat est délivré lorsque les conditions de participation sont remplies. Le certificat OK:GO est valide pendant deux ans à compter de la date d'émission. Le certificat OK:GO est valable deux ans à compter de la date de délivrance.
Merci, nous avons bien reçu votre demande et nous vous répondrons dans les prochains jours.
Oh, quelque chose n'a pas marché là-bas. Veuillez réessayer

Questions fréquemment posées

Il n'existe actuellement aucune question fréquemment posée à propos de ce guide.

Cela pourrait également vous intéresser