Instructure Lti::IMS::DynamicRegistration API
The Lti::IMS::DynamicRegistration API from Instructure — 3 operation(s) for lti::ims::dynamicregistration.
The Lti::IMS::DynamicRegistration API from Instructure — 3 operation(s) for lti::ims::dynamicregistration.
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&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)