Reddit Post API
Get one post from its thread link: title, text, author, subreddit, score and comment count.
- 1 credit per call
- Failed calls are free
- Updated
- reddit.post.get
{ "title": "Our Plans for the Future of Reddit’s Public Data API and the Developer Platform", "body": "Today u/spez posted about why, among other parts of Reddit, our Public Data API needs to evolve. It wasn’t built for today’s scale, automat…", "author": "KeyserSosa", "created_utc": 1785945942, "id": "t3_1vgbm9c", "nsfw": false, "num_comments": 0, "num_comments_available": false, "permalink": "https://www.reddit.com/r/redditdev/comments/1vgbm9c/our_plans_for_the_future_of_reddits_public_data/", "score": 0, "score_available": false, "subreddit": "redditdev", "type": "post", "url": null}
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| url | string | yes | The thread's link: a reddit.com/r/.../comments/... link, a reddit.com/comments/<id> link or a redd.it short link. | https://www.reddit.com/r/redditdev/comments/1vg… |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| title | string | The post's title. | Our Plans for the Future of Reddit’s Public Data API and the De… |
| body | string | The post's text. | Today u/spez posted about why, among other parts of Reddit, our… |
| author | string | The username that posted it. | KeyserSosa |
| created_utc | integer | When it was posted, as a Unix time in seconds (UTC). | 1,785,945,942 |
| id | string | Reddit's ID for the post. | t3_1vgbm9c |
| nsfw | boolean | Whether Reddit marks it as adult content. | false |
| num_comments | integer | Comments on the post, when Reddit shows the count. | 0 |
| num_comments_available | boolean | Whether Reddit showed a comment count; when false, ignore num_comments. | false |
| permalink | string | The post's link on Reddit. | https://www.reddit.com/r/redditdev/comments/1vgbm9c/our_plans_f… |
| score | integer | The post's score, when Reddit shows it. | 0 |
| score_available | boolean | Whether Reddit showed a score; when false, ignore score. | false |
| subreddit | string | The community it was posted in. | redditdev |
| type | string | What kind of item it is, here a post. | post |
| url | null | The link the post shares, when it shares one. | null |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "reddit.post.get", "input": { "url": "https://www.reddit.com/r/redditdev/comments/1vgbm9c/our_plans_for_the_future_of_reddits_public_data/" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "reddit.post.get", "input": { "url": "https://www.reddit.com/r/redditdev/comments/1vgbm9c/our_plans_for_the_future_of_reddits_public_data/" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "reddit.post.get", "input": { "url": "https://www.reddit.com/r/redditdev/comments/1vgbm9c/our_plans_for_the_future_of_reddits_public_data/" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, get the Reddit post for https://www.reddit.com/r/redditdev/comments/1vgbm9c/our_plans_for_the_future_of_reddits_public_data/. Tell me what it costs before you run it, then show the results as a table.
More from the Reddit API
The same data from other platforms
Reddit Post API FAQ
The short answers. The docs have the long ones.
How much does the Reddit Post API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send url. The input fields below list every option with its type and limits.
Do I need a Reddit login?
No. It reads public Reddit data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds reddit.post.get, checks its price and runs it with the same credits as the REST API.
Your first Reddit call is free.
Up to 100 free credits to start, no card needed.