Using GraphQL

In addition to REST APIs, the Skedulo API provides direct access to its data objects using GraphQL. GraphQL is a query language that allows selective access to objects in the data graph. Skedulo Lens supports GraphQL queries for all standard objects as well as any custom objects and fields you have defined.

Getting started with GraphQL

GraphQL is a simple query language that allows you to access data from a remote endpoint. It will enable you to specify the shape of the data you want to be returned in the result to avoid over or under fetching. This allows you to return an object and its related objects in the graph in a single query.

Skedulo GraphQL queries are made to the https://api.skedulo.com/graphql/graphql endpoint.

The Skedulo GraphQL HTTP server handles POST methods using the application/json content type and with a JSON-encoded body. Responses, including both data and errors, are also returned in JSON format. For more information about encoding your GraphQL query as JSON, see the GraphQL documentation.

To help you get started, the Skedulo web application includes the GraphiQL connected page. To learn more about connected pages, see the GraphiQL Connected Page documentation.

Authentication requirements

You must have an API access token to perform GraphQL queries and mutations. For information about how to obtain an access token, see Authentication.

GraphQL schema

GraphQL provides a schema specification to express the types of queries and mutations that are available.

The full GraphQL Schema Definition Language schema for your Skedulo tenant is available by querying the /graphql/schema endpoint as follows:

curl -X GET https://api.skedulo.com/graphql/schema -H "Authorization: Bearer $API_TOKEN"

See Authentication for a description of how to obtain the access token supplied in the $API_TOKEN environment variable.

Queries and mutations can be made against this schema using the /graphql/graphql endpoint.

The schema returned will include the standard Skedulo objects as well as any custom objects or fields you have defined.