Contents
The LTI actions let an organization manage the LTI tool providers and links available to particular organization units. Callers can use these routes to fetch, register (create), update, and remove entries for LTI tool providers and LTI links. Note that each created LTI tool provider registration will have a unique D2LID assigned (and so will each created LTI link), so you can identify a tool provider or link independently of the org unit with which it’s registered; however, you cannot register a single LTI tool provider or link with more than one org unit.
Note
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¶
-
LTI.
CreateLtiLinkData
¶ When a client invokes an action to register or update an already registered LTI link for an org unit, it should provide a structure like this:
{ "Title": <string>, "Url": <string>, "Description": <string>, "Key": <string>, "PlainSecret": <string>, "IsVisible": <boolean>, "SignMessage": <boolean>, "SignWithTc": <boolean>, "SendTcInfo": <boolean>, "SendContextInfo": <boolean>, "SendUserId": <boolean>, "SendUserName": <boolean>, "SendUserEmail": <boolean>, "SendLinkTitle": <boolean>, "SendLinkDescription": <boolean>, "SendD2LUserName": <boolean>, "SendD2LOrgDefinedId": <boolean>, "SendD2LOrgRoleId": <boolean>, "UseToolProviderSecuritySettings": <boolean>, "CustomParameters": null|[ <LTI.CustomParameter>, ... ] }
- CustomParameters
Any custom parameters will get passed as name-value pairs in this property; if no custom parameters are needed for this LTI link, this property will be null.
- UseToolProviderSecuritySettings
If true, then this link will use all the Send* properties defined for the associated Tool Provider entry (as determined by URL matching against Tool Provider definitions).
-
LTI.
CustomParameter
¶ Encapsulates a custom LTI parameter in a name-value pair.
{ "Name": <string>, "Value": <string> }
-
LTI.
LtiLinkData
¶ When a client invokes an action that would retrieve the registration information for an LTI link, the Learning Service sends back a structure like this:
{ "LtiLinkId": <number:D2LID>, "Title": <string>, "Url": <string>, "Description": <string>, "Key": <string>, "IsVisible": <boolean>, "SignMessage": <boolean>, "SignWithTc": <boolean>, "SendTcInfo": <boolean>, "SendContextInfo": <boolean>, "SendUserId": <boolean>, "SendUserName": <boolean>, "SendUserEmail": <boolean>, "SendLinkTitle": <boolean>, "SendLinkDescription": <boolean>, "SendD2LUserName": <boolean>, "SendD2LOrgDefinedId": <boolean>, "SendD2LOrgRoleId": <boolean>, "UseToolProviderSecuritySettings": <boolean>, "CustomParameters": null|[ <LTI.CustomParameter>, ... ] }
- UseToolProviderSecuritySettings
If true, then this link will use all the Send* properties defined for the associated Tool Provider entry (as determined by URL matching against Tool Provider definitions). Assumed to be False, by default.
-
LTI.
LtiQuickLinkData
¶ When a client creates a new quicklink around an existing LTI link, the service returns a structure like this to describe the new quicklink:
{ "LtiLinkId": <number:D2LID>, "PublicUrl": <string> }
- PublicUrl
This property contains the URL location for the new quicklink.
-
LTI.
CreateLtiProviderData
¶ When a client invokes an action to register or update an already registered LTI tool provider for an org unit, it should provide a structure like this:
{ "LaunchPoint": <string>, "Secret": <string>, "UseDefaultTcInfo": <boolean>, "Key": <string>, "Name": <string>, "Description": <string>, "ContactEmail": <string>, "IsVisible": <boolean>, "SendTcInfo": <boolean>, "SendContextInfo": <boolean>, "SendUserId": <boolean>, "SendUserName": <boolean>, "SendUserEmail": <boolean>, "SendLinkTitle": <boolean>, "SendLinkDescription": <boolean>, "SendD2LUserName": <boolean>, "SendD2LOrgDefinedId": <boolean>, "SendD2LOrgRoleId": <boolean>, }
- Send* properties
The list of Send* properties allow these security settings defined at the Tool Provider level to override security settings defined with any of the associated LTI Link definitions (as determined by matching LTI link Url properties aginst the Tool Provider’s LaunchPoint property).
-
LTI.
LtiToolProviderData
¶ When a client invokes an action that would retrieve the registration information for an LTI tool provider, the Learning Service sends back a structure like this:
{ "LtiToolProviderId": <number:D2LID>, "OrgUnitId": <number:D2LID>, "LaunchPoint": <string>, "UseDefaultTcInfo": <boolean>, "Key": <string>, "Name": <string>, "Description": <string>, "ContactEmail": <string>, "IsVisible": <boolean>, "SendTcInfo": <boolean>, "SendContextInfo": <boolean>, "SendUserId": <boolean>, "SendUserName": <boolean>, "SendUserEmail": <boolean>, "SendLinkTitle": <boolean>, "SendLinkDescription": <boolean>, "SendD2LUserName": <boolean>, "SendD2LOrgDefinedId": <boolean>, "SendD2LOrgRoleId": <boolean>, }
- Send* properties
The list of Send* properties allow these security settings defined at the Tool Provider level to override security settings defined with any of the associated LTI Link definitions (as determined by matching LTI link Url properties against the Tool Provider’s LaunchPoint property).
-
LTI.
CreateSharingRule
¶ When a client invokes an action to create or update an already registered LTI Tool Provider to be shared to another org unit they should send this structure:
{ "SharingOrgUnitId": <number:D2LID>, "ShareWithOrgUnit": <boolean>, "ShareWithDescendants": <boolean> }
- SharingOrgUnitId
The org unit to share the tool provider to; the org unit must be a descendant of the org unit that the tool provider was created in.
- ShareWithOrgUnit
Determines if the tool provider is shared with the SharingOrgUnitId.
- ShareWithDescendants
Determines if the tool provider is shared with all descendants of the SharingOrgUnitId.
-
LTI.
SharingRuleWithDescendantTypes
¶ When a client invokes an action to retrieve the sharing information for an already registered LTI Tool Provider they will receive this structure:
{ "SharingOrgUnitId": <number:D2LID>, "ShareWithOrgUnit": <boolean>, "ShareWithDescendants": <boolean>, "DescendantsTypes: null | [<OrgUnitTypeId>, ...]" }
- SharingOrgUnitId
The org unit that the tool provider is shared with.
- ShareWithOrgUnit
Determines if the tool provider is shared with the SharingOrgUnitId.
- ShareWithDescendants
Determines if the tool provider is shared with descendants of the SharingOrgUnitId.
- DescendantsTypes
A list of org unit types that this tool provider is shared with or null if the tool provider is shared with all descendant org units.
-
LTI.
UpdateSharingRule
¶ When a client invokes an action to update the sharing rule of an LTI Tool Provider they should send this structure:
{ "ShareWithOrgUnit": <boolean>, "ShareWithDescendants": <boolean> }
- ShareWithOrgUnit
Determines if the tool provider is shared with the SharingOrgUnitId.
- ShareWithDescendants
Determines if the tool provider is shared with all descendants of the SharingOrgUnitId.
Actions¶
LTI Links¶
-
DELETE
/d2l/api/le/
(version)/lti/link/
(ltiLinkId)¶ Remove an LTI link.
- Parameters
version (D2LVERSION) – API version.
ltiLinkId (D2LID) – LTI link ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage LTI links.
404 Not Found – No such link found.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
-
GET
/d2l/api/le/
(version)/lti/link/
(orgUnitId)/
¶ Retrieve the information for all LTI links registered for an org unit.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage LTI links.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a JSON array of
LtiLinkData
data blocks, containing the details for all the LTI links registered for the provided org unit.
-
GET
/d2l/api/le/
(version)/lti/link/
(orgUnitId)/
(ltiLinkId)¶ Retrieve the information for a particular LTI link.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
ltiLinkId (D2LID) – LTI link ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage LTI links.
404 Not Found – No such link found.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a
LtiLinkData
JSON block containing the data associated with the matching LTI link.
-
POST
/d2l/api/le/
(version)/lti/link/
(orgUnitId)¶ Register a new LTI link for an org unit.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- JSON Parameters
CreateLtiLinkData (
LTI.CreateLtiLinkData
) – Data for new LTI link.
- Status Codes
200 OK – Action succeeded.
400 Bad Request – Unable to register link, or bad link data provided.
403 Forbidden – No permission to manage LTI links.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a
LtiLinkData
JSON block containing the data associated with the newly registered LTI link.
-
POST
/d2l/api/le/
(version)/lti/quicklink/
(orgUnitId)/
(ltiLinkId)¶ Build a new quicklink around an existing LTI link.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
ltiLinkId (D2LID) – LTI link ID.
- Status Codes
200 OK – Action succeeded.
400 Bad Request – Unable to create new quicklink.
403 Forbidden – No permission to create quicklink.
404 Not Found – No such link found.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Input. Provide an empty post body. You should ensure that your request includes a Content-Length: 0 HTTP header value (some HTTP client libraries may neglect to do this with empty post calls).
Return. This action returns a
LtiQuickLinkData
JSON block containing the details for the new quicklink.
-
PUT
/d2l/api/le/
(version)/lti/link/
(ltiLinkId)¶ Update the information associated with a registered LTI link.
- Parameters
version (D2LVERSION) – API version.
ltiLinkId (D2LID) – LTI link ID.
- JSON Parameters
CreateLtiLinkData (
LTI.CreateLtiLinkData
) – Updated data for LTI link.
- Status Codes
200 OK – Action succeeded.
400 Bad Request – Unable to update LTI link data.
403 Forbidden – No permission to manage LTI links.
404 Not Found – No such link found.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a
LtiLinkData
JSON block containing the updated data for the tool provider.
LTI Links Sharing¶
-
DELETE
/d2l/api/le/
(version)/lti/link/
(orgUnitId)/
(linkId)/sharing/
¶ Delete all sharing rules for a particular LTI link.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
linkId (D2LID) – Link ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage LTI.
404 Not Found – No such link found registered for org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
-
DELETE
/d2l/api/le/
(version)/lti/link/
(orgUnitId)/
(linkId)/sharing/
(sharingOrgUnitId)¶ Delete the sharing rule for a particular org unit and LTI link.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
linkId (D2LID) – Link ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage LTI.
404 Not Found – No such link found registered for org unit or no sharing rule for sharing org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
-
GET
/d2l/api/le/
(version)/lti/link/
(orgUnitId)/
(linkId)/sharing/
¶ Retrieve the sharing rules for a particular LTI link.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
linkId (D2LID) – Link ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage LTI.
404 Not Found – No such link found registered for org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
Return. This action returns a list of
SharingRuleWithDescendantTypes
JSON blocks containing the data associated with the matching LTI link.
-
POST
/d2l/api/le/
(version)/lti/link/
(orgUnitId)/
(linkId)/sharing/
¶ Add a sharing rule for a particular LTI link.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
linkId (D2LID) – Link ID.
- JSON Parameters
CreateSharingRule (
LTI.CreateSharingRule
) – Data for a new or updated sharing rule.
- Status Codes
200 OK – Action succeeded.
400 Bad Request – Sharing rule for the provided sharingOrgUnitId already exists.
403 Forbidden – No permission to manage LTI.
404 Not Found – No such link found registered for org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
Return. This action returns a
CreateSharingRule
JSON block containing the data associated with the newly registered sharing rule.
-
PUT
/d2l/api/le/
(version)/lti/link/
(orgUnitId)/
(linkId)/sharing/
(sharingOrgUnitId)¶ Update the sharing rule for a particular org unit and LTI link.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
linkId (D2LID) – Link ID.
sharingOrgUnitId (D2LID) – Org unit ID the link is shared to.
- JSON Parameters
UpdateSharingRule – Data for a new or updated sharing rule.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage LTI.
404 Not Found – No such link found registered for org unit or no sharing rule for the sharingOrgUnitId.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
Return. This action returns a
CreateSharingRule
JSON block containing the data associated with the newly updated sharing rule.
LTI Tool Providers¶
-
DELETE
/d2l/api/le/
(version)/lti/tp/
(tpId)¶ Remove the registration for an LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
tpId (D2LID) – Tool provider ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
-
GET
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)/
¶ Retrieve the information for all LTI tool providers registered for an org unit.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a JSON array of
LtiToolProviderData
data blocks, containing the details for all the tool providers registered for the provided org unit.
-
GET
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)/
(tpId)¶ Retrieve the information for a particular LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
tpId (D2LID) – Tool provider ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found registered for org unit.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a
LtiToolProviderData
JSON block containing the data associated with the matching LTI tool provider.
-
POST
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)¶ Register a new LTI tool provider for an org unit.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
- JSON Parameters
CreateLtiProviderData (
LTI.CreateLtiProviderData
) – Data for new LTI tool provider.
- Status Codes
200 OK – Action succeeded.
400 Bad Request – Unable to register tool provider.
403 Forbidden – No permission to manage tool providers.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a
LtiToolProviderData
JSON block containing the data associated with the newly registered LTI tool provider.
-
PUT
/d2l/api/le/
(version)/lti/tp/
(tpId)¶ Update the information associated with a registered LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
tpId (D2LID) – Tool provider ID.
- JSON Parameters
CreateLtiProviderData (
LTI.CreateLtiProviderData
) – Updated data for LTI tool provider.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found.
- API Versions
1.34+ – Route first appears in LMS v20.19.5.
1.27-1.33 – Deprecated as of LMS v20.20.1.
1.26- – Obsolete as of LMS v20.20.1.
Return. This action returns a
LtiToolProviderData
JSON block containing the updated data for the tool provider.
LTI Tool Provider Sharing¶
-
DELETE
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)/
(tpId)/sharing/
¶ Delete all sharing rules for a particular LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
tpId (D2LID) – Tool provider ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found registered for org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
-
DELETE
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)/
(tpId)/sharing/
(sharingOrgUnitId)¶ Delete the sharing rule for a particular org unit and LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
tpId (D2LID) – Tool provider ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found registered for org unit or no sharing rule for sharing org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
-
GET
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)/
(tpId)/sharing/
¶ Retrieve the sharing rules for a particular LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
tpId (D2LID) – Tool provider ID.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found registered for org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
Return. This action returns a list of
SharingRuleWithDescendantTypes
JSON blocks containing the data associated with the matching LTI tool provider.
-
POST
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)/
(tpId)/sharing/
¶ Add a sharing rule for a particular LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
tpId (D2LID) – Tool provider ID.
- JSON Parameters
CreateSharingRule (
LTI.CreateSharingRule
) – Data for a new or updated sharing rule.
- Status Codes
200 OK – Action succeeded.
400 Bad Request – Sharing rule for the provided sharingOrgUnitId already exists.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found registered for org unit.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
Return. This action returns a
CreateSharingRule
JSON block containing the data associated with the newly registered sharing rule.
-
PUT
/d2l/api/le/
(version)/lti/tp/
(orgUnitId)/
(tpId)/sharing/
(sharingOrgUnitId)¶ Update the sharing rule for a particular org unit and LTI tool provider.
- Parameters
version (D2LVERSION) – API version.
orgUnitId (D2LID) – Org unit ID.
tpId (D2LID) – Tool provider ID.
sharingOrgUnitId (D2LID) – Org unit ID the tool provider is shared to.
- JSON Parameters
UpdateSharingRule – Data for a new or updated sharing rule.
- Status Codes
200 OK – Action succeeded.
403 Forbidden – No permission to manage tool providers.
404 Not Found – No such tool provider found registered for org unit or no sharing rule for the sharingOrgUnitId.
- API Versions
1.38+ – Route first appears in LMS v20.19.11.
Return. This action returns a
CreateSharingRule
JSON block containing the data associated with the newly updated sharing rule.