Meta Threads Scraper
Pricing
from $1.50 / 1,000 results
Meta Threads Scraper
Collect public Meta Threads posts, profiles and search results without login. Stable IDs, UTC timestamps, honest nulls and per-input diagnostics.
Meta Threads Scraper
Pricing
from $1.50 / 1,000 results
Collect public Meta Threads posts, profiles and search results without login. Stable IDs, UTC timestamps, honest nulls and per-input diagnostics.
What to scrape. User posts, User replies and User reposts read the usernames list; Search posts and Search profiles read keywords; Post URLs reads postUrls. Replies and reposts expose a single public page per user; search exposes at most 20 posts (or about 13 profiles) per keyword.
Public Threads accounts for the user modes. Accepts zuck, @zuck or https://www.threads.com/@zuck. Private accounts return a private status and no rows.
Search terms for the search modes, e.g. open source or #threads. Each keyword is one input. Public search returns at most 20 posts per keyword and sort order, and about 13 profiles; this is a Threads limit, not a setting.
Links for the Post URLs mode: https://www.threads.com/@user/post/CODE. Legacy threads.net links and /media deep links are normalized to the same post. Other hosts are rejected.
Ordering of Search posts results, mirroring the Top / Recent tabs on Threads. Ignored by the other modes.
Upper bound of post (or profile) rows emitted per username, keyword or URL. Pagination stops as soon as this many rows were accepted. The optional profile row (see Include profile rows) does not count against it. Search cannot exceed the 20-per-keyword source cap regardless of this value.
Global cap for the whole run across all inputs. When reached, remaining inputs are not started and the run finishes with status budget_reached. Together with the Apify per-run spending limit this bounds your bill.
Keep only posts created on or after this ISO-8601 date, e.g. 2026-01-01 or 2026-01-01T00:00:00Z. Filtering happens after fetching and before billing, so it reduces what you pay, not the number of requests. Posts without a timestamp are dropped when a date filter is set.
Keep only posts created on or before this ISO-8601 date (inclusive, UTC). Same format as Since.
Keep only posts with at least this many likes. Posts whose like count is hidden by the author (like_count: null) are dropped when this filter is set, because the value cannot be verified.
User modes only. Also emit one profile record per username before its posts. Each profile row is a separate billable result ($0.0015), so it is off by default.
Post URLs mode only. Also emit the direct replies to each post (source_tab: post_replies), paginated under the same limits. Replies are billed like any other post row. Nested reply trees are not followed.
Hard stop on page fetches per username / keyword / URL, including the first page. Protects against runaway pagination on very large accounts. User posts return roughly 10 to 22 posts per request.
Suppress posts already delivered by earlier runs of the same named monitor, so a scheduled run only bills what is new. Requires Monitor name. Supported for User posts and Search posts. The first run of a monitor emits everything it finds. State is stored in a key-value store owned by your Apify account.
Identifier for the monitor's state, e.g. brand-mentions. Use the same name on every scheduled run you want deduplicated against each other. Letters, digits, dashes and underscores; 1 to 63 characters.