For the complete documentation index, see llms.txt. This page is also available as Markdown.

API

Journey is a separate Instructure service that lives alongside Canvas LMS. It hosts skills, experiences, programs, the learning library, and dashboards for users who are already authenticated through Canvas. Journey owns its own resources and reads users, accounts, courses, and enrollments from Canvas via the Canvas REST and GraphQL APIs — see canvas_integration.

The API has two surfaces, both served by the same service on the same authentication: a REST API rooted at /api/v1 and a GraphQL API at /graphql. REST hosts single-resource lookups and mutations with standard HTTP semantics; GraphQL hosts list queries and relational reads where you want to pick fields and traverse relationships in one round trip.

The docs in this directory are conceptual and cross-cutting — authentication, permissions, error shape, ID conventions, and so on. Per-endpoint reference is auto-generated from the running app; see Endpoint reference below.

Schema basics

  • All API access is over HTTPS.

  • All requests and responses use JSON. Form-encoded bodies are not accepted outside of the file-upload endpoints that explicitly document multipart/form-data.

  • Timestamps are ISO 8601 strings in UTC.

  • IDs that originate in Journey are v4 UUIDs; IDs that originate in Canvas are preserved as Canvas-format strings — never JSON numbers. See object_ids.

  • Credentials are always sent as Authorization: Bearer <token>. See authentication.

Getting started

The guides below are roughly ordered from "you need this on every request" to "you need this only when something specific comes up":

  • Authentication — Canvas JWT for end users; service token / outbound service JWT for inter-service traffic.

  • Permissions — Canvas-backed permission checks, account scoping, and the difference between 401 and 403.

  • REST API conventions — URL structure under /api/v1, verbs, content types, and the interactive reference at /api.

  • GraphQL — endpoint at /graphql, when to pick it over REST, and how to view the schema.

  • Pagination — GraphQL cursor convention; REST list endpoints are mostly unpaginated, with Canvas-proxy routes preserving Canvas's Link-header semantics.

  • Errors — error response envelope, HTTP status codes, and the shape of GraphQL errors entries.

  • Object IDs — Journey UUIDs vs. Canvas global IDs / UUIDs, and how GraphQL evolves via @deprecated.

  • Canvas Integration — how Journey relates to Canvas: identity, data ownership, and outbound calls.

Endpoint reference - BASE URLs

The Journey API is available at the following base URLs. Be sure to use the AWS region appropriate for your account.

Throughout these docs, we refer to the base URL as https://journey-server-prod.us-east-1.core.inseng.io for simplicity, but replace the region as appropriate.

REST. The interactive REST reference is available at /api, and the OpenAPI JSON document at /api/openapi/json.

GraphQL. The schema is available via introspection against the GraphQL endpoint in non-production environments. To inspect it, point a GraphQL client at the running endpoint.

Stability

v1/ is the current — and only — stable major version of the REST API. Additive changes (new endpoints, new optional parameters, new response fields) ship under v1/ without a version bump; clients should tolerate unknown fields. Breaking changes are avoided and would require a v2/ prefix. GraphQL is unversioned and evolves in place: fields are retired with the @deprecated directive and continue to return data until a later removal.

Last updated

Was this helpful?