Reddit API endpoint
Searches Arctic Shift's public historical post archive. Supply at least one of query, author, subreddit, or url; date bounds can further narrow that search. This is separate from the live Reddit search endpoint. created_after/created_before are time boundaries, not Reddit listing cursors; posts include created_utc and retrieved_on so callers can see when the archive captured each record. Archived scores and comment counts can lag changes for roughly 36 hours. A valid query with no matches returns an empty posts array. Slow or throttled upstream searches return 503 with Retry-After.
/reddit/archive/posts/searchSearches historical public Reddit posts in Arctic Shift. Use /api/v1/reddit/search for live Reddit search.
Query parameters: supply at least one of query, author, subreddit, or url; date bounds alone are rejected to avoid an unbounded archive scan. query searches post titles and selftext; author and subreddit restrict the archive search; url matches a linked URL prefix and url_exact=true requests an exact URL match. created_after and created_before are creation-time boundaries, not live Reddit listing cursors. They accept epoch seconds or milliseconds, ISO 8601 dates/timestamps, or relative offsets such as 1year, 2d, and 5min. sort is optional and must be asc or desc; it defaults to desc. limit defaults to 25 and clamps to 100.
Credit weight: 3 per successful call.
Notable response behavior: a valid search with no matches returns 200 with an empty posts array. Each post includes created_utc and, when available, retrieved_on, the archive capture time. Archived score and num_comments are snapshots; Arctic Shift says they can take roughly 36 hours to settle. The current source rejects removed_by_category in its search field selector, so this route does not request or guarantee that property. Slow or throttled source queries return 503 with Retry-After; narrow filters and wait before retrying. The upstream has no uptime or performance guarantee.
The response does not include an opaque next-page cursor or total count. Use the returned timestamps with created_after or created_before to request a separate time window.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | No | Text search across archived post titles and selftext | ||
| author | string | No | Public Reddit username filter | ||
| subreddit | string | No | Subreddit name filter | ||
| url | string | No | Linked URL prefix filter | ||
| url_exact | boolean | No | Require an exact URL match; requires url | ||
| created_after | string | No | Creation-time lower bound; accepts epoch seconds or milliseconds, ISO 8601 dates, or relative offsets such as 1year, 2d, or 5min | ||
| created_before | string | No | Creation-time upper bound; accepts epoch seconds or milliseconds, ISO 8601 dates, or relative offsets such as 1year, 2d, or 5min | ||
| sort | string | No | Sort by creation time Allowed values: asc, desc. | ||
| limit | integer | No | 25 and clamps to 100 | Maximum posts, defaults to 25 and clamps to 100 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/reddit/archive/posts/search?query=coffee&url_exact=true&sort=asc&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "openai",
"subreddit": "OpenAI",
"created_after": "2026-01-01",
"sort": "desc",
"limit": 25,
"posts": [
{
"id": "abc123",
"author": "example_user",
"created_utc": 1700000000,
"retrieved_on": 1700000100,
"subreddit": "OpenAI",
"score": 42,
"num_comments": 12,
"title": "Example archived post"
}
],
"source": {
"type": "arctic_shift",
"url": "https://arctic-shift.photon-reddit.com/api/posts/search?subreddit=OpenAI&sort=desc&limit=25"
}
}
}Request schema
No body schema
Response schema
#/definitions/reddit.archivePostsSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | reddit.ArchivePostsSearchResponse | No | ||||
| data.author | string | No | ||||
| data.created_after | string | No | ||||
| data.created_before | string | No | ||||
| data.limit | integer | No | 25 | |||
| data.posts | array | No | ArchivePost record, 20 fields: author, author_flair_text, author_fullname, created_utc, crosspost_parent, distinguished, id, link_flair_text, num_comments, over_18, post_hint, removed_by_category and 8 more. Described under Look up archived Reddit posts by id API. | |||
| data.query | string | No | ||||
| data.sort | string | No | desc | |||
| 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.subreddit | string | No | ||||
| data.url | string | No | ||||
| data.url_exact | boolean | No | ||||
| 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/search?query=coffee&url_exact=true&sort=asc&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"