Instructure Lti::IMS::DynamicRegistration API

The Lti::IMS::DynamicRegistration API from Instructure — 3 operation(s) for lti::ims::dynamicregistration.

OpenAPI Specification

instructure-lti-ims-dynamicregistration-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Canvas LMS LTI ExternalTool Lti::IMS::DynamicRegistration API
  description: Canvas LTI 1.3 API endpoints including Dynamic Registration, IMS Names and Roles, Line Items, Data Services, and Security endpoints.
  version: 1.0.0
  contact:
    name: Instructure Support
    url: https://developerdocs.instructure.com/
    email: support@instructure.com
  license:
    name: AGPL-3.0
    url: https://github.com/instructure/canvas-lms/blob/master/LICENSE
servers:
- url: https://{canvas_domain}
  description: Canvas institution domain
  variables:
    canvas_domain:
      default: canvas.instructure.com
      description: The institution-specific Canvas domain
tags:
- name: Lti::IMS::DynamicRegistration
paths:
  /api/lti/register:
    get:
      summary: redirect_to_tool_registration
      tags:
      - Lti::IMS::DynamicRegistration
      parameters:
      - name: registration_url
        in: query
        required: false
        schema:
          type: string
        example: https://example.com
      responses:
        '302':
          description: supports multiple subdomains in the oidc url
          content:
            text/html:
              schema:
                type: string
              example: <html><body>You are being <a href="https://example.com?openid_configuration=https%3A%2F%2Fsub.test.host%2Fapi%2Flti%2Fsecurity%2Fopenid-configuration&amp;registration_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiYjA2YTNkMmItYWNkNS00OWNlLWEwZWEtNDFlMjU1NDRmYWJiIiwiaW5pdGlhdGVkX2F0IjoiMjAyMy0xMi0xNVQwMjo0MDozNCswMDowMCIsInVzZXJfaWQiOjE3NjMsInJvb3RfYWNjb3VudF9nbG9iYWxfaWQiOjI4OTEsImV4cCI6MTcwMjYxMTYzNH0.XT7yNB7fZ7pu2uwE_ysWsgv50KTzcujf3RJECbWS1Ho">redirected</a>.</body></html>
        '404':
          description: returns a 404
          content:
            text/html:
              schema:
                type: string
              example: ''
  /api/lti/registration_token:
    get:
      summary: registration_token
      tags:
      - Lti::IMS::DynamicRegistration
      responses:
        '200':
          description: returns a 200
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                  oidc_configuration_url:
                    type: string
                  token:
                    type: string
                required:
                - uuid
                - oidc_configuration_url
                - token
              example:
                uuid: 0d3f7978-8635-44dd-aec1-8a63f7520c8f
                oidc_configuration_url: https://canvas.instructure.com/api/lti/security/openid-configuration
                token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1dWlkIjoiMGQzZjc5NzgtODYzNS00NGRkLWFlYzEtOGE2M2Y3NTIwYzhmIiwiaW5pdGlhdGVkX2F0IjoiMjAyMy0xMi0zMVQwNDo1MTo1NyswMDowMCIsInVzZXJfaWQiOjE4NDksInJvb3RfYWNjb3VudF9nbG9iYWxfaWQiOjIwMDAwMDAwMDAwMzA3MywiZXhwIjoxNzA0MDAxOTE3fQ.Q_JjbjAYQZTkacPq64y2qa3PqCCrQhTEKp25RAyNy34
  /api/lti/registrations:
    post:
      summary: create
      tags:
      - Lti::IMS::DynamicRegistration
      responses:
        '401':
          description: returns a 401
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        message:
                          type: string
                        error_code:
                          type: string
                      required:
                      - message
                      - error_code
                required:
                - errors
              example:
                errors:
                - message: An error occurred.
                  error_code: unauthorized
        '200':
          description: fills in values on the developer key
          content:
            application/json:
              schema:
                type: object
                properties:
                  client_id:
                    type: string
                  application_type:
                    type: string
                  grant_types:
                    type: array
                    items:
                      type: string
                  initiate_login_uri:
                    type: string
                  redirect_uris:
                    type: array
                    items:
                      type: string
                  response_types:
                    type: array
                    items:
                      type: string
                  client_name:
                    type: string
                  jwks_uri:
                    type: string
                  token_endpoint_auth_method:
                    type: string
                  scope:
                    type: string
                  https://purl.imsglobal.org/spec/lti-tool-configuration:
                    type: object
                    properties:
                      domain:
                        type: string
                      messages:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                            target_link_uri:
                              type: string
                            label:
                              type: string
                            icon_uri:
                              type: string
                            custom_parameters:
                              type: object
                              properties:
                                foo:
                                  type: string
                              required:
                              - foo
                            roles:
                              type: array
                              items:
                                type: string
                            placements:
                              type: array
                              items:
                                type: string
                          required:
                          - type
                          - target_link_uri
                          - label
                          - icon_uri
                          - custom_parameters
                          - roles
                          - placements
                      claims:
                        type: array
                        items:
                          type: string
                      target_link_uri:
                        type: string
                    required:
                    - domain
                    - messages
                    - claims
                    - target_link_uri
                required:
                - client_id
                - application_type
                - grant_types
                - initiate_login_uri
                - redirect_uris
                - response_types
                - client_name
                - jwks_uri
                - token_endpoint_auth_method
                - scope
                - https://purl.imsglobal.org/spec/lti-tool-configuration
              example:
                client_id: '941'
                application_type: web
                grant_types:
                - client_credentials
                - implicit
                initiate_login_uri: https://example.com/login
                redirect_uris:
                - https://example.com/launch
                response_types:
                - id_token
                client_name: the client name
                jwks_uri: https://example.com/api/jwks
                token_endpoint_auth_method: private_key_jwt
                scope: https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly https://purl.imsglobal.org/spec/lti-ags/scope/score https://purl.imsglobal.org/spec/lti/scope/noticehandlers
                https://purl.imsglobal.org/spec/lti-tool-configuration:
                  domain: example.com
                  messages:
                  - type: LtiResourceLinkRequest
                    target_link_uri: https://example.com/launch
                    label: deep link label
                    icon_uri: https://example.com/icon.jpg
                    custom_parameters:
                      foo: bar
                    roles:
                    - http://purl.imsglobal.org/vocab/lis/v2/membership#ContentDeveloper
                    - http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor
                    placements:
                    - course_navigation
                  claims:
                  - iss
                  - sub
                  target_link_uri: https://example.com/launch
        '422':
          description: returns a 422 with validation errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        message:
                          type: string
                        error_code:
                          nullable: true
                      required:
                      - field
                      - message
                      - error_code
                required:
                - errors
              example:
                errors:
                - field: grant_types
                  message: Must include client_credentials, implicit
                  error_code: null
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                application_type:
                  type: string
                client_name:
                  type: string
                grant_types:
                  type: array
                  items:
                    type: string
                https://purl.imsglobal.org/spec/lti-tool-configuration:
                  type: object
                  properties:
                    claims:
                      type: array
                      items:
                        type: string
                    domain:
                      type: string
                    messages:
                      type: array
                      items:
                        type: object
                        properties:
                          type:
                            type: string
                          label:
                            type: string
                          placements:
                            type: array
                            items:
                              type: string
                          target_link_uri:
                            type: string
                          custom_parameters:
                            type: object
                            properties:
                              foo:
                                type: string
                            required:
                            - foo
                          roles:
                            type: array
                            items:
                              type: string
                          icon_uri:
                            type: string
                        required:
                        - type
                        - label
                        - placements
                        - target_link_uri
                        - custom_parameters
                        - roles
                        - icon_uri
                    target_link_uri:
                      type: string
                  required:
                  - claims
                  - domain
                  - messages
                  - target_link_uri
                initiate_login_uri:
                  type: string
                jwks_uri:
                  type: string
                redirect_uris:
                  type: array
                  items:
                    type: string
                registration_token:
                  type: string
                response_types:
                  type: array
                  items:
                    type: string
                scope:
                  type: string
                token_endpoint_auth_method:
                  type: string
              required:
              - application_type
              - client_name
              - grant_types
              - https://purl.imsglobal.org/spec/lti-tool-configuration
              - initiate_login_uri
              - jwks_uri
              - redirect_uris
              - registration_token
              - response_types
              - scope
              - token_endpoint_auth_method
            example:
              application_type: web
              client_name: the client name
              grant_types:
              - client_credentials
              - implicit
              https://purl.imsglobal.org/spec/lti-tool-configuration:
                claims:
                - iss
                - sub
                domain: example.com
                messages:
                - type: LtiResourceLinkRequest
                  label: deep link label
                  placements:
                  - course_navigation
                  target_link_uri: https://example.com/launch
                  custom_parameters:
                    foo: bar
                  roles:
                  - http://purl.imsglobal.org/vocab/lis/v2/membership#ContentDeveloper
                  - http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor
                  icon_uri: https://example.com/icon.jpg
                target_link_uri: https://example.com/launch
              initiate_login_uri: https://example.com/login
              jwks_uri: https://example.com/api/jwks
              redirect_uris:
              - https://example.com/launch
              registration_token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxNzY4LCJpbml0aWF0ZWRfYXQiOiIyMDIzLTEyLTE1VDAyOjM5OjM3WiIsInJvb3RfYWNjb3VudF9nbG9iYWxfaWQiOjAsInV1aWQiOiIzN2ExN2E2NC03ODlhLTQ5NGYtYjFjNy1lNjllN2I3ZjRlNzIiLCJleHAiOjE3MDI2MTE2Mzd9.Q9mhBLdBY8gXf_cQxB2RYOoPk6_a47gqNLpUXjVnFcc
              response_types:
              - id_token
              scope: https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly https://purl.imsglobal.org/spec/lti-ags/scope/score https://purl.imsglobal.org/spec/lti/scope/noticehandlers
              token_endpoint_auth_method: private_key_jwt
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication
      flows:
        authorizationCode:
          authorizationUrl: https://{canvas_domain}/login/oauth2/auth
          tokenUrl: https://{canvas_domain}/login/oauth2/token
          scopes: {}
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token (access token)