Threads Search Scraper API avatar

Threads Search Scraper API

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Threads Search Scraper API

Threads Search Scraper API

Search Threads posts by keyword and export clean datasets with post text, engagement metrics, author info, and media details for monitoring and research.

Pricing

from $4.00 / 1,000 results

Rating

5.0

(1)

Developer

Rush

Rush

Maintained by Community

Actor stats

2

Bookmarked

40

Total users

2

Monthly active users

2 days ago

Last modified

Share

Search Threads posts by keyword and export structured results for social listening, market research, competitor tracking, and content analysis.

This Actor is designed for keyword-based Threads research. Enter one or more search terms and receive posts with author information, engagement metrics, media fields, hashtags, mentions, links, and timestamps.

What You Can Collect

  • Post content: text, post URL, shortcode, hashtags, mentions, links, and detected language
  • Author fields: username, display name, profile URL, profile picture, and verification status
  • Engagement metrics: likes, replies, reposts, quotes, and shares when available
  • Media fields: media type, a preview image, every image in a carousel, and the video file when the post has one
  • Run metadata: keyword, the sort that produced the row, result index, post timestamp, and scrape timestamp

Input

{
"keywords": ["coffee", "AI startups"],
"sessionId": "your-private-access-key",
"maxResults": 50,
"searchType": "top"
}
FieldTypeDescription
keywordsarraySearch terms to look up on Threads. You can enter up to 20 keywords per run.
sessionIdstringPrivate access key for this run. It is a secret input. Use a secondary account when possible.
maxResultsnumberMaximum posts to save per keyword. Threads releases search results in small pages, so a high limit means a long run. Actual results can be lower when Threads has fewer matches.
searchTypestringtop for the posts Threads ranks as most popular or relevant, or recent for the newest matching posts first.

Private Access

This Actor searches as your own account, which is why it needs a private access value from Threads. Searching signed out is possible, but Threads serves signed-out visitors a shallower set of results — searching as an account is what lets a run keep going past that point. Apify stores the value as a secret input, and it never appears in the logs or in your exported data.

How to get your Private Access Key

  1. Open threads.com in your browser and sign in to the account you want to use.
  2. Open your browser's developer tools (F12, or Cmd+Option+I on a Mac).
  3. Go to the storage panel — Application → Cookies in Chrome and Edge, or Storage → Cookies in Firefox — and select https://www.threads.com.
  4. Find the row named sessionid and copy its value in full.
  5. Paste it into the Private Access Key field.

Threads decides how long the value keeps working, and signing out of that browser ends it immediately. If a run reports an access problem, repeat these steps to get a fresh value.

Use a secondary account where you can. Treat this value like a password: anyone who has it can act as your account, so do not share it or paste it into anything you do not control. Signing out of the browser you copied it from ends the value everywhere.

Output Example

The example below shows the output format. Values vary by the posts returned for your keywords.

{
"keyword": "coffee",
"searchType": "top",
"postId": "1234567890123456789",
"postCode": "ABC123Example",
"postUrl": "https://www.threads.com/@example.creator/post/ABC123Example",
"text": "Morning coffee ritual. What's your favorite brew method? #coffee",
"hashtags": ["#coffee"],
"mentions": [],
"urls": [],
"username": "example.creator",
"displayName": "Example Creator",
"profileUrl": "https://www.threads.com/@example.creator",
"profilePicUrl": "https://scontent.cdninstagram.com/...",
"isVerified": false,
"timestamp": "2026-02-25T08:00:00.000Z",
"language": "en",
"likeCount": 796,
"replyCount": 11,
"repostCount": 21,
"quoteCount": 0,
"shareCount": 81,
"mediaType": "carousel",
"imageUrl": "https://scontent.cdninstagram.com/...",
"imageUrls": ["https://scontent.cdninstagram.com/...", "https://scontent.cdninstagram.com/..."],
"videoUrl": null,
"index": 1,
"scrapedAt": "2026-06-12T12:00:00.000Z"
}

Search Tips

  • Use focused keywords for cleaner results.
  • Use top to see what a keyword is known for, and recent to watch what is being said right now. The two return different sets of posts.
  • Very niche terms may return fewer results than your requested limit.
  • For strict keyword matching, filter the exported text field in your downstream workflow.
  • Start with a small maxResults on a new keyword. You will see the kind of posts it returns before committing to a longer run.

Common Questions

Why is private access required?

So the Actor can search as your own account rather than as a signed-out visitor, which is what Threads limits more tightly. The value is marked as secret, stays out of the logs, and is not exported in dataset rows.

Why did I get fewer results than requested?

Threads may return fewer public matches for some keywords, especially niche phrases, fresh topics, or terms with limited public activity.

Can I search multiple keywords?

Yes. Each result carries the keyword it came from and the searchType that produced it, so you can filter, group, or compare after export — including rows from separate top and recent runs collected into the same sheet.

Is top always more relevant than recent?

They answer different questions, and Threads controls both. top returns the posts Threads ranks as most popular or relevant for your keyword, which skews toward posts that have had time to gather engagement. recent returns the newest matching posts. For monitoring, run both and compare.

What does the run summary tell me?

Once searching begins, the run ends by stating how many of your keywords were fully searched and how many posts were saved. Any keyword that did not finish is named individually along with the reason, so you can re-run just that keyword instead of the whole list. A run that cannot start at all — for example when the private access value is rejected up front — reports that instead.

Why did a run finish with fewer posts than I asked for?

Usually because Threads had no more to give: it decides how many results exist for a keyword and how many it will release, and when it stops returning new ones the Actor stops too. That is a complete result, and the keyword is reported as fully searched.

Occasionally the Actor is the one that stops first — a very deep request can reach its maximum search length. That case is never reported as complete: the keyword appears in the summary's not-finished list. A new run for that keyword starts from the beginning rather than resuming, so it collects the same opening results again.

What do the media type values mean?

text for a post with no attached media, photo, video or carousel for posts that carry media, and gif for an animated image. imageUrl holds a single preview image, imageUrls holds the images in the post so a carousel is exported in full, and videoUrl holds a playable file when the post has one. If Threads describes a post in a way this Actor does not recognise, mediaType is left empty rather than guessed — an empty value means "not described", never "no media".

Which fields can be empty?

Many fields are only filled when Threads provides them — most often language, displayName, shareCount, videoUrl, imageUrl and mediaType. An empty value always means "Threads did not provide this", never zero or none, so a blank engagement count is not the same as a count of 0.

The list fields — hashtags, mentions, urls and imageUrls — are always present, and are empty when the post contains none of them.

Integrations

Use Apify integrations to export results to Google Sheets, Make, Zapier, Slack, databases, dashboards, or automation tools.

Need Another Threads Workflow?

Responsible Use

Use this Actor responsibly and make sure your usage complies with applicable laws, platform terms, and your own data governance requirements. Avoid using your primary personal account for automated workflows.

Search results can include posts written by identifiable people. If you keep, publish, or process that content, you are the one responsible for having a lawful basis for it and for honouring requests about it — including under regimes such as the GDPR and the CCPA. Collect only what your use case needs, and keep it no longer than you need it.

This Actor is an independent tool. It is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc., and Threads is a trademark of its respective owner. Results come from Threads and reflect whatever Threads returns at the time of the run.


Threads search scraper, Threads Search Scraper API, Threads keyword search, Threads posts scraper, Threads data extraction, Threads analytics, Threads monitoring, social media monitoring, social listening, content research, competitor research, influencer research, Apify Actor, OpenClaw, Claude Code, Gemini, Codex, Antigravity, ChatGPT