We have relocated to Instructure Developer Documentation Portal. 🎉 Please update your bookmarks. This page will automatically redirect after July 1, 2026.
Content Exports API
API for exporting courses and course content
A ContentExport object looks like:
{
  // the unique identifier for the export
  "id": 101,
  // the date and time this export was requested
  "created_at": "2014-01-01T00:00:00Z",
  // the type of content migration: 'common_cartridge' or 'qti'
  "export_type": "common_cartridge",
  // attachment api object for the export package (not present before the export
  // completes or after it becomes unavailable for download.)
  "attachment": {"url":"https:\/\/example.com\/api\/v1\/attachments\/789?download_frd=1"},
  // The api endpoint for polling the current progress
  "progress_url": "https://example.com/api/v1/progress/4",
  // The ID of the user who started the export
  "user_id": 4,
  // Current state of the content migration: created exporting exported failed
  "workflow_state": "exported"
}List content exports ContentExportsApiController#index
GET /api/v1/courses/:course_id/content_exports
url:GET|/api/v1/courses/:course_id/content_exports
  GET /api/v1/groups/:group_id/content_exports
url:GET|/api/v1/groups/:group_id/content_exports
  GET /api/v1/users/:user_id/content_exports
url:GET|/api/v1/users/:user_id/content_exports
  A paginated list of the past and pending content export jobs for a course, group, or user. Exports are returned newest first.
Returns a list of ContentExport objectsShow content export ContentExportsApiController#show
GET /api/v1/courses/:course_id/content_exports/:id
url:GET|/api/v1/courses/:course_id/content_exports/:id
  GET /api/v1/groups/:group_id/content_exports/:id
url:GET|/api/v1/groups/:group_id/content_exports/:id
  GET /api/v1/users/:user_id/content_exports/:id
url:GET|/api/v1/users/:user_id/content_exports/:id
  Get information about a single content export.
Returns a ContentExport objectExport content ContentExportsApiController#create
POST /api/v1/courses/:course_id/content_exports
url:POST|/api/v1/courses/:course_id/content_exports
  POST /api/v1/groups/:group_id/content_exports
url:POST|/api/v1/groups/:group_id/content_exports
  POST /api/v1/users/:user_id/content_exports
url:POST|/api/v1/users/:user_id/content_exports
  Begin a content export job for a course, group, or user.
You can use the Progress API to track the progress of the export. The migration’s progress is linked to with the progress_url value.
When the export completes, use the Show content export endpoint to retrieve a download URL for the exported content.
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| export_type | Required | string | 
 
          Allowed values:  | 
| skip_notifications | boolean | Don’t send the notifications about the export to the user. Default: false | |
| select | Hash | The select parameter allows exporting specific data. The keys are object types like ‘files’, ‘folders’, ‘pages’, etc. The value for each key is a list of object ids. An id can be an integer or a string. Multiple object types can be selected in the same call. However, not all object types are valid for every export_type. Common Cartridge supports all object types. Zip and QTI only support the object types as described below. 
 
          Allowed values:  |