Sourcelane

Threads Search Scraper

More Social Platforms

Operated by Sourcelane✓ verified

A Threads-focused scraper that runs in four modes to find and extract posts, replies, user accounts and profile details by keywords, post URLs or lists of usernames. It performs keyword and hashtag searches, date-range scanning with configurable request depth, per-query scanning that moves day-by-day, and targeted retrieval of reply trees for single posts (including optional nested reply branches). The connector returns structured records for posts and replies (publish time, full text, engagement metrics captured at run time, media type and media URLs, alt text, topic tags, hashtags, mentions, links and link previews, quoted-post references, and reply hierarchy information) and structured records for profiles (username and display name, follower counts, verification flag, biography and bio links, topics, and profile pictures including HD). Technical capabilities include web scraping of Threads content without requiring user authentication, multi-mode operation (search posts, search users, collect replies by post URL, bulk profile lookup), configurable request and scanning controls per query, and collection of nested reply conversations to configurable depth.

Verified Sep 28, 3:55 AM

$0.0035

per post

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

What people use it for

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":"threads-search-scraper","params":{"mode":"searchPosts","maxPostsPerQuery":5},"maxResults":10}'

Request params

FieldTypeRequiredDescription
modestringoptionalSearch posts: keyword search with optional date range. Search users: find accounts matching a keyword. Replies on post URLs: the post plus its replies. Profile details: bio, follower count, verified badge and bio links for a list of usernames.
searchQueriesarrayoptionalKeywords, phrases or #hashtags to search for, one per line. Used by 'Search posts' and 'Search users'. Short keywords return the most results.
startDatestringoptionalSearch posts only: oldest day to include (YYYY-MM-DD). Leave empty to start from the latest posts and walk back day by day until the limits below are reached.
endDatestringoptionalSearch posts only: newest day to include (YYYY-MM-DD). Leave empty for today. Set it to continue an earlier run further back in time.
maxPostsPerQueryintegeroptionalSearch posts only: stop after this many unique posts for each keyword. 0 = no limit (bounded by Max requests per keyword). Capped at 100 per call.
maxRequestsPerKeywordintegeroptionalSearch posts only: each request covers one day and returns up to about 20 posts. This caps how many days are scanned per keyword.
includeProfileDetailsbooleanoptionalSearch users only: also fetch bio, follower count and bio links for every user found. Without it you get username, name, verified badge and picture.
postUrlsarrayoptionalReplies mode only: Threads post URLs, one per line (threads.com/@user/post/CODE, threads.net links and threads.com/t/CODE all work).
includeOriginalPostbooleanoptionalReplies mode only: add a row for the post itself (and any follow-up posts the author added to the thread) before its replies.
includeNestedRepliesbooleanoptionalReplies mode only: also open every reply that has its own replies and collect those (one extra request per reply branch, bounded by Max requests per post).
maxRepliesPerPostintegeroptionalReplies mode only: stop after this many reply rows for each post. 0 = no limit.
maxRequestsPerPostintegeroptionalReplies mode only: cap on requests used for one post, including the first one. Only matters when replies to replies are included.
usernamesarrayoptionalProfile details mode only: Threads usernames or profile URLs, one per line (with or without @).

Each result contains

FieldTypeDescription
typestringType
usernamestringUsername
userIdstring—
fullNamestring—
profileUrlstring—
isVerifiedbooleanVerified
isPrivateboolean—
biographystring—
followerCountintegerFollowers
bioLinksarray—
topicsarray—
profilePicUrlstring—
profilePicUrlHdstring—
searchQuerynullKeyword
detailsFetchedboolean—

Use Threads Search Scraper from Claude, ChatGPT or Cursor

Pick your tool and connect in under a minute. Then just ask — for example: “Find this creator's profiles on every social network and summarise their reach.”

Connect Claude

Web, desktop and mobile. Paste one URL.

  1. 1Copy your personal connector URL
  2. 2In Claude open Settings → Connectors → Add custom connector
  3. 3Paste the URL and click Add — done
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":"threads-search-scraper","params":{"mode":"searchPosts","maxPostsPerQuery":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": "threads-search-scraper",
        "params": {"mode":"searchPosts","maxPostsPerQuery":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…