The Learning Tools Interoperability® actions let an organization manage the LTI® registrations, deployments, and links available to particular organization units. Callers can use these routes to fetch, register, deploy, update, and remove entries for LTI tools and LTI links. Note that each created LTI link will have a unique D2LID assigned so you can identify a link independently of the org unit with which it’s registered; however, you cannot register a single LTI link with more than one org unit. Registrations and deployments can only be created at the organization. These routes apply to LTI 1.3+ only.
Note
These structures and routes apply only to LTI Advantage (LTI 1.3+). You can
also refer to the reference for legacy LTI support (LTI 1.1.x). The LTI API routes are fulfilled by the LE product component and
included in the LE API contract version. The ‘lti’ product component listed
in version blocks (such as Version.ProductVersions
) indicates the
level of LTI standard the platform supports, and not the API contract version
for these routes.
Attributes¶
- EXTENSION_T¶
LTI Advantage extensions can have values of a variety of data types; we use the term EXTENSION_T to stand in for an appropriate integer value:
Data type name
Value
AssignmentAndGradeServices
1
DeepLinking
2
NamesAndRoleProvisioningServices
3
(reserved for future use)
4
SubmissionReview
5
PlatformNotificationService
6
- LINK_TYPE_T¶
LTI Advantage Link types can have values of a variety of data types; we use the term LINK_TYPE_T to stand in for an appropriate integer value:
Data type name
Value
Basic
1
Widget
2
Quicklink
3
InsertStuff
4
- MIGRATION_STATUS_T¶
LTI Advantage migration job statuses can have values of a variety of data types; we use the term MIGRATION_STATUS_T to stand in for an appropriate integer value:
Data type name
Value
Queued
0
Processing
1
Complete
2
Error
3
Paused
4
Cancelled
5
- MIGRATION_TYPE_T¶
LTI Advantage migration job types can have values of a variety of data types; we use the term MIGRATION_TYPE_T to stand in for an appropriate integer value:
Data type name
Value
LinkApi
0
CopyCourse
1
ButtonUI
2
JobApi
3
- NOTICE_TYPE_T¶
LTI Advantage notice types of the Platform Notification Service can have values of a variety of data types; we use the term NOTICE_TYPE_T to stand in for an appropriate integer value:
Data type name
Value
LtiContextCopyNotice
1
Tool Registration¶
- LTI.CreateRegistrationData¶
When a client invokes an action to register or update an already registered LTI tool for an organization, it should provide a structure like this:
{ "IsEnabled": <boolean>, "Name": <string>, "Description": <string>|null, "Domain": <string>, "RedirectUrls": [ <string>, ... ], "OpenIDConnectLoginUrl": <string>, "KeysetUrl": <string>|null, "EnabledExtensions": [ <number:EXTENSION_T>, ... ], "SendInstitutionRole": <boolean>, "CustomParameters": [ { <composite:LTI.CustomParameters> }, ... ], "TargetLinkUri": <string>|null }
- CustomParameters
Pass any custom parameters as name-value pairs in this required property; if you need no custom parameters for this LTI link, you should provide an empty array. Supported custom parameters will show as Substitution Parameters in Brightspace.
- LTI.RegistrationData¶
When a client invokes an action that would retrieve the registration information for an LTI tool, the Learning Service sends back a structure like this:
{ "ClientId": <GUID>, "IsEnabled": <boolean>, "Name": <string>, "Description": <string>|null, "Domain": <string>, "RedirectUrls": [ <string>, ... ], "OpenIDConnectLoginUrl": <string>, "KeysetUrl": <string>, "EnabledExtensions": [ <number:EXTENSION_T>, ... ], "SendInstitutionRole": <boolean>, "BrightspaceAudience": <string>, "BrightspaceIssuer": <string>, "BrightspaceKeysetURL": <string>, "BrightspaceOAuth2AccessTokenURL": <string>, "BrightspaceOIDCAuthenticationEndpoint": <string>, "CustomParameters": [ { <composite:LTI.CustomParameters> }, ... ], "TargetLinkUri": <string>|null }
- Brightspace* properties
All the Brightspace* properties are Brightspace values that should be shared back to the tool.
Tool Deployment¶
- LTI.CreateDeploymentData¶
When a client invokes an action to deploy an LTI tool or update an already deployed LTI tool for an organization, it should provide a structure like this:
{ "ClientId": <GUID>, "IsEnabled": <boolean>, "Name": <string>, "Description": <string>|null, "EnabledExtensions": [ <number:EXTENSION_T>, ... ], "Anonymous": <boolean>, "SendOrgUnitInformation": <boolean>, "SendUserFirstName": <boolean>, "SendUserMiddleName": <boolean>, "SendUserLastName": <boolean>, "SendUserEmail": <boolean>, "SendD2LUserId": <boolean>, "SendD2LUsername": <boolean>, "SendD2LOrgDefinedId": <boolean>, "SendLinkTitle": <boolean>, "SendLinkDescription": <boolean>, "PreProvisioning": <boolean>, "CustomParameters": [ { <composite:LTI.CustomParameters> }, ... ], "OpenAsExternal": <boolean>, "IncludeInFinalGrade": <boolean>, "AutoMigrateLinks": <boolean>, // Added with LE API v1.67 "AutoCreateGrade": <boolean>, // Added with LE API v1.68, "EnabledNoticeTypes": [ <number:NOTICE_TYPE_T>, ... ] // Added with LE API v1.76 }
- ClientID
Identifies the Registration this deployment belongs to. When using this structure to update an existing Deployment, you must not provide a different value for this field (tool deployments should always remain associated with the registration they were originally created with).
- PreProvisioning
Security setting to send classlist including users not known to tool.
- CustomParameters
Pass any custom parameters as name-value pairs in this required property; if you need no custom parameters for this LTI link, you should provide an empty array. Supported custom parameters will show as Substitution Parameters in Brightspace.
- LTI.DeploymentData¶
When a client invokes an action that would retrieve the deployment information for an LTI tool, the Learning Service sends back a structure like this:
{ "DeploymentId": <GUID>, "ClientId": <GUID>, "IsEnabled": <boolean>, "Name": <string>, "Description": <string>|null, "EnabledExtensions ": [ <number:EXTENSION_T>, ... ], "AvailableExtensions": [ <number:EXTENSION_T>, ... ], "Anonymous": <boolean>, "SendOrgUnitInformation": <boolean>, "SendUserFirstName": <boolean>, "SendUserMiddleName": <boolean>, "SendUserLastName": <boolean>, "SendUserEmail": <boolean>, "SendD2LUserId": <boolean>, "SendD2LUsername": <boolean>, "SendD2LOrgDefinedId": <boolean>, "SendLinkTitle": <boolean>, "SendLinkDescription": <boolean>, "PreProvisioning": <boolean>, "IsAvailable": <boolean>, "CustomParameters": [ { <composite:LTI.CustomParameters> }, ... ], "OpenAsExternal": <boolean>, "IncludeInFinalGrade": <boolean>, "AutoMigrateLinks": <boolean>, // Added with LE API v1.67 "AutoCreateGrade": <boolean>, // Added with LE API v1.68 "EnabledNoticeTypes": [ <number:NOTICE_TYPE_T>, ... ] // Added with LE API v1.76 }
- PreProvisioning
Security setting to send classlist including users not known to tool.
- AvailableExtensions, EnableExtensions
For an extension to be active it must be in both the AvailableExtensions and EnabledExtensions lists.
Tool Deployment Sharing¶
- LTI.CreateSharingRuleData¶
When a client invokes an create a sharing rule that will make an LTI Deployment available to an org unit they should send this structure:
{ "SharingOrgUnitId": <number:D2LID>, "ShareWithOrgUnit": <boolean>, "ShareWithDescendants": <boolean> }
- LTI.UpdateSharingRuleData¶
When a client invokes an update a sharing rule that will make an LTI Deployment available to an org unit they should send this structure:
{ "ShareWithOrgUnit": <boolean>, "ShareWithDescendants": <boolean> }
- LTI.OrgUnitSharingRuleData¶
When a client invokes an action to retrieve the sharing information for an already registered LTI Deployment they will receive this structure:
{ "SharingOrgUnitId": <number:D2LID>, "ShareWithOrgUnit": <boolean>, "ShareWithDescendants": <boolean>, "Inherited": <boolean>|null }
- Inherited
Determines if an org unit has been shared to by having a parent that is shared with all descendants.
Links¶
- LTI.CreateLTIAdvantageLinkData¶
When a client invokes an action to create or update an existing LTI Advantage Link, it should provide a structure like this:
{ "DeploymentId": <GUID>, "IsEnabled": <boolean>, "Name": <string>, "Description": <string>|null, "URL": <string>, "Type": <number:LINK_TYPE_T>, "Height": <int>|null, "Width": <int>|null, "CustomParameters": [ { <composite:LTI.CustomParameters> }, ... ] }
- CustomParameters
Pass any custom parameters as name-value pairs in this required property; if you need no custom parameters for this LTI link, you should provide an empty array. Supported custom parameters will show as Substitution Parameters in Brightspace.
- LTI.LTIAdvantageLinkData¶
When a client invokes an action that would retrieve an LTI Advantage Link, the Learning Service sends back a structure like this:
{ "LinkId": <D2LID>, "DeploymentId": <GUID>, "IsEnabled": <boolean>, "Name": <string>, "Description": <string>|null, "URL": <string>, "Type": <number:LINK_TYPE_T>, "Height": <int>|null, "Width": <int>|null, "CustomParameters": null|[ { <composite:LTI.CustomParameters> }, ... ], "IsAvailable": <boolean>, "OwnerOrgUnitId": <D2LID> }
- IsAvailable
Deployment and Registration are enabled, the Deployment is shared to the OwnerOrgUnitId, and DeepLinking is enabled at the Registration and Deployment for Quicklink and InsertStuff.
- LTI.CustomParameters¶
When a client invokes an action that would retrieve an LTI Advantage Link, the Learning Service sends back a structure like this for the link’s CustomParameters:
{ "Name": <string>, "Value": <string> }
- LTI.LTIAdvantageLinkDataSummary¶
When a client invokes an action that would retrieve an LTI Advantage Link Summary, the Learning Service sends back a structure like this:
{ "LinkId": <D2LID>, "IsEnabled": <boolean>, "URL": <string>, "Type": <number:LINK_TYPE_T>, "OwnerOrgUnitId": <D2LID> }
- LTI.QuicklinkData¶
When a client creates a new quicklink around an existing LTI Advantage link, the service returns a structure like this to describe the new quicklink:
{ "LinkId": <D2LID>, "PublicUrl": <string> }
- PublicUrl
This property contains the URL location for the new quicklink.
Migration¶
- LTI.MigrationData¶
When a client invokes an action to migrate a 1.1 LTI link to an LTI Advantage link, they should send this structure:
{ "DeploymentId": <GUID>, "ToolProviderId": <number:D2LID>|null, }
- DeploymentId
Identifies the target LTI Advantage deployment to which the back-end service will seek to migrate the link.
- ToolProviderId
If you provide a Tool Provider identifier for this propery, the back-end service uses domain matching to ensure that the domain of the link matches your specified Tool Provider’s domain.
If you provide null for this property, the back-end service assumes that link has its own key and secret to authenticate launches, and will not check the domain of the link against any other domain.
- LTI.MigrationJobData¶
When a client invokes an action to migrate all legacy LTI links to LTI Advantage links for an org unit, they should send this structure:
{ "OrgUnitId": <number:D2LID> }
- LTI.MigrationJob¶
When a client invokes an action to migrate all legacy LTI links to LTI Advantage links for an org unit, they should receive this structure:
{ "JobId": <number:D2LID> }
- LTI.MigrationJobStatus¶
When a client invokes an action to view an LTI migration job, they should receive this structure:
{ "JobId": <number:D2LID>, // Added with LMS v20.23.3 "Status": <number:MIGRATION_STATUS_T>, "OrgUnitId": <number:D2LID>, "Counts": { "Success": <number>, "Failure": <number>, "NoDomainMatch": <number> }, "MigrationType": <number:MIGRATION_TYPE_T>, "QueueDate": <string:UTCDateTime>|null, // Added with LMS v20.23.3 "StartDate": <string:UTCDateTime>|null, // Added with LMS v20.23.3 "CompleteDate": <string:UTCDateTime>|null // Added with LMS v20.23.3 }
Actions¶
Tool Registration¶
- DELETE /d2l/api/le/(version)/ltiadvantage/registration/(clientId)¶
Remove an LTI Advantage registration.
- Parameters:
version (D2LVERSION) – API version.
clientId (GUID) – Client ID.
- Oauth2 Scopes:
ltiadvantage:registrations:delete
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage registrations.
404 Not Found – No such registration found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Note
A registration may only be deleted if it is not tied to any deployments.
- GET /d2l/api/le/(version)/ltiadvantage/registration/¶
Retrieve the information for all LTI registrations for the organization.
- Parameters:
version (D2LVERSION) – API version.
- Query Parameters:
isEnabled (boolean) – Optional. Used to limit registrations based on IsEnabled status.
- Oauth2 Scopes:
ltiadvantage:registrations:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage registrations.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns an
ObjectListPage
JSON block containing a list ofregistrations
belonging to the organization.
- GET /d2l/api/le/(version)/ltiadvantage/registration/(clientId)¶
Retrieve the information for a particular LTI registration.
- Parameters:
version (D2LVERSION) – API version.
clientId (GUID) – Client ID.
- Oauth2 Scopes:
ltiadvantage:registrations:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage registrations.
404 Not Found – No such registration found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Registration
JSON block containing the data associated with the matching LTI registration.
- GET /d2l/api/le/(version)/ltiadvantage/registration/(clientId)/legacydomains/¶
Retrieve the domain names for migration-routing in provided LTI tool registration.
- Parameters:
version (D2LVERSION) – API version.
clientId (GUID) – Client ID.
- Oauth2 Scopes:
ltiadvantage:registrations:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to see migration domain names for LTI tool registration.
404 Not Found – No such LTI tool registration.
- API Versions:
1.68+ – Route first appears in LMS v20.24.4.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns an array of domain name strings configured for a particular LTI tool registration that will match against legacy LTI tool configurations during migration into LTI Advantage.
- POST /d2l/api/le/(version)/ltiadvantage/registration/¶
Register a new LTI tool for the organization.
- Parameters:
version (D2LVERSION) – API version.
- JSON Parameters:
CreateRegistrationData (
LTI.CreateRegistrationData
) – Data for new LTI registration.
- Oauth2 Scopes:
ltiadvantage:registrations:create
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to register tool, or bad registration data provided.
403 Forbidden – No permission to manage registrations.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Registration
JSON block containing the data associated with the newly created LTI registratation.
- POST /d2l/api/le/(version)/ltiadvantage/registration/(clientId)/legacydomains/¶
Add a domain name to be used for migration-routing for a provided LTI tool.
- Parameters:
version (D2LVERSION) – API version.
clientId (GUID) – Client ID for the registered LTI tool.
- Oauth2 Scopes:
ltiadvantage:registrations:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Domain name already in use for the provided, or another, LTI tool.
403 Forbidden – No permission to update migration domain names for LTI tool.
404 Not Found – No such LTI tool registration.
- API Versions:
1.68+ – Route first appears in LMS v20.24.4.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Input. The action’s body should be a JSON string with a value of a valid URL identifying the replacement domain to apply to the LTI tool registration; this will add a new domain to the list of domain name strings that will match against legacy LTI tool configurations during migration into LTI Advantage for this registered tool.
- PUT /d2l/api/le/(version)/ltiadvantage/registration/(clientId)¶
Update the information associated with an LTI tool registration.
- Parameters:
version (D2LVERSION) – API version.
clientId (GUID) – Client ID.
- JSON Parameters:
CreateRegistrationData (
LTI.CreateRegistrationData
) – Updated data for LTI link.
- Oauth2 Scopes:
ltiadvantage:registrations:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to update LTI registration data.
403 Forbidden – No permission to manage registrations.
404 Not Found – No such registration found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Registration
JSON block containing the updated data for the tool registration.
- PUT /d2l/api/le/(version)/ltiadvantage/registration/(clientId)/legacydomains/¶
Update the domain names to be used for migration routing for a provided LTI tool.
- Parameters:
version (D2LVERSION) – API version.
clientId (GUID) – Client ID for the registered LTI tool.
- Oauth2 Scopes:
ltiadvantage:registrations:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Domain name already in use for the provided, or another, LTI tool.
403 Forbidden – No permission to update migration domain names for LTI tool.
404 Not Found – No such LTI tool registration.
- API Versions:
1.68+ – Route first appears in LMS v20.24.4.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Input. The action’s body should be a JSON array containing a list of valid URL strings identifying the list of domain name strings that will match against legacy LTI tool configurations during migration into LTI Advantage for this registered tool.
Tool Deployment¶
- DELETE /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)¶
Remove an LTI Advantage deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
- Oauth2 Scopes:
ltiadvantage:deployments:delete
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Deployment is tied to links.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Note
A LTI tool deployment may only be deleted if it is not tied to any links.
- GET /d2l/api/le/(version)/ltiadvantage/deployment/¶
Retrieve the information for all LTI deployments for the organization.
- Parameters:
version (D2LVERSION) – API version.
- Query Parameters:
clientId (GUID) – Optional. Used to limit deployments based on ClientId value.
isEnabled (boolean) – Optional. Used to limit deployments based on IsEnabled status.
isAvailable (boolean) – Optional. Used to limit deployments based on IsAvailable status.
- Oauth2 Scopes:
ltiadvantage:deployments:read
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Bad query parameters provided.
403 Forbidden – No permission to manage deployments.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns an
ObjectListPage
JSON block containing a list of LTI tooldeployments
belonging to the organization.
- GET /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)¶
Retrieve the information for a particular LTI tool deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
- Oauth2 Scopes:
ltiadvantage:deployments:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Deployment
JSON block containing the data associated with the matching LTI tool deployment.
- POST /d2l/api/le/(version)/ltiadvantage/deployment/¶
Create a new LTI tool deployment for the organization.
- Parameters:
version (D2LVERSION) – API version.
- JSON Parameters:
CreateDeploymentData (
LTI.CreateDeploymentData
) – Data for new LTI tool deployment.
- Oauth2 Scopes:
ltiadvantage:deployments:create
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to deploy tool, or bad deployment data provided.
403 Forbidden – No permission to manage deployments.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Deployment
JSON block containing the data associated with the newly created LTI tool deployment.
- PUT /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)¶
Update the information associated with an LTI tool deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
- JSON Parameters:
CreateDeploymentData (
LTI.CreateDeploymentData
) – Updated data for LTI tool deployment.
- Oauth2 Scopes:
ltiadvantage:deployments:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to update deployment, or bad deployment data provided.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Input. While you provide an
CreateDeploymentData
JSON block when using this action to update an LTI tool deployment, you should not provide a different ClientID value for your updated tool deployment. Tool deployments should always remain with the registration they were originally created with.Return. This action returns a
Deployment
JSON block containing the updated data for the LTI tool deployment.
Tool Deployment Sharing¶
- DELETE /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)/sharing/¶
Delete all sharing rules for a particular LTI deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
- Oauth2 Scopes:
ltiadvantage:deployments:update
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found registered for org.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
- DELETE /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)/sharing/(sharingOrgUnitId)¶
Delete the sharing rule for a particular org unit and LTI deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
sharingOrgUnitId (D2LID) – Org unit ID the deployment is shared to.
- Oauth2 Scopes:
ltiadvantage:deployments:update
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found registered for org or no sharing rule for org unit.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
- GET /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)/sharing/¶
Retrieve the sharing rules for a particular LTI deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
- Query Parameters:
incldueInherited (boolean) – Optional. Used to include org units shared by inheritence.
orgUnitId (D2LID) – Optional. Used to limit to a single org unit.
- Oauth2 Scopes:
ltiadvantage:deployments:read
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Deployment is shared to all children under the org.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found registered for org.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns an
ObjectListPage
JSON block containing a list ofOrgUnitSharingRuleData
for the deployment.
- POST /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)/sharing/¶
Add a sharing rule for a particular LTI deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
- JSON Parameters:
CreateSharingRuleData (
LTI.CreateSharingRuleData
) – Data for a new or updated sharing rule.
- Oauth2 Scopes:
ltiadvantage:deployments:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Sharing rule for the provided sharingOrgUnitId already exists.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found registered for org.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
CreateSharingRuleData
JSON block containing the data associated with the newly registered sharing rule.
- PUT /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)/sharing/(sharingOrgUnitId)¶
Update the sharing rule for a particular org unit and LTI tool deployment.
- Parameters:
version (D2LVERSION) – API version.
deploymentId (GUID) – Deployment ID.
sharingOrgUnitId (D2LID) – Org unit ID the deployment is shared to.
- JSON Parameters:
UpdateSharingRuleData (
LTI.UpdateSharingRuleData
) – Data for a new or updated sharing rule.
- Oauth2 Scopes:
ltiadvantage:deployments:update
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found registered for org or no sharing rule for the sharingOrgUnitId.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
CreateSharingRuleData
JSON block containing the data associated with the newly updated sharing rule.
Links¶
- DELETE /d2l/api/le/(version)/ltiadvantage/links/orgunit/(orgUnitId)/(linkId)¶
Remove an LTI Advantage link.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org Unit ID.
linkId (D2LID) – Link ID.
- Oauth2 Scopes:
ltiadvantage:links:delete
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage external learning tool links or Delete External Learning Tool Links.
404 Not Found – No such link found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
- GET /d2l/api/le/(version)/ltiadvantage/deployment/(deploymentId)/links/summaries/¶
Retrieve the summaries for all LTI Advantage links for the deployment.
- Parameters:
version (D2LVERSION) – API version.
- Query Parameters:
isEnabled (boolean) – Optional. Used to limit links based on IsEnabled status.
orgUnitOnly (boolean) – Optional. When true only links that are owned by an orgUnit are returned.
- Oauth2 Scopes:
ltiadvantage:links:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such deployment found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns an
ObjectListPage
JSON block containing a list ofLink Summaries
belonging to the deployment.
- GET /d2l/api/le/(version)/ltiadvantage/links/organization/¶
Retrieve the information for all LTI Advantage links for the organization.
- Parameters:
version (D2LVERSION) – API version.
- Query Parameters:
deploymentId (GUID) – Optional. Used to limit links based on deployment.
isEnabled (boolean) – Optional. Used to limit links based on IsEnabled status.
IsAvailable (boolean) – Optional. Used to limit links based on IsAvailable status.
type (LINK_TYPE_T) – Optional. Used to limit links based on Type.
- Oauth2 Scopes:
ltiadvantage:links:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage deployments.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns an
ObjectListPage
JSON block containing a list ofLinks
belonging to the organization.
- GET /d2l/api/le/(version)/ltiadvantage/links/organization/(linkId)¶
Retrieve the information for a particular LTI Advantage organization link.
- Parameters:
version (D2LVERSION) – API version.
linkId (D2LID) – Link ID.
- Oauth2 Scopes:
ltiadvantage:links:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such link found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Link
JSON block containing the data associated with the matching LTI Advantage link.
- GET /d2l/api/le/(version)/ltiadvantage/links/orgunit/(orgUnitId)/¶
Retrieve the information for all LTI Advantage links within the scope of an org unit.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org Unit ID.
- Query Parameters:
deploymentId (GUID) – Optional. Used to limit links based on deployment.
isEnabled (boolean) – Optional. Used to limit links based on IsEnabled status.
IsAvailable (boolean) – Optional. Used to limit links based on IsAvailable status.
type (LINK_TYPE_T) – Optional. Used to limit links based on Type.
- Oauth2 Scopes:
ltiadvantage:links:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage external learning tool links or create external learning tool links from external learning tool providers or create quicklinks from available external learning tools links.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns an
ObjectListPage
JSON block containing a list ofLinks
belonging to the org unit.
- GET /d2l/api/le/(version)/ltiadvantage/links/orgunit/(orgUnitId)/(linkId)¶
Retrieve the information for a particular LTI Advantage link.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org Unit ID.
linkId (D2LID) – Link ID.
- Oauth2 Scopes:
ltiadvantage:links:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to manage external learning tool links or create external learning tool links from external learning tool providers or create quicklinks from available external learning tools links.
404 Not Found – No such link found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Link
JSON block containing the data associated with the matching LTI Advantage link.
- POST /d2l/api/le/(version)/ltiadvantage/links/organization/¶
Create a new LTI Advantage link for the organization.
- Parameters:
version (D2LVERSION) – API version.
- JSON Parameters:
CreateLTIAdvantageLinkData (
LTI.CreateLTIAdvantageLinkData
) – Data for new LTI Advantage link.
- Oauth2 Scopes:
ltiadvantage:links:create
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to create link, or bad link data provided.
403 Forbidden – No permission to manage deployments.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Link
JSON block containing the data associated with the newly created LTI Advantage link.
- POST /d2l/api/le/(version)/ltiadvantage/links/orgunit/(orgUnitId)/¶
Create a new LTI Advantage link for an org unit.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org Unit ID.
- JSON Parameters:
CreateLTIAdvantageLinkData (
LTI.CreateLTIAdvantageLinkData
) – Data for new LTI Advantage link.
- Oauth2 Scopes:
ltiadvantage:links:create
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to create link, or bad link data provided.
403 Forbidden – No permission to manage external learning tool links or create external learning tool links from external learning tool providers.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Link
JSON block containing the data associated with the newly created LTI Advantage link.
- POST /d2l/api/le/(apiVersion)/ltiadvantage/quicklinks/orgunit/(orgUnitId)/link/(linkId)¶
Build a new quicklink around an existing LTI Advantage link.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
linkId (D2LID) – Link ID.
- Oauth2 Scopes:
ltiadvantage:quicklinks:create
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to create new quicklink.
403 Forbidden – No permission to create new quicklink.
404 Not Found – No such link found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Input. Provide an empty post body.
Return. This action returns a
Quicklink
JSON block containing the details for the new quicklink.
- PUT /d2l/api/le/(version)/ltiadvantage/links/organization/(linkId)¶
Update the information associated with an LTI Advantage link.
- Parameters:
version (D2LVERSION) – API version.
linkId (D2LID) – Link ID.
- JSON Parameters:
CreateLTIAdvantageLinkData (
LTI.CreateLTIAdvantageLinkData
) – Updated data for LTI link.
- Oauth2 Scopes:
ltiadvantage:links:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to update LTI Advantage link data.
403 Forbidden – No permission to manage deployments.
404 Not Found – No such link found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Link
JSON block containing the updated data for the LTI Advantage link.
- PUT /d2l/api/le/(version)/ltiadvantage/links/orgunit/(orgUnitId)/(linkId)¶
Update the information associated with an LTI Advantage link.
- Parameters:
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org Unit ID.
linkId (D2LID) – Link ID.
- JSON Parameters:
CreateLTIAdvantageLinkData (
LTI.CreateLTIAdvantageLinkData
) – Updated data for LTI link.
- Oauth2 Scopes:
ltiadvantage:links:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to update LTI Advantage link data.
403 Forbidden – No permission to manage external learning tool links or create external learning tool links from external learning tool providers.
404 Not Found – No such link found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Return. This action returns a
Link
JSON block containing the updated data for the LTI Advantage link.
Migration¶
- GET /d2l/api/le/(version)/ltiadvantage/migration/jobs/¶
Retrieve the status of all LTI migration jobs.
- Parameters:
version (D2LVERSION) – API version.
- Query Parameters:
orgUnitId (D2LID) – Optional. Used to limit jobs based on org unit.
status (MIGRATION_STATUS_T) – Optional. Used to limit jobs based on status.
migrationType (MIGRATION_TYPE_T) – Optional. Used to limit jobs based on migration type.
startDate (UTCDateTime) – Optional. Used to limit jobs to those that started at or after startDate.
endDate (UTCDateTime) – Optional. Used to limit jobs to those that started at or before startDate.
- Oauth2 Scopes:
ltiadvantage:migrationjob:view
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to view or manage LTI migrations.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.69+ – Route first appears in LMS v20.23.3.
Return. This action returns an
ObjectListPage
JSON block containing a list ofmigration jobs
belonging to the organization.
- GET /d2l/api/le/(version)/ltiadvantage/migration/jobs/(jobId)¶
Retrieve the status of an LTI migration job.
- Parameters:
version (D2LVERSION) – API version.
jobId (D2LID) – Job Id.
- Oauth2 Scopes:
ltiadvantage:migrationjob:view
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to view or manage LTI migration job.
404 Not Found – No such migration job found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.66 – Deprecated as of LMS v20.24.1.
Return. This action returns a
MigrationJobStatus
JSON block containing the data for the LTI migration job.
- POST /d2l/api/le/(version)/ltiadvantage/migration/links/(linkId)¶
Migrate a legacy LTI link to an LTI Advantage link.
- Parameters:
version (D2LVERSION) – API version.
linkId (D2LID) – Link ID.
- JSON Parameters:
MigrationData (
MigrationData
) – Migration directions for link.
- Oauth2 Scopes:
ltiadvantage:links:update
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Unable to migrate link.
403 Forbidden – No permission to manage LTI migrations.
404 Not Found – No such link found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.61-66 – Deprecated as of LMS v20.24.1.
1.60- – Obsolete as of LMS v20.24.1.
Input. The action’s body should be a
MigrationData
JSON data block identifying the target deployment to receive the migrated link, and the Tool Provider governing the link if the link does not have its own key and secret.Return. This action returns an empty body.
Note
Before migrating a link from legacy LTI to LTI Advantage, you should verify with the respective LTI Tool that it will properly support the link after migration.
- POST /d2l/api/le/(version)/ltiadvantage/migration/jobs/¶
Create a migration job to attempt migration of all legacy LTI links to LTI Advantage links for an org unit.
- Parameters:
version (D2LVERSION) – API version.
- JSON Parameters:
MigrationJobData (
MigrationJobData
) – Migration job info.
- Oauth2 Scopes:
ltiadvantage:migrationjob:manage
- Status Codes:
202 Accepted – Action succeeded.
400 Bad Request – Unable to create migrate job for org unit.
403 Forbidden – No permission to manage LTI migrations.
404 Not Found – No such org unit found.
429 Too Many Requests – API call-rate limit exceeded.
- API Versions:
1.67+ – Route first appears in LMS v20.23.1.
1.66 – Deprecated as of LMS v20.24.1.
Input. The action’s body should be a
MigrationJobData
JSON data block identifying the target org unit to create the migration job for.Return. This action returns a
MigrationJob
JSON block containing the data for the LTI migration job created. If a migration job was already queued or in progress, the returned data will match the pre-exising job.Note
Legacy LTI links require an enabled registration where the link URL matches the registration domain (or one of the
mapped legacy domains
for that registration), as well as an enabled deployment shared to the org unit for the migration job in order for a link to be migrated. Before migrating links from legacy LTI to LTI Advantage, you should verify with the respective LTI Tool that it will properly support the link after migration.