Threads Scraper — Posts, Profiles & Replies
Pricing
Pay per usage
Threads Scraper — Posts, Profiles & Replies
Collect public Threads posts by username or keyword. Return structured text, timestamps, engagement, media and link fields. Run with username or keyword; no login or API key.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
28
Total users
1
Monthly active users
a day ago
Last modified
Categories
Features
Share
Threads Posts Scraper by Username or Keyword
Scrape public Meta Threads posts by username or keyword, including post text, authors, timestamps, engagement counts, media URLs, and post links.
This Actor is free to run since 2026-11-10: no event fees apply on any plan, only Apify platform usage. See Pricing.
- No buyer login or API key is required.
- Monitor public profile posts with author, timestamp, text, and engagement data.
- Research keyword conversations and collect the posts Threads surfaces in search.
- Extract media URLs, post URLs, short codes, and thread context for content research.
- Export structured Threads results for analysis in JSON or CSV.
What you get
| Field family | Fields | Description |
|---|---|---|
| Identity | post_id, code, post_url | Numeric post ID, short URL code, and direct post link. |
| Author | author_id, author_username, author_profile_pic, author_verified | Author identifiers, handle, profile picture URL, and verified status. |
| Content | text, taken_at, taken_at_epoch | Post text, ISO-8601 UTC timestamp, and Unix epoch timestamp. |
| Engagement | like_count, reply_count, repost_count, quote_count | Available likes, replies, reposts, and quotes counts. |
| Thread context | is_reply, reply_to_username | Whether the post is a reply and the username it replies to, when available. |
| Media | media_urls, media_types, has_media | Image or video URLs, media types, and a media-presence boolean. |
| Link and provenance | link_preview_url, mode, query, source, scraped_at | Link preview URL, selected mode, input query, retrieval source, and scrape timestamp. |
User mode uses the public profile page and its embedded data. Its primary request uses POST /api/graphql; if needed, the Actor can use the profile page's embedded Relay preloader. Keyword mode parses the embedded Relay preloader from a Threads search page.
Sample output
This shortened sample keeps one real dataset record and selected fields; omitted fields are not changed or represented.
{"post_id": "4020948437830849967", "code": "DfNR0zhEdWv","post_url": "https://www.threads.net/@zuck/post/DfNR0zhEdWv","author_id": "63055343223", "author_username": "zuck", "author_verified": true,"text": "Tried to get the family to dress as burger night, but couldn't corral the littlest burger","taken_at": "2026-11-01T17:33:48+00:00", "like_count": 4205, "reply_count": 0, "repost_count": 0,"quote_count": 0, "is_reply": null, "reply_to_username": null,"media_types": ["image", "carousel_image", "carousel_image", "carousel_image"], "has_media": true,"mode": "user", "query": "zuck", "source": "graphql_api","scraped_at": "2026-11-03T21:42:56.755463+00:00"}
Pricing
Today's model: FREE. Since 2026-11-10 the Actor charges no pay-per-event fees on any plan (the Free plan included). Apify platform usage (compute, storage, Apify Proxy traffic) still counts against your plan; the Apify Free plan includes $5 per month of platform usage credit. Check the Pricing tab on the Actor page before a large run.
Earlier pricing, pay-per-event until 2026-11-10 (shown for reference only):
post-item: $0.0025 per returned post on the Free plan.apify-actor-start: $0.00005 per event on the Free plan (one event per GB of memory, minimum one).- Free plan, 1,000 results: 1,000 x $0.0025 = $2.50 in
post-itemevents. - Free plan, 10,000 results: 10,000 x $0.0025 = $25.00.
How to use
- Choose
usermode to collect the latest posts from a profile, orkeywordmode to search Threads by a keyword or phrase. - Enter a
usernamesuch aszuckfor user mode, or akeywordsuch asAI toolsfor keyword mode. - Set
maxItemsto the maximum number of records you want, from 1 upward. The default is 50. - Leave the default Apify Residential proxy configuration in place for the recommended access setup, or provide another supported proxy configuration.
- Run the Actor and open the resulting dataset to review the structured records.
- Repeat the run through Apify Schedules; as a starting point for social monitoring, try a daily schedule.
{"mode": "user","username": "zuck","maxItems": 25,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Export the dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
mode | Selects user for profile posts or keyword for topic search. | user |
username | Profile username used in user mode. A leading @ is accepted. | Empty |
keyword | Search term or phrase used in keyword mode. | Empty |
maxItems | Maximum number of posts to return. Values below 1 are raised to 1 by the Actor. | 50 |
proxyConfiguration | Configures the proxy used for Threads requests. The supplied default uses Apify Residential proxy. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
Provide a username for user mode or a keyword for keyword mode. The input schema does not require either field formally, but the selected mode must have its corresponding target for the Actor to fetch posts.
Limits and edge cases
| Condition | What you see | What to do |
|---|---|---|
| User mode | Up to 25 of the profile's most recent posts are available from the public endpoint. If the GraphQL request returns nothing, the Actor falls back to the profile page's embedded Relay preloader data, which holds about 4 posts and sets source to relay_preloader. | Use a public profile and set maxItems according to the amount the source can provide. |
| Keyword mode | Threads search supplies 10–30 posts, depending on what the search page surfaces. | Try a different keyword or phrase when the returned set is too small. |
maxItems | The Actor limits the records it pushes, but it cannot create more results than the selected Threads source provides. | Increase maxItems only when the source can provide additional posts. |
| Private profile | The profile returns 0 posts without login. | Use a public Threads profile. |
| User-mode engagement counts | Reply and repost counts are 0 in user mode unless a post detail page is fetched separately. This Actor does not fetch that detail page separately. | Use keyword mode when the available reply and repost counts are important to your run. |
| Missing target | A user-mode run without a username, or a keyword-mode run without a keyword, exits without pushing posts. | Supply the target that matches the selected mode. |
| Blocked Threads request | After the available block retries, the run exits without post records being charged. When a proxy is configured, the Actor rotates the proxy session between block attempts. | Keep the recommended Residential proxy configuration and review the run log. |
| Transport or Threads fetch error | The run aborts without pushing post records or charging post-item events. | Review the run log and run again with a supported target and proxy configuration. |
| Invalid individual post data | A malformed post is skipped rather than stopping parsing of the remaining posts. | Check the delivered count and run logs if fewer records than expected are returned. |
| No valid posts after parsing | The dataset remains empty when no fetched posts produce a valid post ID. | Check the target, mode, and Threads page availability. |
FAQ
How much does it cost to scrape Meta Threads posts?
The Actor is free to run since 2026-11-10, so no event fees apply on any plan. Apify platform usage still applies to your plan. See Pricing for the earlier pay-per-event prices.
Does this Actor require a Threads login or API key?
No. The Actor uses Threads' public web surface and does not require a buyer login or API key. An Apify Residential proxy is recommended for reliable access.
Why did my run return no posts?
A private profile returns 0 posts, and a missing username or keyword leaves the selected mode without a target. A search can also return no posts when Threads does not surface matches. Check the selected mode, provide its matching target, and try a public profile or another keyword.
What should I check if the Actor is not working?
Check the run log, confirm that the username or keyword is valid for the selected mode, and leave the recommended Residential proxy configuration enabled. A blocked or transport-failed request can end the run without post records being pushed or charged as post-item events.
Is it legal to scrape public Meta Threads data?
The Actor collects data from Threads' public web surface. Threads' source terms and applicable law depend on your use case, so review them before using the collected data; this Actor does not provide a legal guarantee.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.