Assignments
List and read assignments, create drafts and update them.
- Scopes
assignments:readassignments:write
Data requests act inside the key’s centre as the person who created the key: each needs the scope and that person’s current EduMark permission. See auth and pagination.
List assignments
GET/v1/assignments
Delivered assignments (kind=assignment, default) or Studio drafts (kind=draft) in the key's team, newest first, that the key's creator can see in EduMark.
Scope assignments:read
Parameters
| Field | Details |
|---|---|
kind | enumOne of assignment, draftDefault "assignment" |
course_id | string, optionalUp to 200 charactersPattern ^[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$ |
status | enum, optionalOne of draft, under_review, approved, scheduled, open, closed, marking, moderation, ready_for_release, released, archived |
updated_since | string, optionalUp to 40 characters |
limit | integerItems per page, 1 to 100.1 to 100Default 25 |
cursor | string, optionalThe next_cursor from the previous page.Up to 512 characters |
Headers
| Field | Details |
|---|---|
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Responses
| Status | Meaning |
|---|---|
| 200 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
Create an assignment draft
POST/v1/assignments
Creates a draft in the Assignment Studio, as "Start from scratch" does. Staff add the questions or brief, choose who it is for and publish it in EduMark. Send an Idempotency-Key.
Scope assignments:write
Headers
| Field | Details |
|---|---|
Idempotency-Key | string, optionalUp to 128 characters |
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Request body
| Field | Details |
|---|---|
title | stringRequiredUp to 300 characters |
instructions | stringWhat learners are asked to do.Up to 20,000 charactersDefault "" |
submission_mode | enumOne of online_response, file_upload, external, noneDefault "file_upload" |
due_at | string (date-time), optionalOptional due date; the team's default deadline is used otherwise. |
Responses
| Status | Meaning |
|---|---|
| 201 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
Get an assignment
GET/v1/assignments/{assignment_id}
Scope assignments:read
Parameters
| Field | Details |
|---|---|
assignment_id | stringRequiredUp to 200 charactersPattern ^[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$ |
Headers
| Field | Details |
|---|---|
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Responses
| Status | Meaning |
|---|---|
| 200 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
Update an assignment
PATCH/v1/assignments/{assignment_id}
Change a draft's title, instructions, submission type or dates, or a delivered assignment that is still a draft. Published assignments are changed in EduMark, where learners are told about changes.
Scope assignments:write
Parameters
| Field | Details |
|---|---|
assignment_id | stringRequiredUp to 200 charactersPattern ^[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$ |
Headers
| Field | Details |
|---|---|
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Request body
| Field | Details |
|---|---|
expected_revision | integerRequiredThe revision you last read. A stale value is a 409.At least 1 |
title | string, optionalUp to 300 characters |
description | string, optionalInstructions (drafts) or description (assignments).Up to 20,000 characters |
submission_mode | enum, optionalDrafts only.One of online_response, file_upload, external, none |
opens_at | string (date-time), optional |
due_at | string (date-time), optional |
closes_at | string (date-time), optional |
Responses
| Status | Meaning |
|---|---|
| 200 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |