Quickstart: make your first API call
Authenticate against the Skedulo API and run your first GraphQL query in about five minutes.
Skedulo exposes the platform's data through a GraphQL API: jobs, resources, availability, and your custom objects. This quickstart takes you from nothing to a working query in about five minutes.
Before you start
You need:
- A Skedulo tenant (team) you can sign in to.
- Administrator access, so you can create an API token.
curlor an API client such as Postman.
1. Get an API token
In the Skedulo web app, go to Settings > Developer tools > API tokens and create a token. Tokens are Base64-encoded JWTs and can be long-lived or time-limited. Treat them like passwords and store them securely.
Every API request carries the token in an Authorization header:
Authorization: Bearer $API_TOKEN
Verify the token works:
curl -X GET https://api.skedulo.com/auth/whoami \
-H "Authorization: Bearer $API_TOKEN"
A JSON response describing your user and tenant means you're authenticated.
2. Fetch your tenant's schema
Every tenant's GraphQL schema is introspectable. It includes the standard Skedulo objects plus any custom objects and fields defined on your team:
curl -X GET https://api.skedulo.com/graphql/schema \
-H "Authorization: Bearer $API_TOKEN"
3. Run your first query
Queries and mutations are POSTed as JSON to the GraphQL endpoint. This query fetches jobs:
query {
jobs {
edges {
node {
UID
Name
Description
JobStatus
}
}
}
}
curl -X POST https://api.skedulo.com/graphql/graphql \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "query { jobs { edges { node { UID Name Description JobStatus } } } }"}'
The response mirrors the query's shape:
{
"data": {
"jobs": {
"edges": [
{
"node": {
"UID": "0014a76c-dfa1-4e78-87b3-635b7d7f4897",
"Name": "JOB-0007",
"Description": "",
"JobStatus": "Cancelled"
}
}
]
}
}
}
4. Filter results
Most query fields accept a filter parameter using Skedulo's query
language: equality, comparison, LIKE, IN, and boolean logic. For
example:
query {
jobs(filter: "JobStatus == 'Queued'") {
edges {
node {
UID
Name
JobStatus
}
}
}
}
Next steps
- Explore the schema interactively in the GraphQL explorer (paste your token and go), or install the GraphiQL web extension in your tenant.
- Browse the REST surface in the API explorer.
- Write data with GraphQL mutations.
- Page through large result sets with pagination, and review the query limits.
- Prefer REST? See the REST API guide.