Reddit API endpoint
Returns a bounded nested comment tree from Arctic Shift's public archive. `t1` entries contain comments and their replies; `more` entries mark collapsed branches and include child ids/counts. Omitted parent_id requests the whole tree, while an explicitly empty parent_id requests top-level comments only. Empty archived trees return 200 with an empty comments array. Archived scores can lag changes for roughly 36 hours; slow or throttled upstream requests return 503 with Retry-After.
/reddit/archive/comments/{id}/treeReturns a bounded nested comment tree for one archived Reddit post. Use /api/v1/reddit/comments/{id} for the live Reddit post and its current public comments.
Path parameter: id is a Reddit post id or t3_ id.
Query parameters: parent_id selects a subtree by comment id. If omitted, the source returns the post's comment tree; an explicitly empty value selects top-level comments only. limit defaults to 50 and clamps to 100 expanded comment nodes. start_breadth defaults to 2 and start_depth defaults to 3; each must be between 0 and 8.
Credit weight: 3 per successful call.
Notable response behavior: comments contains nested entries. Each entry's kind is t1 for a comment or more for a collapsed branch. A t1 entry has a comment object and optional nested replies; a more entry has children ids, count, and depth, preserving the source's indication that more comments exist. A post with no archived comments returns 200 with an empty comments array. created_utc and retrieved_on are archive timestamps; score values are historical snapshots and can change during Arctic Shift's roughly 36-hour update window. Slow or throttled source queries return 503 with Retry-After.
| Field | Filled in, of 1 checked |
|---|---|
| kind | 1 |
| comment | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Reddit post id or t3_ id | 7cff0b | |
| parent_id | string | No | Parent comment id; an explicitly empty value selects top-level comments | ||
| limit | integer | No | 50 and clamps to 100 | Maximum archive comment nodes to expand, defaults to 50 and clamps to 100 | |
| start_breadth | integer | No | 2 and must be between 0 and 8 | Initial breadth, defaults to 2 and must be between 0 and 8 | |
| start_depth | integer | No | 3 and must be between 0 and 8 | Initial depth, defaults to 3 and must be between 0 and 8 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/reddit/archive/comments/7cff0b/tree?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"post_id": "7cff0b",
"limit": 50,
"start_breadth": 2,
"start_depth": 3,
"comments": [
{
"kind": "t1",
"comment": {
"id": "dppum98",
"author": "example_user",
"body": "Example archived comment",
"created_utc": 1700000000,
"retrieved_on": 1700000100,
"link_id": "t3_7cff0b",
"parent_id": "t3_7cff0b",
"score": 5
},
"replies": [
{
"kind": "more",
"more": {
"children": [
"e5abcde"
],
"count": 1,
"depth": 2
}
}
]
}
],
"source": {
"type": "arctic_shift",
"url": "https://arctic-shift.photon-reddit.com/api/comments/tree?link_id=t3_7cff0b&limit=50&start_breadth=2&start_depth=3"
}
}
}Request schema
No body schema
Response schema
#/definitions/reddit.archiveCommentsTreeResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | reddit.ArchiveCommentsTreeResponse | No | ||||
| data.comments | array | No | ||||
| data.comments[].comment | reddit.ArchiveCommentTreeNode | No | ||||
| data.comments[].comment.comment | reddit.ArchiveComment | No | ArchiveComment record, 17 fields: author, author_flair_text, author_fullname, body, created_utc, depth, distinguished, id, link_id, name, parent_id, permalink and 5 more. Described under Reddit Archive Comment IDs API. | |||
| data.comments[].comment.replies | array | No | ||||
| data.comments[].kind | string | No | t1, more | t1 | ||
| data.comments[].more | reddit.ArchiveMoreComments | No | ||||
| data.comments[].more.children | array | No | ||||
| data.comments[].more.count | integer | No | 12 | |||
| data.comments[].more.depth | integer | No | 3 | |||
| data.comments[].more.id | string | No | ||||
| data.comments[].more.name | string | No | ||||
| data.comments[].more.parent_id | string | No | ||||
| data.limit | integer | No | 50 | |||
| data.parent_id | string | No | ||||
| data.post_id | string | No | 7cff0b | |||
| data.source | reddit.SourceDetail | No | ||||
| data.source.type | string | No | feed | Kind of Reddit source the data was read from. | ||
| data.source.url | string | No | https://www.reddit.com/r/OpenAI/ | Reddit URL the data was read from. | ||
| data.start_breadth | integer | No | 2 | |||
| data.start_depth | integer | No | 3 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/reddit/archive/comments/7cff0b/tree?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"