LTI Registrations
Welcome to Our New API Docs! This is the new home for all things API (previously at Canvas LMS REST API Documentation).
LTI Registrations API
BETA: This API resource is not finalized, and there could be breaking changes before its final release.
API for accessing and configuring LTI registrations in a root account. LTI Registrations can be any of:
1.3 Dynamic Registration
1.3 manual installation (via JSON, URL, or UI)
1.1 manual installation (via XML, URL, or UI)
The Dynamic Registration process uses a different API endpoint to finalize the process and create the registration. The Registration guide has more details on that process.
A Lti::Registration object looks like:
// A registration of an LTI tool in Canvas
{
// the Canvas ID of the Lti::Registration object
"id": 2,
// Tool-provided registration name
"name": "My LTI Tool",
// Admin-configured friendly display name
"admin_nickname": "My LTI Tool (Campus A)",
// Tool-provided URL to the tool's icon
"icon_url": "https://mytool.com/icon.png",
// Tool-provided name of the tool vendor
"vendor": "My Tool LLC",
// The Canvas id of the account that owns this registration
"account_id": 1,
// Flag indicating if registration is internally-owned
"internal_service": false,
// Flag indicating if registration is owned by this account, or inherited from
// Site Admin
"inherited": false,
// LTI version of the registration, either 1.1 or 1.3
"lti_version": "1.3",
// Flag indicating if registration was created using LTI Dynamic Registration.
// Only present if lti_version is 1.3
"dynamic_registration": false,
// The state of the registration
"workflow_state": "active",
// Timestamp of the registration's creation
"created_at": "2024-01-01T00:00:00Z",
// Timestamp of the registration's last update
"updated_at": "2024-01-01T00:00:00Z",
// The user that created this registration. Not always present. If a string,
// this registration was created by Instructure.
"created_by": {"type":"User"},
// The user that last updated this registration. Not always present. If a
// string, this registration was last updated by Instructure.
"updated_by": {"type":"User"},
// The Canvas id of the root account
"root_account_id": 1,
// The binding for this registration and this account
"account_binding": {"type":"Lti::RegistrationAccountBinding"},
// The Canvas-style tool configuration for this registration
"configuration": {"type":"Lti::ToolConfiguration"}
}A Lti::LegacyConfiguration object looks like:
A Lti::ToolConfiguration object looks like:
A Lti::LaunchSettings object looks like:
A Lti::Placement object looks like:
A Lti::Overlay object looks like:
A Lti::OverlayVersion object looks like:
A Lti::PlacementOverlay object looks like:
A ListLtiRegistrationsResponse object looks like:
A ContextSearchResponse object looks like:
A SearchableAccount object looks like:
A SearchableCourse object looks like:
Lti::RegistrationsController#list
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
GET /api/v1/accounts/:account_id/lti_registrations
Scope: url:GET|/api/v1/accounts/:account_id/lti_registrations
Returns all LTI registrations in the specified account. Includes registrations created in this account, those set to ‘allow’ from a parent root account (like Site Admin) and ‘on’ for this account, and those enabled ‘on’ at the parent root account level.
Request Parameters:
per_page
integer
The number of registrations to return per page. Defaults to 15.
page
integer
The page number to return. Defaults to 1.
sort
string
The field to sort by. Choices are: name, nickname, lti_version, installed, installed_by, updated_by, updated, and on. Defaults to installed.
dir
string
The order to sort the given column by. Defaults to desc.
Allowed values: asc, desc
include[]
string
Array of additional data to include. Always includes [account_binding].
“account_binding”
the registration’s binding to the given account
“configuration”
the registration’s Canvas-style tool configuration, without any overlays applied.
“overlaid_configuration”
the registration’s Canvas-style tool configuration, with all overlays applied.
“overlay”
the registration’s admin-defined configuration overlay
Example Request:
Returns a ListLtiRegistrationsResponse object.
Lti::RegistrationsController#show
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
GET /api/v1/accounts/:account_id/lti_registrations/:id
Scope: url:GET|/api/v1/accounts/:account_id/lti_registrations/:id
Return details about the specified LTI registration, including the configuration and account binding.
Request Parameters:
include[]
string
Array of additional data to include. Always includes [account_binding configuration].
“account_binding”
the registration’s binding to the given account
“configuration”
the registration’s Canvas-style tool configuration, without any overlays applied.
“overlaid_configuration”
the registration’s Canvas-style tool configuration, with all overlays applied.
“overlaid_legacy_configuration”
the registration’s legacy-style configuration, with all overlays applied.
“overlay”
the registration’s admin-defined configuration overlay
“overlay_versions”
the registration’s overlay’s edit history
Example Request:
Returns a Lti::Registration object.
Lti::RegistrationsController#create
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
POST /api/v1/accounts/:account_id/lti_registrations
Scope: url:POST|/api/v1/accounts/:account_id/lti_registrations
Create a new LTI Registration, as well as an associated Tool Configuration, Developer Key, and Registration Account binding. To install/create using Dynamic Registration, please use the Dynamic Registration API.
Request Parameters:
name
string
The name of the tool. If one isn’t provided, it will be inferred from the configuration’s title.
admin_nickname
string
A friendly nickname set by admins to override the tool name
vendor
string
The vendor of the tool
description
string
A description of the tool. Cannot exceed 2048 bytes.
configuration
string
Required, Lti::ToolConfiguration
overlay
string
Lti::Overlay
The overlay configuration for the tool. Overrides values in the base configuration.
unified_tool_id
string
The unique identifier for the tool, used for analytics. If not provided, one will be generated.
workflow_state
string
The desired state for this registration/account binding. “allow” is only valid for Site Admin registrations. Defaults to “off”.
Allowed values: on, off, allow
Example Request:
Returns a Lti::Registration object.
Lti::RegistrationsController#show_by_client_id
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
GET /api/v1/accounts/:account_id/lti_registration_by_client_id/:client_id
Scope: url:GET|/api/v1/accounts/:account_id/lti_registration_by_client_id/:client_id
Returns details about the specified LTI registration, including the configuration and account binding.
Example Request:
Returns a Lti::Registration object.
Lti::RegistrationsController#update
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
PUT /api/v1/accounts/:account_id/lti_registrations/:id
Scope: url:PUT|/api/v1/accounts/:account_id/lti_registrations/:id
Update the specified LTI registration with the provided parameters. Note that updating the base tool configuration of a registration that is associated with a Dynamic Registration will return a 422. All other fields can be updated freely.
Request Parameters:
name
string
The name of the tool
admin_nickname
string
The admin-configured friendly display name for the registration
description
string
A description of the tool. Cannot exceed 2048 bytes.
configuration
string
Lti::ToolConfiguration
overlay
string
Lti::Overlay
The overlay configuration for the tool. Overrides values in the base configuration. Note that updating the overlay of a registration associated with a Dynamic Registration IS allowed.
workflow_state
string
The desired state for this registration/account binding. “allow” is only valid for Site Admin registrations.
Allowed values: on, off, allow
comment
string
A comment explaining why this change was made. Cannot exceed 2000 characters.
Example Request:
Returns a Lti::Registration object.
Lti::RegistrationsController#reset
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
PUT /api/v1/accounts/:account_id/lti_registrations/:id/reset
Scope: url:PUT|/api/v1/accounts/:account_id/lti_registrations/:id/reset
Reset the specified LTI registration to its default settings in this context. This removes all customizations that were present in the overlay associated with this context.
Example Request:
Returns a Lti::Registration object.
Lti::RegistrationsController#destroy
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
DELETE /api/v1/accounts/:account_id/lti_registrations/:id
Scope: url:DELETE|/api/v1/accounts/:account_id/lti_registrations/:id
Remove the specified LTI registration
Example Request:
Returns a Lti::Registration object.
Lti::RegistrationsController#bind
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
POST /api/v1/accounts/:account_id/lti_registrations/:id/bind
Scope: url:POST|/api/v1/accounts/:account_id/lti_registrations/:id/bind
Enable or disable the specified LTI registration for the specified account. To enable an inherited registration (eg from Site Admin), pass the registration’s global ID.
Only allowed for root accounts.
Specifics for Site Admin: “on” enables and locks the registration on for all root accounts. “off” disables and hides the registration for all root accounts. “allow” makes the registration visible to all root accounts, but accounts must bind it to use it.
Specifics for centrally-managed/federated consortia: Child root accounts may only bind registrations created in the same account. For parent root account, binding also applies to all child root accounts.
Request Parameters:
workflow_state
Required string
The desired state for this registration/account binding. “allow” is only valid for Site Admin registrations.
Allowed values: on, off, allow
Example Request:
Lti::RegistrationsController#context_search
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
GET /api/v1/accounts/:account_id/lti_registrations/:registration_id/deployments/:deployment_id/context_search
Scope: url:GET|/api/v1/accounts/:account_id/lti_registrations/:registration_id/deployments/:deployment_id/context_search
This is a utility endpoint used by the Canvas Apps UI and may not serve general use cases.
Search for accounts and courses that match the search term on name, SIS id, or course code. Returns all matching accounts and courses, including those nested in sub-accounts. Returns bare-bones data about each account and course, and only up to 20 of each. Used to populate the search dropdowns when managing LTI registration availability.
Request Parameters:
only_children_of
string
Account ID. If provided, only searches within this account and only returns direct children of this account.
search_term
string
String to search for in account names, SIS ids, or course codes.
Example Request:
Returns a ContextSearchResponse object.
Lti::RegistrationsController#overlay_history
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
GET /api/v1/accounts/:account_id/lti_registrations/:id/overlay_history
Scope: url:GET|/api/v1/accounts/:account_id/lti_registrations/:id/overlay_history
Returns the overlay history items for the specified LTI registration.
Request Parameters:
limit
integer
The maximum number of history items to return. Defaults to 10. Maximum allowed is 100.
Example Request:
Returns a list of Lti::OverlayVersion objects.
Lti::RegistrationsController#history
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
GET /api/v1/accounts/:account_id/lti_registrations/:id/history
Scope: url:GET|/api/v1/accounts/:account_id/lti_registrations/:id/history
Returns the history entries for the specified LTI registration. This endpoint provides comprehensive change tracking for all fields associated with the registration, including registration fields, developer key changes, internal configuration changes, and overlay changes. Supports pagination using the ‘page` and `per_page` parameters. The default page size is 10.
Example Request:
Lti::RegistrationsController#apply_registration_update_request
BETA: This API endpoint is not finalized, and there could be breaking changes before its final release.
PUT /api/v1/accounts/:account_id/lti_registrations/:id/update_requests/:update_request_id/apply
Scope: url:PUT|/api/v1/accounts/:account_id/lti_registrations/:id/update_requests/:update_request_id/apply
Applies a registration update request to an existing registration, replacing the existing configuration and overlay with the new values. If the request is rejected, marks it as rejected without applying changes.
Request Parameters:
id
integer
The id of the registration to update.
update_request_id
integer
The id of the registration update request to apply.
accepted
Required boolean
Whether to accept (true) or reject (false) the registration update request.
overlay
LtiConfigurationOverlay
Optional overlay data to apply on top of the new configuration.
comment
string
Optional comment explaining the reason for applying this update.
Example Request:
Returns a Lti::Registration object.
This documentation is generated directly from the Canvas LMS source code, available on Github.
Last updated
Was this helpful?