Reddit data via Wire — post search, subreddit feeds, post details with comments, subreddit and user info as structured JSON
https://api.anakin.io/v1/wire/taskPost search, subreddit feeds, post details with comments, subreddit and user info. Every Reddit action is a Wire action: call POST /v1/wire/task with the action_id and params below, then poll GET /v1/wire/jobs/{id} (or pass a webhook_url). All actions read public data — no login, no cookies, auth_mode: none.
Catalog: reddit · Actions: 7 · Auth: none · Billing: only successful calls are charged
| Action | action_id | Credits | Returns |
|---|---|---|---|
| Popular Subreddits | rt_popular_subreddits | 2 | 25 subreddits per page |
| Post Details | rt_post_details | 2 | 3 comments |
| Post Search | rt_search | 2 | 22 posts per page |
| Subreddit Info | rt_subreddit_info | 2 | 1 item |
| Subreddit Posts | rt_subreddit_posts | 2 | 25 posts per page |
| Subreddit Search | rt_search_subreddits | 2 | 25 subreddits per page |
| User Profile | rt_user_profile | 2 | 1 item |
Credits marked + grow with limit — the exact formula is on each action. See Pricing for what a credit costs on your plan.
Call a Reddit action
The same call works for every action on this page — swap action_id and params.
curl -X POST https://api.anakin.io/v1/wire/task \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{"action_id": "rt_popular_subreddits", "params": {"limit": 25}}'import requests, time
res = requests.post('https://api.anakin.io/v1/wire/task', headers={'X-API-Key': 'your_api_key'},
json={"action_id": "rt_popular_subreddits", "params": {"limit": 25}})
job_id = res.json()['job_id']
while True: # poll until the job settles (or pass webhook_url and skip this)
job = requests.get(f'https://api.anakin.io/v1/wire/jobs/{job_id}', headers={'X-API-Key': 'your_api_key'}).json()
if job['status'] in ('completed', 'failed'):
break
time.sleep(2)
print(job['data']['data'])const headers = { 'X-API-Key': 'your_api_key', 'Content-Type': 'application/json' };
const res = await fetch('https://api.anakin.io/v1/wire/task', { method: 'POST', headers, body: JSON.stringify({"action_id": "rt_popular_subreddits", "params": {"limit": 25}}) });
const { job_id } = await res.json();
let job;
do { // poll until the job settles (or pass webhook_url and skip this)
await new Promise((r) => setTimeout(r, 2000));
job = await (await fetch(`https://api.anakin.io/v1/wire/jobs/${job_id}`, { headers })).json();
} while (!['completed', 'failed'].includes(job.status));
console.log(job.data.data);The job result wraps the action's output: data.status is "ok" or "error", and data.data holds the fields shown under each action below. See the overview for the full envelope.
Popular Subreddits
List currently popular/trending subreddits, paginated. Returns each community's name, title, description, and URL
action_id: rt_popular_subreddits · Credits: 2 / call · Returns: 25 subreddits per page
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to rt_popular_subreddits |
params.limit | integer | Results per page (1-100). Default 25. Default 25 |
params.after | string | Pagination cursor from a previous response. |
Request
{
"action_id": "rt_popular_subreddits",
"params": {
"limit": 25
}
}Response — data.data of the completed job (trimmed):
{
"limit": 25,
"after": null,
"subreddits": [
{
"id": "t5_2qs0k",
"display_name": "Home",
"title": "Home",
"public_description": "",
"subscribers": null,
"created_utc": "2009-01-25T02:25:57+00:00",
"over18": null,
"url": "https://www.reddit.com/r/Home/",
"icon_img": "",
"subreddit_type": null
},
{
"id": "t5_2qh1i",
"display_name": "AskReddit",
"title": "Ask Reddit...",
"public_description": "r/AskReddit is the place to ask and answer thought-provoking questions.",
"subscribers": null,
"created_utc": "2008-01-25T03:52:15+00:00",
"over18": null,
"url": "https://www.reddit.com/r/AskReddit/",
"icon_img": "https://a.thumbs.redditmedia.com/IrfPJGuWzi_ewrDTBlnULeZsJYGz81hsSQoQJyw6LD8.png",
"subreddit_type": null
},
"… 23 more"
]
}Paging: pass the returned
aftervalue back asafterfor the next page.
Post Details
Fetch a single Reddit post together with its top-level comments in one call. Scores and vote ratios aren't provided by this feed. No auth required.
action_id: rt_post_details · Credits: 2 / call · Returns: 3 comments
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to rt_post_details |
params.post_id required | string | Reddit post id (the short alphanumeric part of the permalink). |
params.subreddit | string | Optional subreddit name — improves URL routing when provided. |
params.comment_limit | integer | Maximum number of comments to return. Default 50. Default 50 |
Request
{
"action_id": "rt_post_details",
"params": {
"post_id": "1abc2de",
"comment_limit": 50
}
}Response — data.data of the completed job (trimmed):
{
"id": "1abc2de",
"name": "t3_1abc2de",
"title": "[deleted]",
"subreddit": "PublicFlashing",
"author": "",
"score": null,
"upvote_ratio": null,
"num_comments": null,
"created_utc": "2024-01-26T06:37:26+00:00",
"url": "https://www.reddit.com/r/PublicFlashing/comments/1abc2de/who_wants_to_play_some_basketball/",
"permalink": "/r/PublicFlashing/comments/1abc2de/who_wants_to_play_some_basketball/",
"selftext": "[removed] to r/PublicFlashing [link] [comments]",
"thumbnail": null,
"is_video": null,
"over_18": null,
"link_flair_text": null,
"comments": [
{
"id": "kjmhnp5",
"name": "t1_kjmhnp5",
"author": "AutoModerator",
"body": "This sub is for flashing in public, which means you must be FLASHING and there MUST BE other people nearby. Flashing is BRIEFLY exposing your breasts or geni…",
"subreddit": "PublicFlashing",
"score": null,
"is_submitter": null,
"created_utc": "2024-01-26T06:37:28+00:00",
"permalink": "/r/PublicFlashing/comments/1abc2de/who_wants_to_play_some_basketball/kjmhnp5/",
"link_title": "/u/AutoModerator on Who wants to play some basketball/"
},
{
"id": "kjmkywb",
"name": "t1_kjmkywb",
"author": "Silly-old-fart",
"body": "I’m calling a double dribble 🤤🤤",
"subreddit": "PublicFlashing",
"score": null,
"is_submitter": null,
"created_utc": "2024-01-26T07:12:33+00:00",
"permalink": "/r/PublicFlashing/comments/1abc2de/who_wants_to_play_some_basketball/kjmkywb/",
"link_title": "/u/Silly-old-fart on Who wants to play some basketball/"
},
"… 1 more"
]
}Post Search
Search Reddit posts across all subreddits (sort/time, pagination). Returns real posts only
action_id: rt_search · Credits: 2 / call · Returns: 22 posts per page
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to rt_search |
params.query required | string | Search terms (e.g. 'python asyncio', 'machine learning'). |
params.sort | string | Sort: relevance | hot | top | new | comments. Default 'relevance'. Default "relevance" |
params.time | string | Time filter: hour | day | week | month | year | all. Default 'all'. Default "all" |
params.limit | integer | Results per page (1-100). Default 25. Default 25 |
params.after | string | Pagination cursor from a previous response. |
params.match | boolean | Client-side keyword filter. When true (default), only posts whose title or body contain all query tokens are returned — required for reliable keyword/brand monitoring because Reddit's sort=new ignores the query server-side. Set false for Reddit's raw, unfiltered ordering. Default true |
Request
{
"action_id": "rt_search",
"params": {
"query": "python asyncio",
"sort": "relevance",
"time": "all",
"limit": 25,
"match": true
}
}Response — data.data of the completed job (trimmed):
{
"query": "python asyncio",
"sort": "relevance",
"time": "all",
"limit": 25,
"after": null,
"match": true,
"posts": [
{
"id": "1waaqo8",
"name": "t3_1waaqo8",
"title": "Optimizing throughput on a Python asyncio HTTP GET/PUT data relay (4-core Linux VPS to Cloudflare R2)",
"subreddit": "networking",
"author": "Arkad77",
"score": null,
"upvote_ratio": null,
"num_comments": null,
"created_utc": "2026-09-08T01:35:26+00:00",
"url": "https://www.reddit.com/r/networking/comments/1waaqo8/optimizing_throughput_on_a_python_asyncio_http/",
"permalink": "/r/networking/comments/1waaqo8/optimizing_throughput_on_a_python_asyncio_http/",
"selftext": "Hi network & Python experts, I am running a Python asyncio data streaming worker on a 4-core AMD EPYC Linux VPS (1 Gbps port, TCP BBR enabled). The worker wo…",
"thumbnail": null,
"is_video": null,
"over_18": null,
"link_flair_text": null
},
{
"id": "1wfe4rf",
"name": "t3_1wfe4rf",
"title": "Python Asyncio Crash Course: Complete Tutorial",
"subreddit": "algeriatech",
"author": "stormsidali2001",
"score": null,
"upvote_ratio": null,
"num_comments": null,
"created_utc": "2026-09-13T17:36:48+00:00",
"url": "https://www.reddit.com/r/algeriatech/comments/1wfe4rf/python_asyncio_crash_course_complete_tutorial/",
"permalink": "/r/algeriatech/comments/1wfe4rf/python_asyncio_crash_course_complete_tutorial/",
"selftext": " submitted by /u/stormsidali2001 to r/algeriatech [link] [comments]",
"thumbnail": null,
"is_video": null,
"over_18": null,
"link_flair_text": null
},
"… 20 more"
],
"subreddits": [
{
"id": "t5_388qb",
"display_name": "asyncio",
"title": "asyncio and asynchronous programming in python",
"public_description": "",
"subscribers": null,
"created_utc": "2015-05-15T20:00:03+00:00",
"over18": null,
"url": "https://www.reddit.com/r/asyncio/",
"icon_img": "",
"subreddit_type": null
},
{
"id": "t5_2qh0y",
"display_name": "Python",
"title": "Python",
"public_description": "The largest Python community for Reddit! Stay up to date with the latest news, packages, and meta information relating to the Python programming language. --…",
"subscribers": null,
"created_utc": "2008-01-25T03:14:39+00:00",
"over18": null,
"url": "https://www.reddit.com/r/Python/",
"icon_img": "https://b.thumbs.redditmedia.com/8HiO52_EuT_h63Qg.png",
"subreddit_type": null
},
"… 1 more"
],
"post_count": 22,
"posts_dropped_by_filter": 0
}Paging: pass the returned
aftervalue back asafterfor the next page.
Subreddit Info
Fetch a subreddit's metadata: display name, title, public description, URL, and icon. Subscriber count, NSFW flag, and creation date aren't provided by this feed. No auth required.
action_id: rt_subreddit_info · Credits: 2 / call · Returns: 1 item
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to rt_subreddit_info |
params.subreddit required | string | Subreddit name without the 'r/' prefix (e.g. 'programming', 'askreddit'). |
Request
{
"action_id": "rt_subreddit_info",
"params": {
"subreddit": "programming"
}
}Response — data.data of the completed job (trimmed):
{
"display_name": "programming",
"title": "programming",
"public_description": "Computer Programming",
"description": null,
"subscribers": null,
"created_utc": null,
"over18": null,
"url": "https://www.reddit.com/r/programming/",
"icon_img": "https://b.thumbs.redditmedia.com/2rTE46grzsr-Ll3Q.png",
"banner_img": null,
"community_icon": null,
"subreddit_type": null
}Subreddit Posts
Fetch posts from a specific subreddit with sort (hot/new/top/rising), time filter, and pagination. Post scores and comment counts aren't provided by this feed. No auth required.
action_id: rt_subreddit_posts · Credits: 2 / call · Returns: 25 posts per page
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to rt_subreddit_posts |
params.subreddit required | string | Subreddit name without the 'r/' prefix (e.g. 'python', 'programming'). |
params.sort | string | Sort: hot | new | top | rising. Default 'hot'. Default "hot" |
params.time | string | Time filter for sort=top: hour | day | week | month | year | all. Default 'all'. Default "all" |
params.limit | integer | Results per page (1-100). Default 25. Default 25 |
params.after | string | Pagination cursor from a previous response. |
Request
{
"action_id": "rt_subreddit_posts",
"params": {
"subreddit": "programming",
"sort": "hot",
"time": "all",
"limit": 25
}
}Response — data.data of the completed job (trimmed):
{
"subreddit": "programming",
"sort": "hot",
"time": "all",
"limit": 25,
"after": null,
"posts": [
{
"id": "1x6fqck",
"name": "t3_1x6fqck",
"title": "How Stripe uses graph search and state machines to auto-remediate a global database fleet",
"subreddit": "programming",
"author": "Ok_Stomach6651",
"score": null,
"upvote_ratio": null,
"num_comments": null,
"created_utc": "2026-10-15T08:00:43+00:00",
"url": "https://www.reddit.com/r/programming/comments/1x6fqck/how_stripe_uses_graph_search_and_state_machines/",
"permalink": "/r/programming/comments/1x6fqck/how_stripe_uses_graph_search_and_state_machines/",
"selftext": " submitted by /u/Ok_Stomach6651 [link] [comments]",
"thumbnail": null,
"is_video": null,
"over_18": null,
"link_flair_text": null
},
{
"id": "1x62x6p",
"name": "t3_1x62x6p",
"title": "A C++ Trick Question - Blog Post",
"subreddit": "programming",
"author": "MegaGreenLightning",
"score": null,
"upvote_ratio": null,
"num_comments": null,
"created_utc": "2026-10-14T20:58:51+00:00",
"url": "https://www.reddit.com/r/programming/comments/1x62x6p/a_c_trick_question_blog_post/",
"permalink": "/r/programming/comments/1x62x6p/a_c_trick_question_blog_post/",
"selftext": " submitted by /u/MegaGreenLightning [link] [comments]",
"thumbnail": null,
"is_video": null,
"over_18": null,
"link_flair_text": null
},
"… 23 more"
]
}Paging: pass the returned
aftervalue back asafterfor the next page.
Subreddit Search
Search for subreddits by topic keyword (community discovery). Returns each community's name, title, description, and URL. Subscriber count and NSFW flag aren't provided. No auth required.
action_id: rt_search_subreddits · Credits: 2 / call · Returns: 25 subreddits per page
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to rt_search_subreddits |
params.query required | string | Search terms (e.g. 'programming', 'cooking'). |
params.limit | integer | Results per page (1-100). Default 25. Default 25 |
params.after | string | Pagination cursor from a previous response. |
Request
{
"action_id": "rt_search_subreddits",
"params": {
"query": "programming",
"limit": 25
}
}Response — data.data of the completed job (trimmed):
{
"query": "programming",
"limit": 25,
"after": null,
"subreddits": [
{
"id": "t5_2fwo",
"display_name": "programming",
"title": "programming",
"public_description": "Computer Programming",
"subscribers": null,
"created_utc": "2006-02-28T18:19:29+00:00",
"over18": null,
"url": "https://www.reddit.com/r/programming/",
"icon_img": "https://b.thumbs.redditmedia.com/2rTE46grzsr-Ll3Q.png",
"subreddit_type": null
},
{
"id": "t5_2qhoe",
"display_name": "C_Programming",
"title": "C",
"public_description": "The subreddit for the C programming language",
"subscribers": null,
"created_utc": "2008-03-27T17:25:40+00:00",
"over18": null,
"url": "https://www.reddit.com/r/C_Programming/",
"icon_img": "",
"subreddit_type": null
},
"… 23 more"
]
}Paging: pass the returned
aftervalue back asafterfor the next page.
User Profile
Fetch a Reddit user's public profile (bio and profile URL) and optionally their recent posts and/or comments. Karma, account age, and badges aren't provided by this feed. No auth required.
action_id: rt_user_profile · Credits: 2 / call · Returns: 1 item
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to rt_user_profile |
params.username required | string | Reddit username (without 'u/' prefix). |
params.include_posts | boolean | Fetch the user's recent posts. Default false. Default false |
params.include_comments | boolean | Fetch the user's recent comments. Default false. Default false |
params.posts_limit | integer | Number of recent posts when include_posts=true (max 25). Default 10. Default 10 |
params.comments_limit | integer | Number of recent comments when include_comments=true (max 25). Default 10. Default 10 |
Request
{
"action_id": "rt_user_profile",
"params": {
"username": "spez",
"include_posts": false,
"include_comments": false,
"posts_limit": 10,
"comments_limit": 10
}
}Response — data.data of the completed job (trimmed):
{
"username": "spez",
"link_karma": null,
"comment_karma": null,
"total_karma": null,
"created": null,
"is_gold": null,
"is_mod": null,
"has_verified_email": null,
"icon_img": null,
"description": "Reddit CEO",
"url": "https://www.reddit.com/user/spez",
"posts": [],
"comments": []
}