GraphQL
Overview
GraphQL offers a relatively simple option to pull custom reports from our database by intuitively combining API-queries to different endpoints into one. Please note, however, that the tool has a limited functionality and doesn't offer access to all endpoints availabe through direct usage of our API. For complex use cases you should still use the API directly.
Key concepts
With GraphQL developers can request exactly the data they need while avoiding over- and underfetching.
Overfetching
Requesting too much data, e.g. data from fields that are of no interest for the current use case
Underfetching
Requesting too little data (by not querying relevant API endpoints)
Get started
Go to our GraphQL page and enter your credentials. Click on "Save".

After that, simply click on the "Play" button in the upper middle to execute the default query in the left window - just to make sure that your credentials work. The query is a minimum working script example, so it makes sense to study it for a bit if you're new to GraphQL. Try adding or deleting something and see how autocompletion works.
Documentation for available queries, parameters...
On the right edge of the page, click on the "DOC" button to expand the documentation.
Also, make use of the intelligent autocompletion while typing your script. This shows only terms that make sense at that position in your script.
A red bar on the left edge of the screen indicates a line with an error - this could also mean that there are parts of the script that need more details. When you move your mouse pointer slowly through the line, you will find the exact position of the error and a short explanation.
Changing credentials and page number
Click on "Query Variables" in the left bottom corner. You can change the company id here (if you want to switch to your other accounts at shyftplan) as well as the result page number for your query for the next time you click on the big "PLAY" button in the upper middle of the page.
"HTTP Headers" allows you to change your credentials without reloading the web page (which would erase your query)
