Instructure Lti::ToolConfigurationsApi API

The Lti::ToolConfigurationsApi API from Instructure — 3 operation(s) for lti::toolconfigurationsapi.

OpenAPI Specification

instructure-lti-toolconfigurationsapi-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Canvas LMS LTI ExternalTool Lti::ToolConfigurationsApi 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::ToolConfigurationsApi
paths:
  /api/lti/accounts/{account_id}/developer_keys/tool_configuration:
    post:
      summary: create
      tags:
      - Lti::ToolConfigurationsApi
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
        example: 8095
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                developer_key:
                  type: object
                  properties:
                    email:
                      type: string
                    name:
                      type: string
                    notes:
                      type: string
                    public_jwk_url:
                      type: string
                    redirect_uris:
                      type: string
                    require_scopes:
                      type: string
                    scopes:
                      type: array
                      items:
                        type: string
                    test_cluster_only:
                      type: string
                  required:
                  - email
                  - name
                  - notes
                  - public_jwk_url
                  - require_scopes
                  - scopes
                  - test_cluster_only
                developer_key_id:
                  type: string
                tool_configuration:
                  type: object
                  properties:
                    privacy_level:
                      type: string
                    settings:
                      type: object
                      properties:
                        custom_fields:
                          type: object
                          properties:
                            has_expansion:
                              type: string
                            no_expansion:
                              type: string
                          required:
                          - has_expansion
                          - no_expansion
                        description:
                          type: string
                        extensions:
                          type: array
                          items:
                            type: object
                            properties:
                              platform:
                                type: string
                              privacy_level:
                                type: string
                              tool_id:
                                type: string
                              domain:
                                type: string
                              settings:
                                type: object
                                properties:
                                  icon_url:
                                    type: string
                                  selection_height:
                                    type: string
                                  selection_width:
                                    type: string
                                  text:
                                    type: string
                                  placements:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        placement:
                                          type: string
                                        message_type:
                                          type: string
                                        canvas_icon_class:
                                          type: string
                                        icon_url:
                                          type: string
                                        text:
                                          type: string
                                        target_link_uri:
                                          type: string
                                        enabled:
                                          type: string
                                      required:
                                      - placement
                                      - message_type
                                      - canvas_icon_class
                                      - icon_url
                                      - text
                                      - target_link_uri
                                      - enabled
                                required:
                                - icon_url
                                - selection_height
                                - selection_width
                                - text
                                - placements
                            required:
                            - platform
                            - privacy_level
                            - tool_id
                            - domain
                            - settings
                        oidc_initiation_url:
                          type: string
                        public_jwk:
                          type: object
                          properties:
                            alg:
                              type: string
                            e:
                              type: string
                            kid:
                              type: string
                            kty:
                              type: string
                            n:
                              type: string
                            use:
                              type: string
                          required:
                          - alg
                          - e
                          - kid
                          - kty
                          - n
                          - use
                        target_link_uri:
                          type: string
                        title:
                          type: string
                        public_jwk_url:
                          type: string
                      required:
                      - custom_fields
                      - description
                      - extensions
                      - oidc_initiation_url
                      - public_jwk
                      - target_link_uri
                      - title
                    custom_fields:
                      type: string
                    disabled_placements:
                      type: array
                      items:
                        type: string
                    settings_url:
                      type: string
                  required:
                  - privacy_level
              required:
              - developer_key
              - tool_configuration
            example:
              developer_key:
                email: test@test.com
                name: Test Dev Key
                notes: Some cool notes
                public_jwk_url: https://www.test.com
                redirect_uris: "http://www.test.com\r\nhttp://www.anothertest.com"
                require_scopes: 'true'
                scopes:
                - https://purl.imsglobal.org/spec/lti-ags/scope/lineitem
                test_cluster_only: 'true'
              developer_key_id: '142196'
              tool_configuration:
                privacy_level: public
                settings:
                  custom_fields:
                    has_expansion: $Canvas.user.id
                    no_expansion: foo
                  description: 1.3 Tool
                  extensions:
                  - platform: canvas.instructure.com
                    privacy_level: public
                    tool_id: LTI 1.3 Test Tool
                    domain: http://lti13testtool.docker
                    settings:
                      icon_url: https://static.thenounproject.com/png/131630-200.png
                      selection_height: '500'
                      selection_width: '500'
                      text: LTI 1.3 Test Tool Extension text
                      placements:
                      - placement: course_navigation
                        message_type: LtiResourceLinkRequest
                        canvas_icon_class: icon-pdf
                        icon_url: https://static.thenounproject.com/png/131630-211.png
                        text: LTI 1.3 Test Tool Course Navigation
                        target_link_uri: http://lti13testtool.docker/launch?placement=course_navigation
                        enabled: 'true'
                      - placement: account_navigation
                        message_type: LtiResourceLinkRequest
                        canvas_icon_class: icon-lti
                        icon_url: https://static.thenounproject.com/png/131630-211.png
                        target_link_uri: http://lti13testtool.docker/launch?placement=account_navigation
                        text: LTI 1.3 Test Tool Course Navigation
                        enabled: 'true'
                  oidc_initiation_url: http://lti13testtool.docker/blti_launch
                  public_jwk:
                    alg: RS256
                    e: AQAB
                    kid: '2018-09-18T21:55:18Z'
                    kty: RSA
                    n: 2YGluUtCi62Ww_TWB38OE6wTaN...
                    use: sig
                  target_link_uri: http://lti13testtool.docker/blti_launch
                  title: LTI 1.3 Tool
                  public_jwk_url: https://test.com
                custom_fields: "foo=bar\r\nkey=value"
                disabled_placements:
                - course_navigation
                - account_navigation
                settings_url: https://www.mytool.com/config/json
      responses:
        '200':
          description: is expected to be nil
          content:
            application/json:
              schema:
                type: object
                properties:
                  tool_configuration:
                    type: object
                    properties:
                      id:
                        type: integer
                      developer_key_id:
                        type: integer
                      settings:
                        type: object
                        properties:
                          custom_fields:
                            type: object
                            properties:
                              has_expansion:
                                type: string
                              no_expansion:
                                type: string
                              foo:
                                type: string
                              key:
                                type: string
                            required:
                            - has_expansion
                            - no_expansion
                          description:
                            type: string
                          extensions:
                            type: array
                            items:
                              type: object
                              properties:
                                platform:
                                  type: string
                                privacy_level:
                                  type: string
                                tool_id:
                                  type: string
                                domain:
                                  type: string
                                settings:
                                  type: object
                                  properties:
                                    icon_url:
                                      type: string
                                    selection_height:
                                      type: string
                                    selection_width:
                                      type: string
                                    text:
                                      type: string
                                    placements:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          placement:
                                            type: string
                                          message_type:
                                            type: string
                                          canvas_icon_class:
                                            type: string
                                          icon_url:
                                            type: string
                                          text:
                                            type: string
                                          target_link_uri:
                                            type: string
                                          enabled:
                                            type: string
                                        required:
                                        - placement
                                        - message_type
                                        - canvas_icon_class
                                        - icon_url
                                        - text
                                        - target_link_uri
                                        - enabled
                                  required:
                                  - icon_url
                                  - selection_height
                                  - selection_width
                                  - text
                                  - placements
                              required:
                              - platform
                              - privacy_level
                              - tool_id
                              - domain
                              - settings
                          oidc_initiation_url:
                            type: string
                          public_jwk:
                            type: object
                            properties:
                              alg:
                                type: string
                              e:
                                type: string
                              kid:
                                type: string
                              kty:
                                type: string
                              n:
                                type: string
                              use:
                                type: string
                            required:
                            - alg
                            - e
                            - kid
                            - kty
                            - n
                            - use
                          target_link_uri:
                            type: string
                          title:
                            type: string
                          scopes:
                            type: array
                            items: {}
                          public_jwk_url:
                            type: string
                        required:
                        - custom_fields
                        - description
                        - extensions
                        - oidc_initiation_url
                        - public_jwk
                        - target_link_uri
                        - title
                      created_at:
                        type: string
                      updated_at:
                        type: string
                      disabled_placements:
                        nullable: true
                        type: array
                        items:
                          type: string
                      privacy_level:
                        type: string
                    required:
                    - id
                    - developer_key_id
                    - settings
                    - created_at
                    - updated_at
                    - disabled_placements
                    - privacy_level
                  developer_key:
                    type: object
                    properties:
                      email:
                        type: string
                      user_name:
                        nullable: true
                      created_at:
                        type: string
                      user_id:
                        nullable: true
                      name:
                        type: string
                      icon_url:
                        nullable: true
                      workflow_state:
                        type: string
                      notes:
                        type: string
                      scopes:
                        type: array
                        items:
                          type: string
                      require_scopes:
                        type: boolean
                      client_credentials_audience:
                        nullable: true
                      api_key:
                        type: string
                      redirect_uri:
                        nullable: true
                      redirect_uris:
                        type: string
                      access_token_count:
                        type: integer
                      last_used_at:
                        nullable: true
                      vendor_code:
                        nullable: true
                      public_jwk:
                        type: object
                        properties:
                          alg:
                            type: string
                          e:
                            type: string
                          kid:
                            type: string
                          kty:
                            type: string
                          n:
                            type: string
                          use:
                            type: string
                        required:
                        - alg
                        - e
                        - kid
                        - kty
                        - n
                        - use
                      public_jwk_url:
                        nullable: true
                        type: string
                      allow_includes:
                        type: boolean
                      developer_key_account_binding:
                        type: object
                        properties:
                          id:
                            type: integer
                          account_id:
                            type: integer
                          developer_key_id:
                            type: integer
                          workflow_state:
                            type: string
                          account_owns_binding:
                            type: boolean
                        required:
                        - id
                        - account_id
                        - developer_key_id
                        - workflow_state
                        - account_owns_binding
                      account_name:
                        type: string
                      visible:
                        type: boolean
                      is_lti_key:
                        type: boolean
                      is_lti_registration:
                        type: boolean
                      id:
                        type: integer
                    required:
                    - email
                    - user_name
                    - created_at
                    - user_id
                    - name
                    - icon_url
                    - workflow_state
                    - notes
                    - scopes
                    - require_scopes
                    - client_credentials_audience
                    - api_key
                    - redirect_uri
                    - redirect_uris
                    - access_token_count
                    - last_used_at
                    - vendor_code
                    - public_jwk
                    - public_jwk_url
                    - allow_includes
                    - developer_key_account_binding
                    - account_name
                    - visible
                    - is_lti_key
                    - is_lti_registration
                    - id
                required:
                - tool_configuration
                - developer_key
              example:
                tool_configuration:
                  id: 938667
                  developer_key_id: 142208
                  settings:
                    custom_fields:
                      has_expansion: $Canvas.user.id
                      no_expansion: foo
                      foo: bar
                      key: value
                    description: 1.3 Tool
                    extensions:
                    - platform: canvas.instructure.com
                      privacy_level: public
                      tool_id: LTI 1.3 Test Tool
                      domain: http://lti13testtool.docker
                      settings:
                        icon_url: https://static.thenounproject.com/png/131630-200.png
                        selection_height: '500'
                        selection_width: '500'
                        text: LTI 1.3 Test Tool Extension text
                        placements:
                        - placement: course_navigation
                          message_type: LtiResourceLinkRequest
                          canvas_icon_class: icon-pdf
                          icon_url: https://static.thenounproject.com/png/131630-211.png
                          text: LTI 1.3 Test Tool Course Navigation
                          target_link_uri: http://lti13testtool.docker/launch?placement=course_navigation
                          enabled: 'true'
                        - placement: account_navigation
                          message_type: LtiResourceLinkRequest
                          canvas_icon_class: icon-lti
                          icon_url: https://static.thenounproject.com/png/131630-211.png
                          target_link_uri: http://lti13testtool.docker/launch?placement=account_navigation
                          text: LTI 1.3 Test Tool Course Navigation
                          enabled: 'true'
                    oidc_initiation_url: http://lti13testtool.docker/blti_launch
                    public_jwk:
                      alg: RS256
                      e: AQAB
                      kid: '2018-09-18T21:55:18Z'
                      kty: RSA
                      n: 2YGluUtCi62Ww_TWB38OE6wTaN...
                      use: sig
                    target_link_uri: http://lti13testtool.docker/blti_launch
                    title: LTI 1.3 Tool
                    scopes: []
                    public_jwk_url: https://test.com
                  created_at: '2023-12-15T05:37:19Z'
                  updated_at: '2023-12-15T05:37:19Z'
                  disabled_placements: null
                  privacy_level: public
                developer_key:
                  email: test@test.com
                  user_name: null
                  created_at: '2023-12-15T05:37:19Z'
                  user_id: null
                  name: Test Dev Key
                  icon_url: null
                  workflow_state: active
                  notes: Some cool notes
                  scopes:
                  - https://purl.imsglobal.org/spec/lti-ags/scope/lineitem
                  require_scopes: true
                  client_credentials_audience: null
                  api_key: HfrL9VimHfBkRdyeAF64iIjxqXFQrF9gpac3MsmUXHRMzRW5lFuF0y8zY1bfwsVB
                  redirect_uri: null
                  redirect_uris: 'http://www.test.com

                    http://www.anothertest.com'
                  access_token_count: 0
                  last_used_at: null
                  vendor_code: null
                  public_jwk:
                    alg: RS256
                    e: AQAB
                    kid: '2018-09-18T21:55:18Z'
                    kty: RSA
                    n: 2YGluUtCi62Ww_TWB38OE6wTaN...
                    use: sig
                  public_jwk_url: null
                  allow_includes: false
                  developer_key_account_binding:
                    id: 1037219
                    account_id: 8095
                    developer_key_id: 142208
                    workflow_state: 'off'
                    account_owns_binding: true
                  account_name: value for name
                  visible: true
                  is_lti_key: true
                  is_lti_registration: false
                  id: 142208
        '401':
          description: is expected to be unauthorized
          content:
            text/html:
              schema:
                type: string
              example: ''
        '400':
          description: returns a 400
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        message:
                          type: string
                      required:
                      - message
                required:
                - errors
              example:
                errors:
                - message: redirect_uris is missing
        '422':
          description: is expected to be present
          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: lti_key
                  message: developer key must have public jwk or public jwk url
                  error_code: null
  /api/lti/accounts/{account_id}/developer_keys/{developer_key_id}/tool_configuration:
    get:
      summary: show
      tags:
      - Lti::ToolConfigurationsApi
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
        example: 8095
      - name: developer_key
        in: query
        required: false
        schema:
          type: object
          properties:
            email:
              type: string
            name:
              type: string
            notes:
              type: string
            public_jwk_url:
              type: string
            redirect_uris:
              type: string
            require_scopes:
              type: string
            scopes:
              type: array
              items:
                type: string
            test_cluster_only:
              type: string
          required:
          - email
          - name
          - notes
          - public_jwk_url
          - redirect_uris
          - require_scopes
          - scopes
          - test_cluster_only
        example:
          email: test@test.com
          name: Test Dev Key
          notes: Some cool notes
          public_jwk_url: https://www.test.com
          redirect_uris: "http://www.test.com\r\nhttp://www.anothertest.com"
          require_scopes: 'true'
          scopes:
          - https://purl.imsglobal.org/spec/lti-ags/scope/lineitem
          test_cluster_only: 'true'
      - name: developer_key_id
        in: path
        required: true
        schema:
          type: integer
        example: 142176
      responses:
        '401':
          description: responds with "unauthorized"
          content:
            text/html:
              schema:
                type: string
              example: ''
        '404':
          description: is expected to be not found
          content:
            text/html:
              schema:
                type: string
              example: ''
        '200':
          description: renders the tool configuration
          content:
            application/json:
              schema:
                type: object
                properties:
                  tool_configuration:
                    type: object
                    properties:
                      id:
                        type: integer
                      developer_key_id:
                        type: integer
                      settings:
                        type: object
                        properties:
                          title:
                            type: string
                          scopes:
                            type: array
                            items: {}
                          extensions:
                            type: array
                            items:
                              type: object
                              properties:
                                domain:
                                  type: string
                                tool_id:
                                  type: string
                                platform:
                                  type: string
                                settings:
                                  type: object
                                  properties:
                                    text:
                                      type: string
                                    icon_url:
                                      type: string
                                    placements:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          text:
                                            type: string
                                          enabled:
                                            type: boolean
                                          icon_url:
                                            type: string
                                          placement:
                                            type: string
                                          message_type:
                                            type: string
                                          target_link_uri:
                                            type: string
                                          canvas_icon_class:
                                            type: string
                                        required:
                                        - text
                                        - enabled
                                        - icon_url
                                        - placement
                                        - message_type
                                        - target_link_uri
                                        - canvas_icon_class
                                    selection_width:
                                    

# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/instructure/refs/heads/main/openapi/instructure-lti-toolconfigurationsapi-api-openapi.yml