The Ginto API

Last update:
8/4/2026
API
app
Web
Before you start

The API is secure and can only be accessed if the request is authenticated using an API key. This must be included in the Authorization header as a bearer token with every request. Please contact support@ginto.guide to obtain an API key for API authorisation.

note

Do you already have an interface with one of our partner organisations, such as HotellerieSuisse’s AccommoDataHub? If so, you can also obtain some accessibility information, such as Ginto web links or pictograms, from there.

Professional tip

Use our Ginto test workspace in Postman to test the various queries.

That's what you'll find in this guide:

Apply for OK:GO proof for ‘Swisstainable’
Frequently asked questions

Introduction

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

Find out more about GraphQL.

Authorisation

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

The API key must be provided as a Bearer Token in the Authorization header with every request:

Authorization: Bearer {token}

Replace {apiKey} with your own key, without the curly brackets.

Send request

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

Requests are sent as JSON with the following structure in the request body:

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

The request must be sent to the endpoint URL https://api.ginto.guide/graphql and must include the following information:

  • Content-Type: application/json (Header)
  • Accept: application/graphql-response+json, application/json (Header)
  • Authorization: Bearer {apiKey} (Header with your API key)
  • Optional: Accept-Language (Header to select the desired language: de, en, fr or it)

If the operation is successful, the server responds with a JSON object containing the data object. If an error occurs, the response may contain an errors array. In this case, the data object is either ZERO or only partially present.

Example with 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":{}}'

Replace YOUR_API_KEY with your actual API key. The Accept-Language header is optional. Remove it or change de (German) to en (English), fr (French) or it (Italian) if necessary.

Testing with Postman

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

Clicking this link will automatically clone Ginto’s request collection, allowing you to start exploring the Ginto API.

To set the API key in Postman, open the production environment and create the variable apiKey with your actual API key. Then activate the environment. You are now ready to send a request.

Postman can be used online and downloaded for free. Here you will find detailed instructions on creating GraphQL queries in Postman.

Set language

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

The default language of the returned data can be selected by setting the HTTP header Accept-Language. Currently, the options de (German), en (English), fr (French) and it (Italian) are supported.

You can find more information about the HTTP header Accept-Language here.

For texts available in multiple languages, a specific language can also be specified using the argument field.

Query Overview

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
Anfrage Beschreibung
allEntries Ruft eine Liste aller Einträge in Ginto ab.
entriesByFilter Ruft eine Liste aller Einträge innerhalb eines vordefinierten Publikationsfilters ab. Ein Publikationsfilter kann Einträge nach verschiedenen Kriterien filtern und muss beim Ginto-Support-Team angefordert werden.
entriesBySearch Sucht nach Einträgen in der Nähe einer Koordinate und/oder über einen Suchtext.
entry Ruft Daten für einen spezifischen Eintrag ab, der durch seine ID definiert ist.
deletedEntries Ruft eine Liste aller IDs von Einträgen ab, die gelöscht wurden.
availableCategories Ruft eine Liste aller verfügbaren Kategorien ab.
availableDefaultRatings Ruft eine Liste aller verfügbaren Standardbewertungen ab, die jeweils ein Piktogramm und eine kurze Zusammenfassung der Zugänglichkeit dieses Eintrags enthalten. Die Standardbewertungen eines Eintrags sollten für die Veröffentlichung der Barrierefreiheit auf externen Webseiten verwendet werden.
availableFilterTags Ruft eine Liste aller verfügbaren Filter-Tags ab. Ein Filter-Tag ist ein vordefiniertes Schlüsselwort, das Einträgen zugewiesen werden kann und hilft, nach spezifischen Merkmalen zu filtern.
availablePublicationFilters Ruft eine Liste aller Publikationsfilter ab, für die der Benutzer Berechtigungen besitzt. Ein Publikationsfilter muss beim Ginto-Support-Team angefordert werden.
availableRatingProfiles Ruft eine Liste aller vordefinierten Bewertungsprofile ab. Im Gegensatz zu den Standardbewertungen kann ein Bewertungsprofil (z. B. „Rollstuhl“) verwendet werden, um eine Bewertung basierend auf diesem Profil zu berechnen, während die Standardbewertungen mögliche Bewertungsergebnisse definieren (z. B. „Teilweise rollstuhlgerecht“).
availableSources Ruft eine Liste aller externen Quellen ab, die mit Einträgen in Ginto verknüpft sind.

Data schema

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

Most GraphQL applications can automatically retrieve the schema via Introspection and offer the following features:

  • Autocomplete for fields and arguments
  • Inline documentation of all available queries and fields
  • Query validation before sending requests

Tools such as Postman, Bruno, Insomnia and many GraphQL IDEs support this by default and display the schema documentation directly within their tools.

Page layout (pagination)

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

The concept is based on connections and edges, which is effectively the standard approach to pagination in GraphQL. The pagination uses a cursor-based model with the following arguments:

  • first: Number of elements to return (maximum: 50)
  • after: Cursor on the last item of the previous page (omit on the first page)

Paginated queries return the following:

  • nodes: the actual elements
  • pageInfo.endCursor: Cursor on the last element of the current page
  • pageInfo.hasNextPage: indicates whether there is another page
  • totalCount: Total number of elements (where supported by the query)

Example

No after argument needs to be specified for the first page. The following query returns the first 50 entries along with a pageInfo object containing the page’s endCursor.

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

To request the next 50 entries, use the EndCursor from the previous response and set it as follows for the After argument of the next request:

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

Example: Retrieving accessibility information

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

Use this query to retrieve information such as Ginto web links and standard ratings for specific locations. Integrate this data, along with other information such as opening hours, into your website. You can find an example of how to use it here.

To ensure efficient filtering, the Ginto support team can configure a publication filter for you using various filter parameters (category, source, postcode, verification status, detail level). If you enter the filterId of this publication filter in the query, the API request will only return entries that match the publication filter.

Version without sub-sections

Using the following query, you can retrieve all entries that match a publication filter. You will also receive information on the name, position, address, standard ratings and the Ginto web link for each entry.

{
    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: Contains a list of all standard ratings calculated for the listing. A standard rating consists of an icon and a brief summary of a specific aspect of the accessibility of the relevant Ginto listing. Use the standard ratings of a Ginto listing to publish the accessibility of a venue on your website.

publication.linkUrl: Includes a URL to the Ginto web link for the relevant listing, where you can find all the detailed information on accessibility. Always include this link when publishing information on the accessibility of venues on your website.

Version with sub-sections

If you need to retrieve the default ratings and the Ginto web link for each section within an entry, the query above can be extended as follows:

{
    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
                    }
                }
            }
        }
    }
}

Apply for OK:GO proof for ‘Swisstainable’

OK:GO is recognised as proof within the ‘Swisstainable’ sustainability programme at Level II – engaged (in combination). An overview of all recognised sustainability certificates can be found here.

An OK:GO certificate for participation in ‘Swisstainable’ can be applied for using this web form. A certificate will be issued once the conditions of participation have been met. The OK:GO certificate is valid for two years from the date of issue.
Thank you, we've received your request and will get back to you in the coming days.
Oh, something didn't work out there. Please try again

Frequently asked questions

There are currently no frequently asked questions about this guide.

You might also be interested in this