Skip to main content


Pupilfirst LMS uses a GraphQL API to enable typed communication between the ReScript front-end code and the Rails server. A few of these GraphQL queries and mutations can be accessed using token-based authentication.


Documentation for queries and mutations that are accessible via token-based authentication can be found here:

Token-based authentication

To generate a token on a self-hosted instance, simply call the user.regenerate_api_token method, and read the token by calling user.api_token. Make sure to save the token in your application's configuration; it cannot be accessed again from the database.

To authenticate using the token, pass the token in the Authorization header:

Authorization: Bearer ACCESS_TOKEN

Browsing GraphQL in development

Visit the /graphiql path to browse and interact with all GraphQL queries in the development environment.

Updating GraphQL schema

If you make any changes to the GraphQL schema, you'll need to update the graphql_schema.json file by running an introspection query.

Run the following rake task to generate the schema:

rails graphql:schema:json