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

Object IDs

Journey object identifiers come from two sources. Resources that Journey owns (programs, skills, experiences, dashboards, learning library collections) carry Journey-issued UUIDs. Resources that originate in Canvas LMS (users, accounts, courses) are referenced by their Canvas-issued IDs, which Journey persists and exposes verbatim — it does not mint a surrogate ID for them.

Journey IDs

Native Journey entities use server-generated v4 UUID primary keys. This applies to programs, skills, experiences, learning library collections, and similar Journey-owned resources — for example program.id, skill.id, experience.id. A small number of internal tables use numeric keys instead; these are not exposed on the public API surface.

"id": "8f3a4c2b-1e5d-4f6a-9b8c-2d3e4f5a6b7c"

UUIDs are stable for the lifetime of the row and are safe to store and reference from clients.

Canvas-origin IDs

IDs sourced from Canvas LMS are kept in their original Canvas form:

  • Canvas numeric global ID (e.g. user, account, course)

  • Canvas user UUID

  • Canvas root account UUID

Regardless of how a value is stored internally, it always crosses the API boundary as a string, preserving Canvas's global-ID precision without JavaScript number issues.

"canvasId": "10000000000123",
"canvasAccountId": "10000000000001"

Account / tenant scoping

Every Journey resource is scoped to a Canvas root account. The acting user's root_account_uuid is carried in the Canvas JWT (see authentication) and used to constrain queries. Where an endpoint operates on a sub-account, the accountId (a Canvas global ID) is supplied as a path or query parameter and checked against the caller's Canvas permissions — see permissions.

In JSON responses

REST endpoints return Journey UUIDs as UUID strings, and Canvas IDs as decimal strings (never JSON numbers). GraphQL resolvers accept and return Canvas IDs as the built-in String type rather than a custom scalar. See graphql for the schema reference.

Last updated

Was this helpful?