Skip to content
Proud to collaborate with Microsoft for Startups

canvas.courses.copy-course-content ​

DEPRECATED: Please use the {api:ContentMigrationsController#create Content Migrations API} Copies content from one course into another. The default is to copy all course content. You can control specific types to copy by using either the 'except' option or the 'only' option. The response is the same as the course copy status endpoint

Copy course content

Overview ​

PropertyValue
Workflow typeAtomic
LibraryApp-canvas
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
base_urlstringYes—Canvas API root, e.g. https://<host>/api
api_tokenstringNo—Bearer token; omit to use the workflow's token env var
course_idstringYes—ID
source_coursestringNo—ID or SIS-ID of the course to copy the content from
except_listNo—A list of the course content types to exclude, all areas not listed will be copied.
onlylistNo—A list of the course content types to copy, all areas not listed will not be copied.

Output Schema ​

FieldTypeRequiredDefaultDescription
base_urlstringYes—Canvas API root, e.g. https://<host>/api
api_tokenstringNo—Bearer token; omit to use the workflow's token env var
course_idstringYes—ID
source_coursestringNo—ID or SIS-ID of the course to copy the content from
except_listNo—A list of the course content types to exclude, all areas not listed will be copied.
onlylistNo—A list of the course content types to copy, all areas not listed will not be copied.
status_codeintegerNo—HTTP status code of the completed call
responsejsonNo—Parsed JSON response body
failure_reasonstringNo——
failure_typestringNo——
failed_atstringNo——
failed_stepstringNo——
failed_layerstringNo——
failed_at_statestringNo——
errorstringNo——
error_typestringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—executeWaiting to call POST /v1/courses/{course_id}/course_copy
completedNoYesYes—HTTP call succeeded
failedNoYesNo—HTTP call failed

State Diagram ​

Transitions ​

FromActionToDescription
pendingexecutecompletedPerform POST /v1/courses/{course_id}/course_copy
* (any state)failfailedRecord the failure reason

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "canvas.courses.copy-course-content",
  "initial_data": {
    "base_url": "value",
    "course_id": "value"
  }
}