We have relocated to Instructure Developer Documentation Portal. 🎉 Please update your bookmarks. This page will automatically redirect after July 1, 2026.
Asset Processor API
1EdTech Asset Processor services: Asset Service and Asset Report Service.
1EdTech Asset Processor services: Eula Service and Eula Acceptance Service.
Create an Asset Report Lti::Ims::AssetProcessorController#create_report
POST /api/lti/asset_processors/:asset_processor_id/reports
url:POST|/api/lti/asset_processors/:asset_processor_id/reports
Creates a report for a given Canvas-managed asset (such as a submission attachment).
Returns an HTTP 201 (Created) on success.
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| assetId | string |
The UUID of the asset to which the report applies. Canvas will supply this to the tool in the the |
|
| errorCode | string |
A machine-readable code indicating the cause of the failure, for reports with a processingProgress value of |
|
| indicationAlt | string |
Alternate text representing the meaning of the indicationColor for screen readers or as a tooltip over the indication color. |
|
| indicationColor | string |
A hex (#RRGGBB) color code the tool wishes to use indicating the outcome of an asset’s report. |
|
| priority | integer |
A number from 0 (meaning “good” or “success”) to 5 (meaning urgent or time-critical notable features) indicating the tool’s perceived priority of the report. If a priority is not known or applicable, the tool should use the value 0. |
|
| processingProgress | string |
Indicates the status of the report. Should be one of the following: Processed, Processing, PendingManual, Failed, NotProcessed, NotReady. If an unrecognized value is given, the value will be stored, but will be treated by Canvas as |
|
| result | string |
A short string (16 characters or fewer) that briefly describes the successful result of the processing. This should be provided if processingProgress is Processed, and not provided otherwise. |
|
| timestamp | string |
An ISO8601 date time value with microsecond precision. Reports with newer timestamps for the same asset and report type supersede previously submitted reports with older (or equal) timestamps. Likewise, if the timestamp provided is older than the latest timestamp for an existing report (of same asset and type), the new report will be ignored and the endpoint will return an HTTP 409 (Conflict). |
|
| title | string |
A human-readable title for the report, to be displayed to the user. |
|
| type | string |
An opaque value representing the type of report. |
|
| visibleToOwner | boolean |
A boolean value indicates whether the indicator and report should be visible to the user who owns the asset being reported on. If no value is provided, the platform should assume a default value of false |
Example Request:
{
"assetId" : "57d463ea-6e5d-45c8-a86f-64f3dd9ef81e",
"type": "originality",
"timestamp": "2025-01-24T17:56:53.221+00:00",
"title": "Originality Report",
"result" : "75/100",
"indicationColor" : "#EC0000",
"indicationAlt" : "High percentage of matched text.",
"priority": 5,
"processingProgress": "Processed"
}
{
"assetId" : "57d463ea-6e5d-45c8-a86f-64f3dd9ef81e",
"type": "originality",
"timestamp": "2025-01-24T17:56:53.221+00:00",
"title": "Originality Report",
"priority": 0,
"errorCode": "UNSUPPORTED_ASSET_TYPE",
"processingProgress": "Failed"
}
Example Response:
{
"assetId" : "57d463ea-6e5d-45c8-a86f-64f3dd9ef81e",
"type": "originality",
"timestamp": "2025-01-24T17:56:53.221+00:00",
"title": "Originality Report",
"result" : "75/100",
"indicationColor" : "#EC0000",
"indicationAlt" : "High percentage of matched text.",
"priority": 5,
"processingProgress": "Processed"
}
Update Eula Deployment Configuration Lti::Ims::AssetProcessorEulaController#update_tool_eula
PUT /api/lti/asset_processor_eulas/:context_external_tool_id/deployment
url:PUT|/api/lti/asset_processor_eulas/:context_external_tool_id/deployment
Provides a mechanism by which a platform can enable or disable the requirement for users to accept a EULA within the scope of an entire deployment
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| eulaRequired | boolean |
A boolean value representing whether or not the EULA is required for the deployment. |
Example Request:
{
"eulaRequired": true,
}
Example Response:
{
"eulaRequired": true,
}
Create an Eula Acceptance Lti::Ims::AssetProcessorEulaController#create_acceptance
POST /api/lti/asset_processor_eulas/:context_external_tool_id/user
url:POST|/api/lti/asset_processor_eulas/:context_external_tool_id/user
The EULA user acceptance service provides a mechanism by which a tool can notify a platform of whether or not a user has accepted a EULA.
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| userId | string |
The userId represents the user who has accepted or declined the EULA, |
|
| accepted | boolean |
A boolean value representing whether or not the user has accepted the EULA |
|
| timestamp | string |
The timestamp represents the time at which the user accepted or declined the EULA. This timestamp must be formatted as an ISO 8601 date time. |
Example Request:
{
"userId": "59ed2101-0302-406c-b53f-9705ae1cb357",
"accepted": true,
"timestamp": "2022-04-16T18:54:36.736+00:00"
}
Example Response:
{
"userId": "59ed2101-0302-406c-b53f-9705ae1cb357",
"accepted": true,
"timestamp": "2022-04-16T18:54:36.736+00:00"
}
Delete Eula Acceptances for deployment Lti::Ims::AssetProcessorEulaController#delete_acceptances
DELETE /api/lti/asset_processor_eulas/:context_external_tool_id/user
url:DELETE|/api/lti/asset_processor_eulas/:context_external_tool_id/user
Remove the EULA acceptance status for all users within the current deployment. This will allow a tool to reset the EULA acceptance status for all users, and force them to accept the EULA again in the case that the EULA has changed.