Getting Started

All Aboard provides professional tools for accessing and selling train content, with the two main features being an intuitive Dashboard for manual agent bookings and an API for automated processes and deep integrations.

  • The All Aboard Dashboard: Designed with a heavy focus on UX, to be a robust and fast tool for agents, without need for training our any previous knowledge.

  • The All Aboard API: Designed to be fast to implement while still providing flexibility to query complex routes and fares.

The Dashboard

The dashboard is a web application for managing your account and making bookings. Only agents that have been approved for direct invoicing can make bookings via the Dashboard.

If you have not been approved for direct invoicing you can still use the API to make bookings and collect payments via the Payments API.

Visit The Dashboard

Once you have set up an agent account with All Aboard you can sign in to the Dashboard to manage your bookings. Sign in now


Before digging in to the API you should familiarize yourself with some of the technologies used, i.e. JSON, GraphQL and WebSockets.


The API is accessible as GraphQL over WebSockets and HTTP (via POST and GET requests) and there are plenty of client libraries available in most programming languages. When it comes to WebSockets the GraphQL community is still in the process of standardizing the protocol. The leading contender for a standardized protocol over WebSockets is the graphql-ws library which is what the All Aboard API is using.

  • HTTPS:
  • WebSocket: wws://

Try it out

Explore the GraphQL Schema and start making requests with the interactive API console. Visit the console

Test environment

While familiarizing yourself with the API you may want to use the test environment to avoid unnecessary charges.


Other than the query and variables parameters required with every request, the API expects the Authorization: Bearer AGENT_API_KEY header with every request.

Not all environments support custom headers when initializing WebSockets (e.g. web browsers), in these circumstances one can include Authorization in the initial connection payload. See how using graphql-ws connectionParams.


Requests over HTTP require the Accept: application/json header.

Additionally, the header session can be included with every request. This header is not required but is used for debugging and logging purposes. The value can be any unique string that identifies the session.