Welcome to the GraphQL Lab. The lab is made up of two parts, a selection of worked example calls which show lots of different ways to interact with a GraphQL system, and then a set of challenges to try to use what you learned from the examples.

The lab assumes you know at least the basics of GraphQL, if you are new to it, have a read of the official Introduction to GraphQL guide. One area worth paying attention to is Introspection. This is a built in feature which allows a user to request full details about features the endpoint offers. While it is usually left enabled, some systems do disable it, and so it is worth practising ways to test systems where it is not available.

A second feature worth investigating is GraphiQL, this is a user interface which acts like an IDE for interaction with an endpoint. It can either be ran as part of the endpoint, where it is accessible through the browser, or can be ran as a stand alone app if the administrators have disabled it.


This area walks you through a number of common ways GraphQL can be used, showing both queries and their responses. There are very few protections in place to stop you from entering invalid data, but when you do, the error messages returned from the server should help you understand what has gone wrong.

Enter the examples area

Bash Street Pupil Portal

For those of you who grew up reading The Beano, you will know the Bash Street Kids well, for the rest of you, go do some research.

The challenges here are based around the newly implemented Bash Street Pupil Portal where you will automatically be logged in as Danny, the leader of the gang. I've set a number of challenges including avoiding Olive's bad cooking and pushing up your grades.

Things to look for in the lab:

With some trial and error, you should be able to do most of these without having to use introspection or look at the GraphiQL app. See how far you can get, then use introspection and GraphiQL if you need them.

If you get stuck but I've put some hints and solutions together, but you will need to do a bit of work to access them. As with most challenges, the suggestions in here are the way I would solve the problems, you may find other ways.

To keep it fresh, and in case someone breaks something, the database behind the lab will reset to a default state every hour.

Enter the Bash Street School Pupil Portal


A selection of resources which may be useful.

Lab created by Robin Wood - DigiNinja