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
| Property | Value |
|---|---|
| Workflow type | Atomic |
| Library | App-canvas |
| Version | 1.0 |
Input Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
base_url | string | Yes | — | Canvas API root, e.g. https://<host>/api |
api_token | string | No | — | Bearer token; omit to use the workflow's token env var |
course_id | string | Yes | — | ID |
source_course | string | No | — | ID or SIS-ID of the course to copy the content from |
except_ | list | No | — | A list of the course content types to exclude, all areas not listed will be copied. |
only | list | No | — | A list of the course content types to copy, all areas not listed will not be copied. |
Output Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
base_url | string | Yes | — | Canvas API root, e.g. https://<host>/api |
api_token | string | No | — | Bearer token; omit to use the workflow's token env var |
course_id | string | Yes | — | ID |
source_course | string | No | — | ID or SIS-ID of the course to copy the content from |
except_ | list | No | — | A list of the course content types to exclude, all areas not listed will be copied. |
only | list | No | — | A list of the course content types to copy, all areas not listed will not be copied. |
status_code | integer | No | — | HTTP status code of the completed call |
response | json | No | — | Parsed JSON response body |
failure_reason | string | No | — | — |
failure_type | string | No | — | — |
failed_at | string | No | — | — |
failed_step | string | No | — | — |
failed_layer | string | No | — | — |
failed_at_state | string | No | — | — |
error | string | No | — | — |
error_type | string | No | — | — |
States
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
pending | Yes | No | — | execute | Waiting to call POST /v1/courses/{course_id}/course_copy |
completed | No | Yes | Yes | — | HTTP call succeeded |
failed | No | Yes | No | — | HTTP call failed |
State Diagram
Transitions
| From | Action | To | Description |
|---|---|---|---|
pending | execute | completed | Perform POST /v1/courses/{course_id}/course_copy |
* (any state) | fail | failed | Record 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"
}
}