Canvas Canvas Career Experiences API

The Canvas Career Experiences API from Canvas — 4 operation(s) for canvas career experiences.

Operations 4

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/career/enabled Check if Canvas Career is enabled · Check if Canvas Career is enabled #
Ask an LLM
“Is Canvas Career turned on anywhere in our root account?”
“Does any subaccount have the Horizon career experience enabled?”
Tell an agent
Check whether Canvas Career is enabled.
Tell me if Horizon is on for any subaccount.
GET /v1/career/experience_summary Show my current and available experiences · Get current and available experiences #
Ask an LLM
“Which experience am I in right now, and which others can I switch to?”
“Can I see my available Canvas experiences?”
Tell an agent
Show my current experience and the ones I can switch to.
List the experiences available to me.
POST /v1/career/switch_experience Switch my active experience · Switch experience #
Ask an LLM
“How do I switch from the academic experience to Canvas Career?”
“Can I change which experience I'm using?”
Tell an agent
Switch my active experience to {experience}.
Move me into the {experience} experience.
POST /v1/career/switch_role Switch my role in the current experience · Switch role #
Ask an LLM
“Can I switch between learner and admin roles in my current experience?”
“How do I change my role without leaving the experience?”
Tell an agent
Switch my role to {role}.
Change my role in this experience to {role}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/canvas:canvas-canvas-career-experiences-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

canvas-canvas-career-experiences-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canvas LMS REST Canvas Career Experiences API
  version: v1
  summary: The complete Canvas LMS REST API, converted from the Swagger 1.2 documents Instructure publishes under https://canvas.instructure.com/doc/api/.
  description: The Canvas LMS REST API covers courses, assignments, quizzes, grades, users, enrollments, accounts, files, modules, rubrics, submissions, SIS imports, LTI, analytics and account administration.
  contact:
    name: Instructure Canvas
    url: https://canvas.instructure.com/doc/api/
  license:
    name: AGPL-3.0
    url: https://github.com/instructure/canvas-lms/blob/master/LICENSE
servers:
- url: https://canvas.instructure.com/api
  description: Instructure-hosted Canvas (canvas.instructure.com)
- url: https://{canvas_host}/api
  description: Any Canvas instance; Canvas is multi-tenant and self-hostable, so the host is the institution's Canvas domain.
  variables:
    canvas_host:
      default: canvas.instructure.com
      description: Your institution's Canvas hostname, e.g. school.instructure.com
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Canvas Career Experiences
  x-resource: canvas_career_experiences
  externalDocs:
    url: https://canvas.instructure.com/doc/api/canvas_career_experiences.html
paths:
  /v1/career/enabled:
    get:
      tags:
      - Canvas Career Experiences
      operationId: check_if_canvas_career_is_enabled
      summary: Check if Canvas Career is enabled
      description: 'Returns whether the root account has Canvas Career (Horizon) enabled

        in at least one subaccount.'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
                x-canvas-declared-type: '{enabled: boolean}'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/canvas_career_experiences.html
  /v1/career/experience_summary:
    get:
      tags:
      - Canvas Career Experiences
      operationId: get_current_and_available_experiences
      summary: Get current and available experiences
      description: 'Returns the current user''s active experience and available experiences

        they can switch to.'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExperienceSummary'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/canvas_career_experiences.html
  /v1/career/switch_experience:
    post:
      tags:
      - Canvas Career Experiences
      operationId: switch_experience
      summary: Switch experience
      description: Switch the current user's active experience to the specified one.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                experience:
                  type: string
                  enum:
                  - academic
                  - career
                  description: The experience to switch to.
              required:
              - experience
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                experience:
                  type: string
                  enum:
                  - academic
                  - career
                  description: The experience to switch to.
              required:
              - experience
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
                x-canvas-declared-type: '{experience: String} The newly set experience'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/canvas_career_experiences.html
  /v1/career/switch_role:
    post:
      tags:
      - Canvas Career Experiences
      operationId: switch_role
      summary: Switch role
      description: Switch the current user's role within the current experience.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                role:
                  type: string
                  enum:
                  - learner
                  - learning_provider
                  description: The role to switch to.
              required:
              - role
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                role:
                  type: string
                  enum:
                  - learner
                  - learning_provider
                  description: The role to switch to.
              required:
              - role
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
                x-canvas-declared-type: '{role: String} The newly set role'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/canvas_career_experiences.html
components:
  schemas:
    ExperienceSummary:
      type: object
      properties:
        current_app:
          type: string
          example: career_learner
          description: 'The current active experience. One of: ''academic'', ''career_learner'', ''career_learning_provider''.'
        available_apps:
          type: array
          items:
            type: string
          example:
          - academic
          - career_learner
          description: 'List of available experiences for the user. Can include: ''academic'', ''career_learner'', ''career_learning_provider''.'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Canvas OAuth2 access token sent as "Authorization: Bearer <token>". See https://canvas.instructure.com/doc/api/file.oauth.html'
    oauth2:
      type: oauth2
      description: Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
      flows:
        authorizationCode:
          authorizationUrl: https://canvas.instructure.com/login/oauth2/auth
          tokenUrl: https://canvas.instructure.com/login/oauth2/token
          refreshUrl: https://canvas.instructure.com/login/oauth2/token
          scopes: {}
externalDocs:
  description: Canvas LMS REST API Documentation
  url: https://canvas.instructure.com/doc/api/
x-generated-from: https://canvas.instructure.com/doc/api/api-docs.json
x-provenance:
  method: derived
  derived_by: API Evangelist enrichment pipeline (Swagger 1.2 -> OpenAPI 3.1 conversion)
  source: openapi/_original/swagger-1.2/*.json (144 verbatim first-party Swagger 1.2 documents)
  source_url: https://canvas.instructure.com/doc/api/api-docs.json
  fetched: '2026-09-05'
  http_status: 200