GET /api/v1/community/threads/{threadId}
Returns a thread, its space and one page of its replies, oldest first.
Authors are given as user ids only, with authoredByMe for the key holder's own
posts — no name, no email.
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Conditional — threads of the spaces they can read |
| Requirement | Rule for this endpoint |
|---|---|
| Business role | None |
| Resource scope | A thread of the key's organization |
| Participation | For a MEMBER: an enrollment in the space's program or cohort |
| Resource state | Threads of archived spaces stay readable |
| Parameter | Type | Required | Description |
|---|---|---|---|
threadId | UUID | yes | Thread id |
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Replies per page, default 50; values above 100 are capped at 100 |
offset | integer | no | Replies to skip, default 0 |
curl "$COHORTE_API_BASE_URL/api/v1/community/threads/$THREAD_ID?limit=50&offset=0" \
-H "x-api-key: $COHORTE_API_KEY"200 OK — the thread and the requested page.400 Bad Request — limit or offset is not a non-negative integer, or limit is 0.401 Unauthorized — missing, unknown or expired key.404 Not Found — unknown thread, a space you cannot read, or another school's.| Field | Type | Description |
|---|---|---|
data.thread | object | {id, spaceId, title, body, authorUserId, authoredByMe, createdAt} |
data.space | object | Same shape as List spaces |
data.replies[] | array | {id, threadId, parentReplyId, body, authorUserId, authoredByMe, createdAt} |
data.repliesTotal | number | Total replies in the thread |
data.limit / data.offset | number | The page actually returned |
{
"success": true,
"data": {
"thread": {"id": "2d3e4f5a-6b7c-4d8e-9f0a-1b2c3d4e5f6a", "spaceId": "9a8b…", "title": "Tool calling fails on step 2", "body": "…", "authorUserId": "22222222-2222-4222-8222-222222222222", "authoredByMe": true, "createdAt": "2026-10-04T18:20:00.000Z"},
"space": {"id": "9a8b…", "name": "Agentic AI — Spring 2026", "scopeType": "cohort", "scopeTargetId": "4d5e…", "status": "open", "position": 0, "createdAt": "2026-03-01T08:00:00.000Z"},
"replies": [{"id": "3e4f…", "threadId": "2d3e…", "parentReplyId": null, "body": "Check the schema name.", "authorUserId": "5b6c…", "authoredByMe": false, "createdAt": "2026-10-04T19:02:00.000Z"}],
"repliesTotal": 1,
"limit": 50,
"offset": 0
},
"correlationId": "c0ffee00-1111-4222-8333-444455556666"
}