Instructure Lti::ToolConfigurationsApi API
The Lti::ToolConfigurationsApi API from Instructure — 3 operation(s) for lti::toolconfigurationsapi.
The Lti::ToolConfigurationsApi API from Instructure — 3 operation(s) for lti::toolconfigurationsapi.
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