
Instagram Reel Scraper
scrape.ly/store/echofield/instagram-reel-scraperSocial mediaVideos
1 monthly user

Scrape public Reddit posts, comments, communities, and user profiles from listings, search, and direct links.
Scrape public Reddit posts, full comment threads, communities and user profiles by keyword, subreddit or URL. Every post comes with 75 fields, including media, galleries, videos, flair, removal status and ready-made engagement metrics. No Reddit account, API key or cookies needed, and you pay only per saved result.
dataType.scorePerHour, commentsPerHour and isHighEngagement.| Field | What it does |
|---|---|
searchTerms | Keywords. Each runs its own search for posts, comments and/or communities (searchPosts, searchComments, searchCommunities). |
startUrls | Subreddit pages (any sort and time, e.g. /r/technology/top/?t=week), post and comment links, user profiles, search pages, r/popular, the front page. |
subredditUrls | Names or links of subreddits for a deep scrape that combines several listings to reach many more posts. |
maxPostsCount | Posts per keyword or URL (for subredditUrls: the total). 0 saves no posts. |
crawlCommentsPerPost, maxCommentsPerPost | Also save each post's comment thread, up to this many comments per post. |
maxCommentsCount, maxCommunitiesCount | Limits for comment search and profile comments, and for community search. |
withinCommunity, searchSort, searchTime | Search inside one subreddit, sort order and time range. |
postedAfter, postedBefore, commentedAfter, commentedBefore | Date filters: YYYY-MM-DD or relative values such as 7 days. |
onlyWithFlair, includeNSFW | Post flair filter and 18+ content. |
{
"searchTerms": ["notion"],
"searchPosts": true,
"searchComments": true,
"searchSort": "new",
"searchTime": "week",
"startUrls": [
{ "url": "https://www.reddit.com/r/technology/top/?t=week" },
{ "url": "https://www.reddit.com/r/AskReddit/comments/1x3uinu/what_previously_glorified_careers_are_struggling/" }
],
"maxPostsCount": 20,
"crawlCommentsPerPost": true,
"maxCommentsPerPost": 20
}
Tips
maxPostsCount: 0 returns the community profile with its rules instead of posts.maxPostsCount) and recent comments (maxCommentsCount). Use /user/name/submitted or /user/name/comments for only one of them.Every item is a flat JSON object. dataType tells you the shape: post, comment, community or user_profile. All timestamps are ISO 8601 UTC strings. Fields prefixed parsed hold the same Reddit id without its t3_/t1_/t5_/t2_ prefix.
| Shape | Key fields |
|---|---|
post | id, title, body, bodyHtml, postUrl, contentUrl, authorName, communityName, flair, score, upvoteRatio, commentsCount, createdAt, postType, mediaType, images, galleryImages, mediaAssets, videoUrl, over18, spoiler, locked, stickied, removedByCategory, scorePerHour, commentsPerHour, isHighEngagement, wordCount, searchTerm (search items only) and more |
comment | id, url, body, bodyHtml, authorName, authorFullname, postId, parentId, parentKind, depth, score, commentCreatedAt, isSubmitter, controversiality, stickied, postTitle / postCommentsCount (search and profile comments), searchTerm |
community | name, title, publicDescription, description, membersCount, createdAt, nsfw, subredditType, submissionType, communityIcon, bannerImage, allowImages/allowVideos/allowPolls, rules (short name, description, kind, priority) |
user_profile | username, totalKarma, linkKarma, commentKarma, isMod, isEmployee, verified, hasVerifiedEmail, iconImg, bio, createdAt, profileUrl |
Example post (trimmed):
{
"id": "t3_1x5thwn",
"parsedId": "1x5thwn",
"dataType": "post",
"title": "City council approves new open data portal for transit",
"body": "",
"contentUrl": "https://example-news.com/2026/10/14/open-data-transit/",
"postUrl": "https://www.reddit.com/r/technology/comments/1x5thwn/city_council_approves_new_open_data_portal/",
"authorName": "maple_byte_77",
"communityName": "r/technology",
"flair": "Society",
"postType": "link",
"score": 4697,
"upvoteRatio": 0.98,
"commentsCount": 406,
"createdAt": "2026-10-14T15:00:14.000Z",
"domain": "example-news.com",
"images": ["https://external-preview.redd.it/9xIpLmYF....jpeg?auto=webp&s=6541..."],
"over18": false,
"subredditSubscribers": 20581873,
"mediaType": "link",
"hasMedia": false,
"ageHours": 2.8056,
"scorePerHour": 1674.1517,
"commentsPerHour": 144.7106,
"engagementTotal": 5103,
"isHighEngagement": true,
"wordCount": 12,
"outboundUrlHost": "example-news.com",
"crawledAt": "2026-10-14T17:48:32.791Z"
}
Example comment (trimmed):
{
"id": "pfg8t6s",
"dataType": "comment",
"url": "https://www.reddit.com/r/AskReddit/comments/1x3uinu/comment/pfg8t6s/",
"postId": "t3_1x3uinu",
"parentId": "t1_pffkim4",
"parentKind": "comment",
"depth": 1,
"authorName": "quiet_harbor_42",
"subredditName": "AskReddit",
"body": "Work in digital marketing and I can confirm this.",
"bodyHtml": "<div class=\"md\"><p>Work in digital marketing and I can confirm this.</p>\n</div>",
"score": 1023,
"commentCreatedAt": "2026-10-12T14:14:01.000Z",
"isSubmitter": false,
"controversiality": 0,
"wordCount": 9,
"crawledAt": "2026-10-14T17:48:54.053Z"
}
Each run also stores a run summary (RUN-SUMMARY in the key-value store, linked from the Output tab) with item counts per shape, skipped targets and their reason (not_found, private, banned, suspended, blocked), request counts and any input it repaired.
You pay $1.40 per 1,000 results ($0.0014 per saved post, comment, community or profile). There is no start fee. Platform usage (compute and proxy traffic) is billed separately at the platform's rates and is small: a typical 1,000-result run uses well under one cent of it.
Example: 1,000 posts from a keyword search cost about $1.40 plus a fraction of a cent of usage.
Set Max total charge on a run to cap your spend; the scraper stops cleanly when it is reached.
Is it legal to scrape Reddit? This actor only reads public pages that anyone can open without logging in. You are responsible for how you use the data, including privacy laws such as GDPR and Reddit's terms. Avoid collecting personal data you do not need.
Do I need a Reddit account, API key or cookies? No. Everything works logged out.
Do I need a proxy? Reddit limits requests per IP address. The default datacenter proxy spreads requests over fresh IPs and is the cheapest option. If Reddit refuses an exit, the scraper rotates to a new one, and after repeated refusals it moves new sessions to residential proxies automatically. Traffic is small either way.
How many results can I get? Reddit serves about 1,000 items per listing or search. The full subreddit scrape combines several listings (new, top by period, hot, controversial, rising) to go beyond that. Filters and NSFW settings reduce the count.
Why is a field empty or null?
Reddit leaves some fields empty for some items (for example bodyHtml on link posts), and moderator-only fields such as removedBy are always null for public scrapes. removedByCategory is the public removal reason.
Can I schedule it or use the API?
Yes. Schedule a run (for example daily with postedAfter set to 1 day) or start it from the API, and fetch the dataset as JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermsarrayOptionaldefault []Search keywords
Each keyword runs its own Reddit search. Choose below whether to collect posts, comments or communities for it.
startUrlsarrayOptionalReddit URLs
Subreddit pages (any sort, e.g. /r/technology/top/?t=week), post or comment links, user profiles, search pages, r/popular or the front page.
subredditUrlsarrayOptionaldefault []Full subreddit scrape
Subreddit names or links (AskReddit, r/AskReddit or https://www.reddit.com/r/AskReddit/). Combines the new, top, hot, controversial and rising listings to reach far more posts than one subreddit page. Max posts is the total across all subreddits listed here.
maxPostsCountintegerOptionaldefault 20Max posts per keyword / URL
Upper limit of posts saved for each keyword or URL (for the full subreddit scrape: the total). 0 saves no posts, e.g. to get only community info from a subreddit URL.
Optional. Narrow results by date, flair and NSFW.
postedAfterstringOptionalPosts created on or after
Only posts created on or after this date (YYYY-MM-DD) or within a relative window such as "7 days" or "12 hours".
postedBeforestringOptionalPosts created on or before
Only posts created on or before this date (YYYY-MM-DD).
commentedAfterstringOptionalComments created on or after
Only comments created on or after this date (YYYY-MM-DD) or relative window.
commentedBeforestringOptionalComments created on or before
Only comments created on or before this date (YYYY-MM-DD).
onlyWithFlairbooleanOptionaldefault falseOnly posts that have a flair
Skip posts without a post flair.
includeNSFWbooleanOptionaldefault falseInclude NSFW (18+) content
Keep posts, comments and communities marked 18+.
Applies to the search keywords.
searchPostsbooleanOptionaldefault trueSearch for posts
Save matching posts for each keyword.
searchCommentsbooleanOptionaldefault falseSearch for comments
Save matching comments for each keyword (up to Max search comments).
searchCommunitiesbooleanOptionaldefault falseSearch for communities
Save matching subreddits with their settings and rules (up to Max communities).
withinCommunitystringOptionalSearch inside one subreddit
Optional subreddit name, e.g. technology. Post and comment searches stay inside it.
searchSortenumOptionaldefault "new"Sort search results by
Order of the search results.
searchTimeenumOptionaldefault "all"Time range
Only search results from this period.
maxCommentsCountintegerOptionaldefault 20Max search / profile comments
Upper limit of comments saved per keyword (comment search) and per user profile.
maxCommunitiesCountintegerOptionaldefault 2Max communities
Upper limit of communities saved per keyword (community search).
crawlCommentsPerPostbooleanOptionaldefault falseScrape comments for each post
Also save the comment thread (with nested replies) of every saved post. More data, slower.
maxCommentsPerPostintegerOptionaldefault 20Max comments per post
Upper limit of comments saved per post when post comments are on.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are the default and cheapest. If Reddit refuses them, the scraper switches new sessions to residential proxies automatically.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| dataType | string | Item kind: post, comment, community or user_profile |
| id | string | Reddit ID (t3_/t5_/t2_ fullname; bare id for comments) |
| title | string | Post or community title |
| body | string | Post or comment text (markdown) |
| authorName | string | Author username |
| communityName | string | Subreddit with r/ prefix (posts) |
| subredditName | string | Subreddit name (comments) |
| score | integer | Net score |
| commentsCount | integer | Comments on the post |
| createdAt | string | Creation time (ISO 8601 UTC) |
| commentCreatedAt | string | Comment creation time (ISO 8601 UTC) |
| postUrl | string | Post permalink |
| url | string | Comment or community URL |
| postTitle | string | Title of the comment's post |
| name | string | Community name |
| membersCount | integer | Community members |
| username | string | User name |
| totalKarma | integer | User total karma |
| profileUrl | string | User profile URL |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One saved Reddit post, comment, community or user profile | $0.0014 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('echofield/reddit-posts-scraper').call({
"searchTerms": [],
"startUrls": [
{
"url": "https://www.reddit.com/r/technology/"
}
],
"maxPostsCount": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run echofield/reddit-posts-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=echofield/reddit-posts-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Latest posts from a user profile URL.
Newest comments and matching subreddits for a keyword.
Full subreddit post listing.
Top posts of the year with their comment threads.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.