GET /api/v1/submission-reviews/{submissionId}
Read one submission and its attempt history within your review scope.
Send x-api-key. The school and actor come from the verified key; body identities cannot override them. A verified school member with current review responsibility: organization reviewer, program reviewer, or coach assigned to the relevant enrollment/program as permitted by the school. Organization role alone does not replace review scope.
| Parameter | Type | Required | Description |
|---|---|---|---|
submissionId | UUID | yes | Resource in the authorized school and permitted scope. |
curl -X GET "https://www.cohorte.io/api/v1/submission-reviews/11111111-1111-4111-8111-111111111111" \
-H "x-api-key: $COHORTE_API_KEY"200 returns the result. 400: invalid input or forbidden state transition. 401: invalid key. 403: insufficient current permission. 404: unavailable resource in the permitted scope.
submission, member names, programName, memberTask, deliverable, dueAt, attemptRank, reviewerName, reviews and history. Dates are ISO date-time strings or null.
{
"success": true,
"data": {
"submission": {
"id": "11111111-1111-4111-8111-111111111111",
"enrollmentId": "22222222-2222-4222-8222-222222222222",
"deliverableId": "33333333-3333-4333-8333-333333333333",
"previousSubmissionId": null,
"status": "in_review",
"comment": "Ready for review",
"attachments": [
{
"kind": "link",
"url": "https://example.com/work"
}
],
"submittedAt": "2026-10-16T08:00:00.000Z",
"createdAt": "2026-10-16T08:00:00.000Z",
"updatedAt": "2026-10-16T08:00:00.000Z"
},
"member": {
"firstName": "Alex",
"lastName": "Martin"
},
"programName": "Launch a project",
"memberTask": {
"id": "22222222-2222-4222-8222-222222222222",
"title": "Publish the bonus exercise"
},
"deliverable": {
"title": "Project link",
"expectations": "Share your work",
"criteria": null,
"requirement": "optional"
},
"dueAt": null,
"attemptRank": 1,
"reviewerName": "Sam Dupont",
"reviews": [
{
"id": "44444444-4444-4444-8444-444444444444",
"submissionId": "11111111-1111-4111-8111-111111111111",
"decision": null,
"feedback": null,
"expectedCorrections": null,
"createdAt": "2026-10-16T08:00:00.000Z"
}
],
"history": [
{
"submissionId": "11111111-1111-4111-8111-111111111111",
"attemptRank": 1,
"status": "in_review",
"comment": "Ready for review",
"attachments": [
{
"kind": "link",
"url": "https://example.com/work"
}
],
"submittedAt": "2026-10-16T08:00:00.000Z",
"verdict": null
}
]
},
"correlationId": "22222222-2222-4222-8222-222222222222"
}A verdict requires explicit reviewer instruction. The reviewer who took the attempt owns its decision; other scoped reviewers cannot decide it.