Reddit Post
Parse a single Reddit post into structured JSON with the post body, score, upvote ratio, comment count, and the full nested comment tree with each comment author, score, and text.
API usage
Add &scraper=reddit-post to a Crawling API request. URL-encode the target URL in the url parameter.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://www.reddit.com/r/programming/comments/1c8a1bb/' \
--data-urlencode 'scraper=reddit-post' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://www.reddit.com/r/programming/comments/1c8a1bb/',
{'scraper': 'reddit-post'}
)
import json
data = json.loads(res['body'])const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });
const res = await api.get(
'https://www.reddit.com/r/programming/comments/1c8a1bb/',
{ scraper: 'reddit-post' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://www.reddit.com/r/programming/comments/1c8a1bb/', scraper: 'reddit-post')
data = JSON.parse(res.body)Example input URL
The URL passed in the url parameter (URL-decoded for readability):
https://www.reddit.com/r/programming/comments/1c8a1bb/Response shape
JSON response body. Field types may be null when the source page omits the value.
The post itself.
Reddit fullname of the post (for example
t3_...).Post title.
Username of the post author.
Subreddit the post belongs to (without the
r/ prefix).Post score (upvotes minus downvotes).
Fraction of votes that are upvotes (0 to 1).
Total number of comments on the post.
Post creation time (ISO 8601).
Outbound link the post points to (null for text posts).
Domain of the outbound link.
Permalink to the post on Reddit.
Post flair text, when set.
True when the post is marked NSFW.
Body text of a self (text) post; empty for link posts.
Number of top-level comments returned in
comments.Top-level comments, each with a nested
replies tree.Reddit fullname of the comment (for example
t1_...).Username of the comment author.
Comment score (upvotes minus downvotes).
Comment creation time (ISO 8601).
Comment text.
Permalink to the comment on Reddit.
True when the comment author is the post author (OP).
Nested replies, each the same shape as a comment.
Sample response
{
"post": {
"id": "t3_1c8a1bb",
"title": "The hidden cost of deep dependency trees",
"author": "buildmaster",
"subreddit": "programming",
"score": 2417,
"upvoteRatio": 0.96,
"commentsCount": 312,
"createdAt": "2026-07-14T09:12:44+00:00",
"url": "https://example.com/blog/dependency-trees",
"domain": "example.com",
"permalink": "https://old.reddit.com/r/programming/comments/1c8a1bb/the_hidden_cost_of_deep_dependency_trees/",
"flair": null,
"isNsfw": false,
"selfText": ""
},
"commentCount": 3,
"comments": [
{
"id": "t1_l0aa111",
"author": "perftuner",
"score": 184,
"createdAt": "2026-07-14T09:31:07+00:00",
"body": "This matches what we saw. Flattening the tree cut our cold install time in half.",
"permalink": "https://old.reddit.com/r/programming/comments/1c8a1bb/the_hidden_cost_of_deep_dependency_trees/l0aa111/",
"isSubmitter": false,
"replies": [
{
"id": "t1_l0aa222",
"author": "buildmaster",
"score": 71,
"createdAt": "2026-07-14T09:44:52+00:00",
"body": "Yep. The transitive fan-out is where most of the time goes.",
"permalink": "https://old.reddit.com/r/programming/comments/1c8a1bb/the_hidden_cost_of_deep_dependency_trees/l0aa222/",
"isSubmitter": true,
"replies": []
}
]
}
]
}