Skip to main content

Courseware library and uploads

Console client configuration · Response and shared models

Upload courseware in three steps: request a signed URL, PUT the original file to storage, then call create to create the record and submit conversion. contentHash is the SHA-256 hex digest of the file. Use the contentType returned with the upload URL.

get returns conversion status, progress, and errors. Once ready, getManifest returns pages and steps for previews. retry retries conversion and remove deletes an asset. Lists support classroom, status, keyword, and pagination filters.

Application backends use application business APIs with app credentials. This page describes the separate tenant management calls.

coursewares.list​

List courseware library.

GET /v1/coursewares

Authentication: tenant Bearer token and x-app-id.

LanguageCall
Node.jsc.coursewares.list(appId, input)
Pythonc.coursewares.list(app_id, **input)
Javac.coursewares.list(appId, input)
Goc.Coursewares.List(ctx, appID, input, &result)
PHP$c->coursewares->list($appId, $input)

Input: ListCoursewaresInput. Fields are sent as URL query parameters.

FieldRequiredTypeDescription
classroomIdNostring | undefinedClassroom ID
ownerEduUserIdNostring | undefinedPrivate-library owner; keep consistent between upload and creation
statusNoCoursewareStatus | undefinedStatus filter or target status
qNostring | undefinedSearch keyword
pageNonumber | undefinedPage number starting at 1
pageSizeNonumber | undefinedMaximum items per page

Returns: ListCoursewaresResult. See shared models for nested fields.

coursewares.createUploadUrl​

Create courseware upload URL.

POST /v1/coursewares/upload-url

Authentication: tenant Bearer token and x-app-id.

LanguageCall
Node.jsc.coursewares.createUploadUrl(appId, input)
Pythonc.coursewares.create_upload_url(app_id, **input)
Javac.coursewares.createUploadUrl(appId, input)
Goc.Coursewares.CreateUploadUrl(ctx, appID, input, &result)
PHP$c->coursewares->createUploadUrl($appId, $input)

Input: CreateUploadUrlPayload. Fields are sent in the JSON body.

FieldRequiredTypeDescription
fileNameYesstringFile name including extension
contentHashYesstringFile SHA-256 in lowercase hex; courseware requires 64 characters
contentTypeNostring | undefinedFile MIME type
expiresSecondsNonumber | undefinedUpload URL lifetime in seconds, 0–86400; 0 uses the default
ownerEduUserIdNostring | undefinedPrivate-library owner; keep consistent between upload and creation

Returns: UploadUrlResult. See shared models for nested fields.

coursewares.create​

Create and convert courseware.

POST /v1/coursewares

Authentication: tenant Bearer token and x-app-id.

LanguageCall
Node.jsc.coursewares.create(appId, input)
Pythonc.coursewares.create(app_id, **input)
Javac.coursewares.create(appId, input)
Goc.Coursewares.Create(ctx, appID, input, &result)
PHP$c->coursewares->create($appId, $input)

Input: CreateCoursewarePayload. Fields are sent in the JSON body.

FieldRequiredTypeDescription
fileNameYesstringFile name including extension
originalNameYesstringOriginal file name including extension
formatYesstringCourseware file format
sizeBytesYesnumberFile size in bytes
objectKeyYesstringObject key from the upload response
sourceUrlYesstringSource file URL from the upload response
contentHashYesstringFile SHA-256 in lowercase hex; courseware requires 64 characters
ownerEduUserIdNostring | undefinedPrivate-library owner; keep consistent between upload and creation

Returns: CoursewareRecord. See shared models for nested fields.

coursewares.get​

Get courseware.

GET /v1/coursewares/detail

Authentication: tenant Bearer token and x-app-id.

LanguageCall
Node.jsc.coursewares.get(appId, input)
Pythonc.coursewares.get(app_id, **input)
Javac.coursewares.get(appId, input)
Goc.Coursewares.Get(ctx, appID, input, &result)
PHP$c->coursewares->get($appId, $input)

Input: CoursewareIdInput. Fields are sent as URL query parameters.

FieldRequiredTypeDescription
coursewareIdYesstringCourseware ID

Returns: CoursewareRecord. See shared models for nested fields.

coursewares.getManifest​

Get courseware manifest.

GET /v1/coursewares/manifest

Authentication: tenant Bearer token and x-app-id.

LanguageCall
Node.jsc.coursewares.getManifest(appId, input)
Pythonc.coursewares.get_manifest(app_id, **input)
Javac.coursewares.getManifest(appId, input)
Goc.Coursewares.GetManifest(ctx, appID, input, &result)
PHP$c->coursewares->getManifest($appId, $input)

Input: CoursewareIdInput. Fields are sent as URL query parameters.

FieldRequiredTypeDescription
coursewareIdYesstringCourseware ID

Returns: CoursewareManifest. See shared models for nested fields.

coursewares.remove​

Delete courseware.

DELETE /v1/coursewares/remove

Authentication: tenant Bearer token and x-app-id.

LanguageCall
Node.jsc.coursewares.remove(appId, input)
Pythonc.coursewares.remove(app_id, **input)
Javac.coursewares.remove(appId, input)
Goc.Coursewares.Remove(ctx, appID, input, &result)
PHP$c->coursewares->remove($appId, $input)

Input: CoursewareIdInput. Fields are sent as URL query parameters.

FieldRequiredTypeDescription
coursewareIdYesstringCourseware ID

Returns: DeleteResult. See shared models for nested fields.

coursewares.retry​

Retry courseware conversion.

POST /v1/coursewares/retry

Authentication: tenant Bearer token and x-app-id.

LanguageCall
Node.jsc.coursewares.retry(appId, input)
Pythonc.coursewares.retry(app_id, **input)
Javac.coursewares.retry(appId, input)
Goc.Coursewares.Retry(ctx, appID, input, &result)
PHP$c->coursewares->retry($appId, $input)

Input: CoursewareIdInput. Fields are sent in the JSON body.

FieldRequiredTypeDescription
coursewareIdYesstringCourseware ID

Returns: CoursewareRecord. See shared models for nested fields.