Social Media

Threads API scraper API

The Threads API returns public Threads data as clean JSON.

11 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary profile endpoint returns a username's full name, biography, bio links, follower count, profile picture and user id, and you can pull posts, replies, reposts, a post, its replies and search. It is built for social analytics and brand monitoring that need public Threads data without a login. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/threads/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "q": "reef",
    "limit": 10
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "threads",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 21238.6,
    "record_count": 10,
    "bytes": 1894172,
    "cache_hit": false,
    "method": "browser_service_search",
    "doc_id": "[redacted-phone]",
    "final_url": "https://www.threads.com/search?q=reef&serp_type=default"
  },
  "data": {
    "results": [
      {
        "id": "Da6IYpZnARk",
        "code": "Da6IYpZnARk",
        "username": "swearymichigander",
        "text": "Also, she was the coolest. No question.Like2.2KComment294Repost15Share7",
        "timestamp_label": "swearymichigander20hMoreI made this look my whole personality in the 90's. I still love tights with jean shorts and would 100% rock that look if it came back. 😂",
        "url": "https://www.threads.com/@swearymichigander/post/Da6IYpZnARk"
      },
      {
        "id": "Da6Wub3n4wL",
        "code": "Da6Wub3n4wL",
        "username": "dalinwestonart",
        "text": "Floral Reef\n9\"x12\"\nOriginal abstract painting",
        "timestamp_label": "18h",
        "url": "https://www.threads.com/@dalinwestonart/post/Da6Wub3n4wL"
      },
      {
        "id": "DapuCLcDziW",
        "code": "DapuCLcDziW",
        "username": "sprout_in_adversity",
        "text": "Moonshine make PE more thicker 🪸\n#coralreef #coral #reeftank #allmymoneygoestocoral #reef",
        "timestamp_label": "07/11/26",
        "url": "https://www.threads.com/@sprout_in_adversity/post/DapuCLcDziW"
      }
    ]
  }
}
Actions

What the Threads API scraper API does

ActionDescriptionConcrete use caseKey params
profilePublic Threads profile by username — name, bio, bio links, follower count, verification, profile picture and user id.Ops teams call profile to get public Threads profile by username.username
postsPublic posts from a Threads profile (most-recent first). Returns full text, media, engagement counts, location and music per post. Set `limit` for how many to return.Developer tools call posts to get public posts from a Threads profile (most-recent first).username, limit
repliesPublic replies from a Threads profile (the Replies tab). Set `limit` for how many to return.Validation workflows call replies to get public replies from a Threads profile (the Replies tab).username, limit
repostsPosts a Threads user has reposted — the Reposts tab on their profile. Returns the original reposted posts (authored by other accounts).Data-quality teams call reposts to get posts a Threads user has reposted.username, limit
postMaximally-complete public post detail. Provide url, or username + code, or post_id. Returns text, media (image/video/carousel), all engagement counts, location, music, tagged users, link preview, language and paid-partnership flag.Ops teams call post to get maximally-complete public post detail.url, username, code, post_id
post_repliesThe reply conversation for a public post (thread_items). Provide post_id, or url, or username + code.Developer tools call post_replies to get the reply conversation for a public post (thread_items).post_id, url, username, code, limit
searchSearch public Threads posts by keyword. Returns matching public posts with author, text and permalink.Validation workflows call search to search public Threads posts by keyword.q, query, limit
user_searchLook up the public Threads account whose handle matches a query (exact / near-exact). NOTE: full fuzzy people search is login-gated by Threads; logged-out resolves the matching handle, like instagram's users_search.Data-quality teams call user_search to look up the public Threads account whose handle matches a query (exact / near-exact).q, query
followersAccount-gated: the followers list requires a logged-in Threads session and is not available for public (logged-out) use.Ops teams call followers to get account-gated.username
followingAccount-gated: the following list requires a logged-in Threads session and is not available for public (logged-out) use.Developer tools call following to get account-gated.username
likesAccount-gated: the list of accounts that liked a post (who-liked) is not exposed to logged-out clients by Threads — it requires a logged-in session.Validation workflows call likes to get account-gated.url, username, code, post_id
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/threads/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"q":"reef","limit":10}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.threads.search with {"q":"reef","limit":10}.
Use cases

Who uses this API and why

  • Social analytics call profile and posts to measure a handle's reach.
  • Brand monitoring uses search and replies to track mentions.
  • Research uses reposts to gauge what spreads.
FAQ

Questions developers ask before integrating

What is the Threads API scraper API?

Threads API scraper API is a ReefAPI endpoint group for threads api scraper It returns live JSON through POST requests under /threads/v1.

Is the Threads API scraper API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Threads API scraper calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Threads API scraper login or account?

No login to Threads API scraper is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Threads API scraper data?

The page example is captured from a live profile call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Threads API scraper API use?

Threads API scraper actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Threads API scraper from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call threads actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Threads API scraper API a Threads API scraper scraper?

It is the managed alternative to a DIY Threads API scraper scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same threads api scraper back as clean JSON.

Why does my Threads API scraper scraper keep getting blocked?

Most Threads API scraper scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / threads

Threads API scraper

Threads API scraper

base /threads/v111 endpoints
post/threads/v1/profile1 credit

Public Threads profile by username — name, bio, bio links, follower count, verification, profile picture and user id.

ParameterAllowed / rangeDescription
usernamerequiredThreads handle without the @ (the name in threads.com/@<username>).
Try in playground →
post/threads/v1/posts1 credit

Public posts from a Threads profile (most-recent first). Returns full text, media, engagement counts, location and music per post. Set `limit` for how many to return.

ParameterAllowed / rangeDescription
usernamerequiredThreads handle without the @ (the name in threads.com/@<username>).
limit = 25optional1–100Max items to return (1-100). Larger values are clamped to 100.
Try in playground →
post/threads/v1/replies1 credit

Public replies from a Threads profile (the Replies tab). Set `limit` for how many to return.

ParameterAllowed / rangeDescription
usernamerequiredThreads handle without the @ (the name in threads.com/@<username>).
limit = 25optional1–100Max items to return (1-100). Larger values are clamped to 100.
Try in playground →
post/threads/v1/reposts1 credit

Posts a Threads user has reposted — the Reposts tab on their profile. Returns the original reposted posts (authored by other accounts).

ParameterAllowed / rangeDescription
usernamerequiredThreads handle without the @ (the name in threads.com/@<username>).
limit = 25optional1–100Max items to return (1-100). Larger values are clamped to 100.
Try in playground →
post/threads/v1/post1 credit

Maximally-complete public post detail. Provide url, or username + code, or post_id. Returns text, media (image/video/carousel), all engagement counts, location, music, tagged users, link preview, language and paid-partnership flag.

ParameterAllowed / rangeDescription
urloptionalFull Threads post URL (alternative to username + code).
usernameoptionalThreads handle without the @ (the name in threads.com/@<username>).
codeoptionalPost shortcode — the code in threads.com/@<username>/post/<code>. Combine with username, or pass the full post `url` instead.
post_idoptionalNumeric Threads post id (from a post's `id`). Alternative to url / username+code.
Try in playground →
post/threads/v1/post_replies1 credit

The reply conversation for a public post (thread_items). Provide post_id, or url, or username + code.

ParameterAllowed / rangeDescription
post_idoptionalNumeric Threads post id (from a post's `id`). Alternative to url / username+code.
urloptionalFull Threads post URL (alternative to username + code).
usernameoptionalThreads handle without the @ (the name in threads.com/@<username>).
codeoptionalPost shortcode — the code in threads.com/@<username>/post/<code>. Combine with username, or pass the full post `url` instead.
limit = 25optional1–100Max items to return (1-100). Larger values are clamped to 100.
Try in playground →
post/threads/v1/followers1 credit

Account-gated: the followers list requires a logged-in Threads session and is not available for public (logged-out) use.

ParameterAllowed / rangeDescription
usernameoptionalThreads handle without the @ (the name in threads.com/@<username>).
Try in playground →
post/threads/v1/following1 credit

Account-gated: the following list requires a logged-in Threads session and is not available for public (logged-out) use.

ParameterAllowed / rangeDescription
usernameoptionalThreads handle without the @ (the name in threads.com/@<username>).
Try in playground →
post/threads/v1/likes1 credit

Account-gated: the list of accounts that liked a post (who-liked) is not exposed to logged-out clients by Threads — it requires a logged-in session.

ParameterAllowed / rangeDescription
urloptionalFull Threads post URL (alternative to username + code).
usernameoptionalThreads handle without the @ (the name in threads.com/@<username>).
codeoptionalPost shortcode — the code in threads.com/@<username>/post/<code>. Combine with username, or pass the full post `url` instead.
post_idoptionalNumeric Threads post id (from a post's `id`). Alternative to url / username+code.
Try in playground →