Appearance
Assignments
Assignments connect a quiz to students (individual assignments) or produce a shareable public link (promotional assignments).
| Operation | Endpoint | Scope |
|---|---|---|
| List assignments | GET /api/v1/assignments | api:assignment:read |
| Create an assignment | POST /api/v1/assignments | api:assignment:write |
| Get an assignment | GET /api/v1/assignments/{assignmentId} | api:assignment:read |
| Update an assignment | PATCH /api/v1/assignments/{assignmentId} | api:assignment:write |
| Delete an assignment | DELETE /api/v1/assignments/{assignmentId} | api:assignment:write |
| List a quiz's assignments | GET /api/v1/quizzes/{quizId}/assignments | api:assignment:read |
To list every assignment under one quiz, you can either filter GET /api/v1/assignments?quizId=… or use the nested route GET /api/v1/quizzes/{quizId}/assignments.
List assignments
GET /api/v1/assignments?page=1&limit=20&status=&quizId=| Query | Default | Notes |
|---|---|---|
page | 1 | 1–1000. |
limit | 20 | 1–100. |
status | — | Filter by status. |
quizId | — | Filter by quiz. |
Create an assignment
POST /api/v1/assignmentsPromotional (shareable public link):
| Field | Type | Required | Notes |
|---|---|---|---|
type | "promotional" | Yes | Selects the promotional shape. |
quiz_id | UUID | Yes | Quiz to share. |
max_uses | number | null | No | Cap on uses. |
exam_type | "classic" | "guided" | "interactive" | No | Exam mode. |
is_indexable | boolean | No | Whether it appears in the public directory. |
Individual (assign to specific students):
| Field | Type | Required | Notes |
|---|---|---|---|
quiz_id | UUID | Yes | Quiz to assign. |
student_ids | UUID[] | Yes | 1–500 students. |
json
{ "data": { "id": "…" } } // promotional, 201
{ "data": [ { "…": "…" } ] } // individual, 201Reaching a quota returns 403 with a code and limit.
Update / delete
GET /api/v1/assignments/{assignmentId} → { "data": { …assignment } } (404 if not found)
PATCH /api/v1/assignments/{assignmentId} → body { exam_type?, is_indexable? }
DELETE /api/v1/assignments/{assignmentId} → delete the assignment