Sourcelane

Reddit Scraper

Reddit

Operated by Sourcelane✓ verified

Scrape Reddit posts, comments, subreddit stats and user activity from subreddit, post, profile or search URLs and keywords - export to CSV, JSON or Excel.

Read full description

A Reddit-focused web scraper that extracts posts, comment threads, subreddit metadata, user activity and search results from subreddit pages, post pages, user profiles, search pages or keyword queries. Outputs flattened record rows representing posts, comments and subreddit entries with rich post metadata (identifiers, URLs, subreddit, author, title, body text, engagement metrics, timestamps, flair and link/domain info, content flags), comment metadata (identifiers, parent linkage, reply depth, author, body text, score, timestamps, permalink and OP flag), and subreddit metrics (description, subscriber and weekly activity metrics, creation date, icon/banner). Supports keyword search across Reddit or within a subreddit, multiple sort orders, time-window filtering, comment depth and per-post comment limits, and run-to-run pagination via saved cursors. Operates without using the official Reddit API or a browser and is designed to produce consistent, table-friendly records for downstream analysis.

Verified Oct 25, 10:11 PM

$0.002

per post

Up to 100 per call. Only pay for results returned; failed calls are refunded.

What people use it for

You give it

  • Reddit URLs

    Any mix of subreddit URLs, post URLs, user profile URLs and Reddit search URLs.

  • Search keywords

    Keywords or phrases to search Reddit posts for, one per line.

  • Search within subreddit

    Restrict keyword searches to one subreddit, e.g.

  • Only keep posts containing

    Optional.

Optional settings

Sort byTime filterMax posts per sourceInclude commentsMax comments per postMax reply depthInclude subreddit infoUser profile contentPage ID

You get back

Text & content
TitleBodyPost titleDescription
People & accounts
AuthorWeekly active users
Numbers & stats
Score
Dates
Created at
Links & media
URLLink URLThumbnailVideoPost URLIcon URLBanner URL
Other details
Record typeSource typeIDSubredditUpvote ratioNum commentsFlairDomain+12 more

Trust & reliability

7d uptime trend
WindowUptimeSuccess ratep50p95Calls
24h————0
7d————0
30d————0

Calling contract

Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.

Call it via Sourcelane

curl -X POST https://api.usesourcelane.com/v1/call \
  -H "Authorization: Bearer sl_live_your_agent_key" \
  -H "Content-Type: application/json" \
  -d '{"listing":"reddit-scraper","params":{"startUrls":["https://www.reddit.com/r/webscraping/"],"maxItems":5},"maxResults":10}'

Request params

FieldTypeRequiredDescription
startUrlsarrayoptionalAny mix of subreddit URLs (https://www.reddit.com/r/webscraping or r/webscraping), post URLs (including comment permalinks and redd.it links), user profile URLs (https://www.reddit.com/user/spez or u/spez) and Reddit search URLs (https://www.reddit.com/search/?q=...).
searchesarrayoptionalKeywords or phrases to search Reddit posts for, one per line. Each keyword is its own source and results are de-duplicated across the run.
searchSubredditstringoptionalRestrict keyword searches to one subreddit, e.g. 'technology' or 'r/technology'. Leave empty to search all of Reddit.
sortstringoptionalSort order for subreddit listings, searches and user activity. Subreddits use hot/new/top/rising; searches use relevance/new/top/most comments (hot maps to relevance, rising to new). User profiles use new or top.
timeFilterstringoptionalOnly return posts from this window. Applies to searches, user activity, and subreddit listings sorted by Top or New (Hot and Rising listings ignore it, as on Reddit).
maxItemsintegeroptionalMaximum posts to return for each subreddit, search or user (user profiles return up to this many posts and this many comments). 0 = no limit, keep going until the list ends or the run times out. Capped at 100 per call.
includeCommentsbooleanoptionalAlso scrape the comment thread of every post. Each comment becomes its own row (recordType 'comment') linked to its post by postId.
maxCommentsPerPostintegeroptionalMaximum comments to return per post when comments are included, in thread order (top comments with their replies first). 0 = all comments that Reddit loads without expanding collapsed branches.
maxCommentDepthintegeroptionalHow many levels of replies to keep. 1 = top-level comments only, 2 = plus direct replies, and so on. 0 = no depth limit.
includeSubredditInfobooleanoptionalFor every subreddit URL, add one row (recordType 'subreddit') with its description, subscriber count, weekly active users, weekly contributions, icon and banner.
userContentstringoptionalWhat to scrape for user profile URLs: the user's posts, their comments, or both.
filterKeywordsarrayoptionalOptional. Keep only posts whose title or text contains at least one of these words (case-insensitive). User comments are matched on their text. Leave empty to keep everything.
pageIdstringoptionalPaste NEXT_PAGE_ID from the previous run's Key-value store to continue where it stopped. Only used when the run has exactly one subreddit, search, or user (posts-only or comments-only) source.

Each result contains

FieldTypeDescription
recordTypestringRecord Type
sourceTypestring—
sourcestringSource
idstring—
urlstringUrl
subredditstringSubreddit
authorstringAuthor
titlestringTitle
bodystringBody
scoreintegerScore
upvoteRationull—
numCommentsintegerNum Comments
createdAtstringCreated At
flairnull—
linkUrlnull—
domainnull—
thumbnailnull—
isSelfboolean—
isVideoboolean—
over18boolean—
spoilerboolean—
lockednull—
stickiednull—
postIdstringPost Id
postTitlestring—
postUrlstring—
parentIdnullParent Id
depthnull—
isOpnull—
subscribersnull—
weeklyActiveUsersnull—
weeklyContributionsnull—
descriptionnull—
iconUrlnull—
bannerUrlnull—
messagenull—
scrapedAtstring—

Use Reddit Scraper from Claude, ChatGPT or Cursor

Pick your tool and connect in under a minute. Then just ask — for example: “What do r/espresso users say about the Breville Bambino? Summarise pros and cons.”

Connect Claude

Web, desktop and mobile. One click, then confirm.

  1. 1Click Add to Claude — claude.ai opens with Sourcelane filled in
  2. 2Click Continue to confirm — it then works in Claude desktop and mobile too
Manual setup (config files, REST, Python) +

Claude Code

Adds the Sourcelane MCP server with your key as a header.

terminal
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
  --header "Authorization: Bearer sl_live_your_agent_key"

Claude Desktop (config file)

Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.

claude_desktop_config.json
{
  "mcpServers": {
    "sourcelane": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.usesourcelane.com/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer sl_live_your_agent_key"
      }
    }
  }
}

Cursor & Windsurf

Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).

mcp.json
{
  "mcpServers": {
    "sourcelane": {
      "url": "https://api.usesourcelane.com/mcp",
      "headers": {
        "Authorization": "Bearer sl_live_your_agent_key"
      }
    }
  }
}

VS Code

Save as .vscode/mcp.json. VS Code prompts for your key once.

.vscode/mcp.json
{
  "servers": {
    "sourcelane": {
      "type": "http",
      "url": "https://api.usesourcelane.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:sourcelane-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "sourcelane-key",
      "description": "Sourcelane agent key",
      "password": true
    }
  ]
}

ChatGPT Custom GPT (Actions)

Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.

OpenAPI schema URL
https://usesourcelane.com/openapi.json

REST

One POST. Pass maxResults to cap cost.

curl
curl -X POST https://api.usesourcelane.com/v1/call \
  -H "Authorization: Bearer sl_live_your_agent_key" \
  -H "Content-Type: application/json" \
  -d '{"listing":"reddit-scraper","params":{"startUrls":["https://www.reddit.com/r/webscraping/"],"maxItems":5},"maxResults":10}'

Python, LangChain, CrewAI, OpenAI Agents SDK…

Wrap the REST call as a tool, or point an MCP client at the endpoint.

python
import requests

res = requests.post(
    "https://api.usesourcelane.com/v1/call",
    headers={"Authorization": "Bearer sl_live_your_agent_key"},
    json={
        "listing": "reddit-scraper",
        "params": {"startUrls":["https://www.reddit.com/r/webscraping/"],"maxItems":5},
        "maxResults": 10,
    },
    timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])

Reviews

—

0 reviews

5
0
4
0
3
0
2
0
1
0

Leave a review

Loading reviews…

Related Reddit connectors

See all Reddit data connectors →