Course Service
The Course Service is where you’ll find methods for importing, previewing, configuring, and getting information on courses. Note that aside from preview, the course service is not used for launching courses. For that you should see the Registration Service.
buildCoursePreviewLaunchLink
POST
/courses/{courseId}/preview
Summary
Returns the launch link to use to preview this course.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Body | launchLinkRequest | true | LaunchLinkRequestSchema |
Query | cssUrl | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | The link to the course preview. | LaunchLinkSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
buildCoursePreviewLaunchLinkWithVersion
POST
/courses/{courseId}/versions/{versionId}/preview
Summary
Returns the link to use to preview a particular version of a course.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Body | launchLinkRequest | true | LaunchLinkRequestSchema |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | The preview link for this version. | LaunchLinkSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
createFetchAndImportCourseJob
POST
/courses/importJobs
Summary
An import job will be started to fetch and import the referenced file, and the import job ID will be returned. If the import is successful, the imported course will be registered using the courseId provided. To check the progress of the import job, GetImportJobStatus should be called with the job ID returned from this call. Calls to GetImportJobStatus with the job ID are valid for one week after the course finishes.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Query | courseId | true | String |
Body | importRequest | true | ImportFetchRequestSchema |
Query | mayCreateNewVersion | false | Boolean |
Query | postbackUrl | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | ID of the created import job. | StringResultSchema |
400 | Bad request | MessageSchema |
409 | Conflict, courseId exists and mayCreateNewVersion is false. |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
createNoUploadAndImportCourseJob
POST
/courses/importJobs/noUpload
Summary
An import job will be started to import the course by fetching the course or with a reference to an external file, and the import job ID will be returned. If the import is successful, the imported course will be registered using the courseId provided. To check the progress of the import job, GetImportJobStatus should be called with the job ID returned from this call. Calls to GetImportJobStatus with the job ID are valid for one week after the course finishes.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Query | courseId | true | String |
Body | importRequest | true | ImportRequestSchema |
Query | mayCreateNewVersion | false | Boolean |
Query | postbackUrl | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | ID of the created import job. | StringResultSchema |
400 | Bad request | MessageSchema |
409 | Conflict, courseId exists and mayCreateNewVersion is false. |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
createUploadAndImportCourseJob
POST
/courses/importJobs/upload
Summary
An import job will be started to import the posted file, and the import job ID will be returned. If the import is successful, the imported course will be registered using the courseId provided. To check the progress of the import job, GetImportJobStatus should be called with the job ID returned from this call. Calls to GetImportJobStatus with the job ID are valid for one week after the course finishes.
Parameters
Consumes: multipart/form-data
Type | Name | Required | Schema |
---|---|---|---|
Query | courseId | true | String |
Query | mayCreateNewVersion | false | Boolean |
Query | postbackUrl | false | String |
**** | uploadedContentType | false | String |
Form | contentMetadata | false | String |
Form | file | false | File |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | ID of the created import job | StringResultSchema |
400 | Bad request | MessageSchema |
409 | conflict, courseId exists and mayCreateNewVersion is false |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
deleteCourse
DELETE
/courses/{courseId}
Summary
Delete course identified by courseId
. When a course is deleted,
so is everything connected to this course. This includes:
- Registrations
- Invitations
- Dispatches
- Debug Logs
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Successfully deleted course | |
400 | Bad request | MessageSchema |
404 | courseId not found |
ResponseError |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | delete:course delete |
deleteCourseConfigurationSetting
DELETE
/courses/{courseId}/configuration/{settingId}
Summary
Clears the value of the given settingId
for this course. The
effective setting value will become any value set at the application
level (if this value is set at the application level) or the default
setting.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | settingId | true | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Cleared setting successfully | |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
deleteCourseTags
DELETE
/courses/{courseId}/tags
Summary
Delete the provided tags from this course.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Body | tags | true | TagListSchema |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Set tags successfully | |
400 | Bad request | MessageSchema |
404 | courseId was not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
deleteCourseVersion
DELETE
/courses/{courseId}/versions/{versionId}
Summary
Delete versionId
of courseId
. If this is the last
remaining version of this course, the course itself will be
deleted and no longer accessible.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Successfully deleted course version | |
400 | Bad request | MessageSchema |
404 | courseId version versionId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | delete:course delete |
deleteCourseVersionConfigurationSetting
DELETE
/courses/{courseId}/versions/{versionId}/configuration/{settingId}
Summary
Clears the settingId
value for this course and version.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Path | settingId | true | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Cleared setting successfully | |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
getCourse
GET
/courses/{courseId}
Summary
Get detailed information about courseId
. Futher detail can
be obtained with the optional query parameters flags.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Query | includeRegistrationCount | false | Boolean |
Query | includeCourseMetadata | false | Boolean |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | Object describing requested course | CourseSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourseConfiguration
GET
/courses/{courseId}/configuration
Summary
Returns all effective configuration settings for this course. For any setting which is not explicitly set at the course level, the effective value will be either the value set at the application level (if there is one) or the default value for the setting.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Query | includeMetadata | false | Boolean |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | List of configuration settings | SettingListSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourseStatements
GET
/courses/{courseId}/xAPIStatements
Summary
Get xAPI statements for courseId
.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Query | learnerId | false | String |
Query | since | false | Date |
Query | until | false | Date |
Query | more | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | Course statements | XapiStatementResult |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourseTags
GET
/courses/{courseId}/tags
Summary
Get a list of the tags for this course.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | List of tags for this course | TagListSchema |
400 | Bad request | MessageSchema |
404 | courseId was not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourseVersionConfiguration
GET
/courses/{courseId}/versions/{versionId}/configuration
Summary
Returns all configuration settings for this course and version.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Query | includeMetadata | false | Boolean |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | List of configuration settings | SettingListSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourseVersionInfo
GET
/courses/{courseId}/versions/{versionId}
Summary
Get specific version versionId
of courseId
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Query | includeRegistrationCount | false | Boolean |
Query | includeCourseMetadata | false | Boolean |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | Object describing course version | CourseSchema |
400 | Bad request | MessageSchema |
404 | courseId version versionId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourseVersionStatements
GET
/courses/{courseId}/versions/{versionId}/xAPIStatements
Summary
Get xAPI statements for version versionId
of courseId
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Query | learnerId | false | String |
Query | since | false | Date |
Query | until | false | Date |
Query | more | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | Course version statements | XapiStatementResult |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourseVersions
GET
/courses/{courseId}/versions
Summary
Get information about all versions of courseId
. This can be useful
to see information such as registration counts and modification times
across the versions of a course.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Query | since | false | Date |
Query | until | false | Date |
Query | includeRegistrationCount | false | Boolean |
Query | includeCourseMetadata | false | Boolean |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | List of course version objects | CourseListNonPagedSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getCourses
GET
/courses
Summary
Get all courses for the appId
which was used to authenticate this call.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Query | more | false | String |
Query | since | false | Date |
Query | until | false | Date |
Query | filter | false | String |
Query | filterBy | false | String |
Query | orderBy | false | String |
Query | includeRegistrationCount | false | Boolean |
Query | includeCourseMetadata | false | Boolean |
Query | tags | false | ListList |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | List of objects describing courses | CourseListSchema |
400 | Bad request | MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
getImportJobStatus
GET
/courses/importJobs/{importJobId}
Summary
Check the status of an import job. This can be called incrementally to check to progress of a call to either of the import options.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | importJobId | true | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | Object describing import status | ImportJobResultSchema |
400 | Bad request | MessageSchema |
404 | importJobId not found |
ResponseError |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | read read:course |
importCourseAssetFile
POST
/courses/{courseId}/asset
Summary
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Body | assetSchema | true | ImportAssetRequestSchema |
Query | updateAssetPolicy | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | The imported file and its destination path | AssetFileSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL |
importCourseVersionAssetFile
POST
/courses/{courseId}/versions/{versionId}/asset
Summary
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Body | assetSchema | true | ImportAssetRequestSchema |
Query | updateAssetPolicy | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | The imported file and its destination path | AssetFileSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL |
putCourseTags
PUT
/courses/{courseId}/tags
Summary
Set the tags for this course. Note: any tags currently on this course will be overwritten with the new array of tags.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Body | tags | true | TagListSchema |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Set tags successfully | |
400 | Bad request | MessageSchema |
404 | courseId was not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
putCourseTagsBatch
PUT
/courses/tags
Summary
Sets all of the provided tags on all of the provided courses.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Body | batch | true | BatchTagsSchema |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Removed tags successfully | |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
setCourseConfiguration
POST
/courses/{courseId}/configuration
Summary
Set configuration settings for this course. Setting a value at this level will override any value which is set at the application level.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Body | configurationSettings | true | SettingsPostSchema |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Success | |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
setCourseTitle
PUT
/courses/{courseId}/title
Summary
Sets the course title for the provided courseId.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Body | title | true | TitleSchema |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Successfully set title | |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
setCourseVersionConfiguration
POST
/courses/{courseId}/versions/{versionId}/configuration
Summary
Set configuration settings for this course and version.
Parameters
Consumes: application/json
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Body | configurationSettings | true | SettingsPostSchema |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
204 | Success | |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL | |
oauth2 | OAUTH | write:course write |
uploadCourseAssetFile
POST
/courses/{courseId}/asset/upload
Summary
Parameters
Consumes: multipart/form-data
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Form | destination | true | String |
Form | file | false | File |
Query | updateAssetPolicy | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | The imported file and its destination path | AssetFileSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL |
uploadCourseVersionAssetFile
POST
/courses/{courseId}/versions/{versionId}/asset/upload
Summary
Parameters
Consumes: multipart/form-data
Type | Name | Required | Schema |
---|---|---|---|
Path | courseId | true | String |
Path | versionId | true | Integer |
Form | destination | true | String |
Form | file | false | File |
Query | updateAssetPolicy | false | String |
Responses:
Produces: application/json
HTTP Code | Description | Schema |
---|---|---|
200 | The imported file and its destination path | AssetFileSchema |
400 | Bad request | MessageSchema |
404 | courseId not found |
MessageSchema |
Authentication:
Type | Name | Scopes |
---|---|---|
basic | APP_NORMAL |