L'API Ginto

Dernière mise à jour : 
31/10/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 transmise dans l'en-tête Authorization sous forme de jeton Bearer pour chaque requête. Contactez support@ginto.guide pour obtenir une clé d'autorisation API.

Note

Vous disposez déjà d'une interface avec l'une de nos organisations partenaires, comme l'AccommoDataHub de HotellerieSuisse ? Vous pouvez alors également y récupérer certaines informations sur l'accessibilité, telles que les liens web Ginto ou les pictogrammes.

Conseil professionnel

Utilisez notre espace de travail 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 à l'API

    En savoir plus sur GraphQL.

    API - Envoyer une requête

      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 de 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)
      • Optionnel : Accept-Language (en-tête pour spécifier la langue souhaitée : de, en, fr ou it)

      En cas de succès, le serveur répond avec un objet JSON contenant l'objet data. Si une erreur survient, la réponse peut contenir un tableau errors. Dans ce cas, l'objet data est soit NULL, 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 réelle. L'en-tête Accept-Language est optionnel. Supprimez-le ou remplacez de (allemand) par en (anglais), fr (français) ou it (italien) si nécessaire.

      Autorisation API

        La clé API doit être fournie dans chaque requête en tant que jeton Bearer dans l'en-tête Authorization :

        Authorization: Bearer {apiKey}

        ‍

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

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

        API - Tests avec Postman

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

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

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

          API - Définir la langue

            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. Les options de (allemand), en (anglais), fr (français) et it (italien) sont actuellement prises en charge.

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

            Pour les textes disponibles en plusieurs langues, une langue spécifique peut également être définie via le champ Argument.

            API - Aperçu des requêtes

              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.

              API - Schéma de données

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

                • Auto-complétion pour les champs et les arguments
                • Documentation intégrée de toutes les requêtes et champs disponibles
                • Validation des requêtes avant leur envoi

                Des outils comme Postman, Bruno, Insomnia et de nombreuses IDE GraphQL prennent cela en charge par défaut et affichent la documentation du schéma directement dans leurs interfaces.

                API - Pagination

                  Le concept repose sur des Connections et Edges, ce qui constitue quasiment la norme pour la pagination dans GraphQL. La pagination utilise un modèle basé sur des curseurs avec les arguments suivants :

                  • first : nombre d'éléments à retourner (maximum : 50)
                  • after : curseur du dernier élément de la page précédente (à omettre pour la première page)

                  Les requêtes paginées renvoient les éléments suivants :

                  • nodes : les éléments proprement dits
                  • pageInfo.endCursor : curseur du dernier élément de la page actuelle
                  • pageInfo.hasNextPage : indique si une page supplémentaire est disponible
                  • totalCount : nombre total d'éléments (si pris en charge par la requête)

                  Exemple

                  Pour la première page, aucun argument after ne doit être défini. La requête suivante renvoie les 50 premières entrées accompagnées d'une pageInfo contenant le endCursor de la page.

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

                  ‍

                  Pour demander les 50 entrées suivantes, utilisez le endCursor de la réponse précédente et définissez-le comme argument « after » pour la requête suivante :

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

                  Exemple d'API

                    Utilisez cette requête pour récupérer des informations telles que les liens web Ginto et les évaluations standard pour des lieux spécifiques. Intégrez-les sur votre site web avec d'autres données, comme les heures d'ouverture. Vous trouverez ici un exemple d'application.

                    Pour un filtrage efficace, l'équipe de support Ginto peut configurer pour vous un filtre de publication avec divers paramètres (catégorie, source, code postal, statut de vérification, niveau de détail). En saisissant la filterId de ce filtre dans la requête, l'API ne renverra que les entrées correspondantes.

                    ‍

                    Variante sans sous-zones

                    La requête suivante vous permet de récupérer toutes les entrées correspondant à un filtre de publication. Vous recevrez également des informations sur le nom, la position, l'adresse, les évaluations standard 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é. Utilisez ces évaluations pour publier l'accessibilité d'un lieu sur votre site.

                    publication.linkUrl : Contient l'URL du lien web Ginto de l'entrée, où figurent toutes les informations détaillées sur l'accessibilité. Intégrez toujours ce lien lorsque vous publiez des informations sur l'accessibilité de lieux sur votre site web.

                    ‍

                    Variante avec sous-zones

                    Si vous devez récupérer les évaluations standard et le lien web Ginto pour chaque zone 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

                    L'API Ginto est payante. Puis-je obtenir les données gratuitement ?

                    Oui, c'est possible. Nous mettons à votre disposition un export de données gratuit chaque semaine à l'adresse https://assets.ginto.guide/snapshots/entries.json.gz.

                    Notre conseil pour plus de flexibilité : avec un abonnement Ginto Studio+, vous pouvez utiliser notre puissante API GraphQL. Cela vous permet d'accéder en temps réel à toutes les modifications ou ajouts et de filtrer vos requêtes de manière ciblée. De plus, Ginto Studio+ vous permet d'enregistrer vos propres identifiants propriétaires et de les récupérer ensuite via l'API GraphQL. Vous pouvez ainsi facilement associer les informations d'accessibilité de Ginto à vos propres systèmes.

                    Cela pourrait également vous intéresser