Reddit API endpoint
Looks up known Reddit post ids in Arctic Shift's historical archive. Supply 1 to 1,000 comma-separated ids; duplicates are removed, results follow input order, and missing ids are listed separately. The service sends at most two upstream requests of up to 500 ids each. Archived scores and comment counts are snapshots, and removed_by_category is included when available.
/reddit/archive/posts/idsQuery parameter: ids is required and accepts 1 to 1,000 comma-separated Reddit post ids. Optional t3_ prefixes are accepted. Duplicate ids are removed while preserving the first occurrence.
Notable response behavior: Arctic Shift is queried in chunks of at most 500 ids, so one API call makes no more than two upstream requests. posts follow the order of the unique requested ids; ids with no archived record appear in missing_ids. A valid lookup with no matches returns 200 with an empty posts array. Each record includes archive timestamps when available; score and num_comments are archived snapshots. Arctic Shift's current post ID and search field selectors do not accept removed_by_category, so this API does not request or guarantee that property. The service caps each source response at 8 MiB; split very large lookups into smaller id lists if a request returns 503. The source.requests field reports the number of upstream calls made.
Credit weight: 3 credits per 100 returned posts, minimum 3 and maximum 30.
| Field | Filled in, of 1 checked | Values in the sample |
|---|---|---|
| id | 1 | |
| author | 1 | |
| author_fullname | 1 | |
| created_utc | 1 | 2026-10-03 |
| retrieved_on | 1 | 1,790,988,645 |
| subreddit | 1 | |
| subreddit_id | 1 | |
| score | 1 | 590 |
| link_flair_text | 1 | |
| num_comments | 1 | 31 |
| over_18 | 1 | true in 0 of 1 |
| post_hint | 1 | |
| selftext | 1 | |
| spoiler | 1 | true in 0 of 1 |
| title | 1 | |
| url | 1 | i.redd.it |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| ids | string | Yes | Comma-separated Reddit post ids (1-1,000); optional t3_ prefixes are accepted | 1wwa2ff,z1c9z | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/reddit/archive/posts/ids?ids=1wwa2ff%2Cz1c9z" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"requested_count": 2,
"returned_count": 1,
"posts": [
{
"id": "1wwa2ff",
"author": "turtle-toaster",
"created_utc": 1790988630,
"retrieved_on": 1790988645,
"subreddit": "OpenAI",
"title": "Truly groundbreaking stuff"
}
],
"missing_ids": [
"z1c9z"
],
"source": {
"type": "arctic_shift",
"url": "https://arctic-shift.photon-reddit.com/api/posts/ids",
"requests": 1
}
}
}Request schema
No body schema
Response schema
#/definitions/reddit.archivePostsIDsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | reddit.ArchivePostsIDsResponse | No | ||||
| data.missing_ids | array | No | ||||
| data.posts | array | No | ||||
| data.posts[].author | string | No | reddit_user | |||
| data.posts[].author_flair_text | string | No | ||||
| data.posts[].author_fullname | string | No | ||||
| data.posts[].created_utc | integer | No | 1713484800 | |||
| data.posts[].crosspost_parent | string | No | ||||
| data.posts[].distinguished | string | No | ||||
| data.posts[].id | string | No | 1abcxyz | |||
| data.posts[].link_flair_text | string | No | ||||
| data.posts[].num_comments | integer | No | 12 | |||
| data.posts[].over_18 | boolean | No | ||||
| data.posts[].post_hint | string | No | ||||
| data.posts[].removed_by_category | string | No | ||||
| data.posts[].retrieved_on | integer | No | 1713484820 | |||
| data.posts[].score | integer | No | 42 | |||
| data.posts[].selftext | string | No | ||||
| data.posts[].spoiler | boolean | No | ||||
| data.posts[].subreddit | string | No | OpenAI | |||
| data.posts[].subreddit_id | string | No | ||||
| data.posts[].title | string | No | ||||
| data.posts[].url | string | No | ||||
| data.requested_count | integer | No | ||||
| data.returned_count | integer | No | ||||
| data.source | reddit.ArchiveBatchSource | No | ||||
| data.source.requests | integer | No | 2 | |||
| data.source.type | string | No | arctic_shift | |||
| data.source.url | string | No | https://arctic-shift.photon-reddit.com/api/posts/ids | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/posts/ids?ids=1wwa2ff%2Cz1c9z" \
-H "x-api-key: $CRAWLORA_API_KEY"