Instructure ExternalTool API

The ExternalTool API from Instructure — 1 operation(s) for externaltool.

OpenAPI Specification

instructure-externaltool-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Canvas LMS LTI ExternalTool 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: ExternalTool
paths:
  /api/lti/courses/{course_id}/jwt_token:
    get:
      summary: jwt_token
      tags:
      - ExternalTool
      parameters:
      - name: course_id
        in: path
        required: true
        schema:
          type: integer
        example: 880104
      - name: tool_id
        in: query
        required: false
        schema:
          type: integer
        example: 407124
      - name: tool_launch_url
        in: query
        required: false
        schema:
          type: string
        example: http://www.example.com/basic_lti
      responses:
        '404':
          description: sets status code to 404 if the requested tool id does not exist
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        message:
                          type: string
                      required:
                      - message
                required:
                - errors
              example:
                errors:
                - message: The specified resource does not exist.
        '200':
          description: returns the correct JWT token when given using the tool_id param
          content:
            application/json:
              schema:
                type: object
                properties:
                  jwt_token:
                    type: string
                required:
                - jwt_token
              example:
                jwt_token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjb250ZXh0X2lkIjoiZjUwZGE2OTA1YWI3MzBkMzUyMzZlYTgxMDBiY2I2NzQzNGNmMzM3MCIsImNvbnRleHRfbGFiZWwiOiJVbm5hbWVkIiwiY29udGV4dF90aXRsZSI6IkNvdXJzZSBOYW1lIiwiY3VzdG9tX2NhbnZhc19hcGlfZG9tYWluIjoibG9jYWxob3N0IiwiY3VzdG9tX2NhbnZhc19jb3Vyc2VfaWQiOiI4ODAxMDQiLCJjdXN0b21fY2FudmFzX2Vucm9sbG1lbnRfc3RhdGUiOiJhY3RpdmUiLCJjdXN0b21fY2FudmFzX3VzZXJfaWQiOiIxOTY0OTAiLCJjdXN0b21fY2FudmFzX3VzZXJfbG9naW5faWQiOiIkQ2FudmFzLnVzZXIubG9naW5JZCIsImN1c3RvbV9jYW52YXNfd29ya2Zsb3dfc3RhdGUiOiJhdmFpbGFibGUiLCJleHRfcm9sZXMiOiJ1cm46bHRpOmluc3Ryb2xlOmltcy9saXMvSW5zdHJ1Y3Rvcix1cm46bHRpOnJvbGU6aW1zL2xpcy9JbnN0cnVjdG9yLHVybjpsdGk6c3lzcm9sZTppbXMvbGlzL1VzZXIiLCJsYXVuY2hfcHJlc2VudGF0aW9uX2RvY3VtZW50X3RhcmdldCI6ImlmcmFtZSIsImxhdW5jaF9wcmVzZW50YXRpb25fbG9jYWxlIjoiZW4iLCJsYXVuY2hfcHJlc2VudGF0aW9uX3JldHVybl91cmwiOiJodHRwOi8vdGVzdC5ob3N0L2NvdXJzZXMvODgwMTA0IiwibGlzX3BlcnNvbl9jb250YWN0X2VtYWlsX3ByaW1hcnkiOm51bGwsImxpc19wZXJzb25fbmFtZV9mYW1pbHkiOm51bGwsImxpc19wZXJzb25fbmFtZV9mdWxsIjoiVXNlciIsImxpc19wZXJzb25fbmFtZV9naXZlbiI6IlVzZXIiLCJsdGlfbWVzc2FnZV90eXBlIjoiYmFzaWMtbHRpLWxhdW5jaC1yZXF1ZXN0IiwibHRpX3ZlcnNpb24iOiJMVEktMXAwIiwicmVzb3VyY2VfbGlua19pZCI6ImY1MGRhNjkwNWFiNzMwZDM1MjM2ZWE4MTAwYmNiNjc0MzRjZjMzNzAiLCJyZXNvdXJjZV9saW5rX3RpdGxlIjoiYm9iIiwicm9sZXMiOiJJbnN0cnVjdG9yIiwidG9vbF9jb25zdW1lcl9pbmZvX3Byb2R1Y3RfZmFtaWx5X2NvZGUiOiJjYW52YXMiLCJ0b29sX2NvbnN1bWVyX2luZm9fdmVyc2lvbiI6ImNsb3VkIiwidG9vbF9jb25zdW1lcl9pbnN0YW5jZV9jb250YWN0X2VtYWlsIjoibm90aWZpY2F0aW9uc0B1bmtub3duZG9tYWluLmV4YW1wbGUuY29tIiwidG9vbF9jb25zdW1lcl9pbnN0YW5jZV9ndWlkIjoicHVmOFVrdjlWOU5yOXVMR2trdUk5VEFNNFB1Z2dzMTNZdE5la0FFQjpjYW52YXMtbG1zIiwidG9vbF9jb25zdW1lcl9pbnN0YW5jZV9uYW1lIjoiRGVmYXVsdCBBY2NvdW50IiwidXNlcl9pZCI6ImFiOTEyNzZjZTEyOWI0YjAyMTEyZmQwNzQ4YjA1M2MxZTRiZDZlYmQiLCJ1c2VyX2ltYWdlIjoiaHR0cDovL2xvY2FsaG9zdC9pbWFnZXMvbWVzc2FnZXMvYXZhdGFyLTUwLnBuZyIsImNvbnN1bWVyX2tleSI6ImJvYiIsImlhdCI6MTcwMjYxODU2N30.DuT4WnFME5owv8totVjlU307cYsW6zohT81lZt38GS0
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)