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.
| Language | Call |
|---|---|
| Node.js | c.coursewares.list(appId, input) |
| Python | c.coursewares.list(app_id, **input) |
| Java | c.coursewares.list(appId, input) |
| Go | c.Coursewares.List(ctx, appID, input, &result) |
| PHP | $c->coursewares->list($appId, $input) |
Input: ListCoursewaresInput. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
classroomId | No | string | undefined | Classroom ID |
ownerEduUserId | No | string | undefined | Private-library owner; keep consistent between upload and creation |
status | No | CoursewareStatus | undefined | Status filter or target status |
q | No | string | undefined | Search keyword |
page | No | number | undefined | Page number starting at 1 |
pageSize | No | number | undefined | Maximum 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.
| Language | Call |
|---|---|
| Node.js | c.coursewares.createUploadUrl(appId, input) |
| Python | c.coursewares.create_upload_url(app_id, **input) |
| Java | c.coursewares.createUploadUrl(appId, input) |
| Go | c.Coursewares.CreateUploadUrl(ctx, appID, input, &result) |
| PHP | $c->coursewares->createUploadUrl($appId, $input) |
Input: CreateUploadUrlPayload. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
fileName | Yes | string | File name including extension |
contentHash | Yes | string | File SHA-256 in lowercase hex; courseware requires 64 characters |
contentType | No | string | undefined | File MIME type |
expiresSeconds | No | number | undefined | Upload URL lifetime in seconds, 0–86400; 0 uses the default |
ownerEduUserId | No | string | undefined | Private-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.
| Language | Call |
|---|---|
| Node.js | c.coursewares.create(appId, input) |
| Python | c.coursewares.create(app_id, **input) |
| Java | c.coursewares.create(appId, input) |
| Go | c.Coursewares.Create(ctx, appID, input, &result) |
| PHP | $c->coursewares->create($appId, $input) |
Input: CreateCoursewarePayload. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
fileName | Yes | string | File name including extension |
originalName | Yes | string | Original file name including extension |
format | Yes | string | Courseware file format |
sizeBytes | Yes | number | File size in bytes |
objectKey | Yes | string | Object key from the upload response |
sourceUrl | Yes | string | Source file URL from the upload response |
contentHash | Yes | string | File SHA-256 in lowercase hex; courseware requires 64 characters |
ownerEduUserId | No | string | undefined | Private-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.
| Language | Call |
|---|---|
| Node.js | c.coursewares.get(appId, input) |
| Python | c.coursewares.get(app_id, **input) |
| Java | c.coursewares.get(appId, input) |
| Go | c.Coursewares.Get(ctx, appID, input, &result) |
| PHP | $c->coursewares->get($appId, $input) |
Input: CoursewareIdInput. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
coursewareId | Yes | string | Courseware 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.
| Language | Call |
|---|---|
| Node.js | c.coursewares.getManifest(appId, input) |
| Python | c.coursewares.get_manifest(app_id, **input) |
| Java | c.coursewares.getManifest(appId, input) |
| Go | c.Coursewares.GetManifest(ctx, appID, input, &result) |
| PHP | $c->coursewares->getManifest($appId, $input) |
Input: CoursewareIdInput. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
coursewareId | Yes | string | Courseware 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.
| Language | Call |
|---|---|
| Node.js | c.coursewares.remove(appId, input) |
| Python | c.coursewares.remove(app_id, **input) |
| Java | c.coursewares.remove(appId, input) |
| Go | c.Coursewares.Remove(ctx, appID, input, &result) |
| PHP | $c->coursewares->remove($appId, $input) |
Input: CoursewareIdInput. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
coursewareId | Yes | string | Courseware 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.
| Language | Call |
|---|---|
| Node.js | c.coursewares.retry(appId, input) |
| Python | c.coursewares.retry(app_id, **input) |
| Java | c.coursewares.retry(appId, input) |
| Go | c.Coursewares.Retry(ctx, appID, input, &result) |
| PHP | $c->coursewares->retry($appId, $input) |
Input: CoursewareIdInput. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
coursewareId | Yes | string | Courseware ID |
Returns: CoursewareRecord. See shared models for nested fields.