Scrape Threads without a login: the posts of any profile, keyword and tag search results, the replies under a post and the profile itself (followers, bio, verified). One row per post with text, author, time, likes, replies, reposts, quotes, media and links. JSON, CSV, API. Pay per post.
0.1 maintenance build (2026-10-11): four fixes ported from the profile listing, no price, input or output change
A GraphQL answer that carries thread items without one post next to execution errors (a persisted query id the site no
longer pairs with these provider flags) ends the walk as unexpected_answer with the reason in the coverage row; it was
read as the end of the feed, a silent short delivery (PENDING 231 (a)).
The monitor memory keeps a backlog record: a profile walk cut by maxPostsPerProfile, maxPosts, the charge limit,
the work allowance or a failed call records the feed cursor it did not deliver in full, and the next run under the same
memory, after reading the known newest posts, jumps to that cursor and continues. The site gives the same position a
different cursor on every run, so the record also keeps the post codes of the page right above it (its anchor): a
later walk that delivers a page holding one of those codes jumps to the recorded cursor. Before, a page whose posts were all
known ended the walk, so a burst of new posts cut by a cap was marked known and the older new posts were never
delivered (PENDING 231 (c)). A run that reads to the end clears the record; memory_caught_up still ends a walk when
no record exists. The memory summary shows backlogRecords.
A subject that ended on an unexpected answer is no longer marked done: a restarted run reads it again. The page
guard of 2,000 feed pages ends a walk as page_guard (a cut), no longer as the end of the feed.
A post that appears twice on one page (a thread and a reply chain) is deduplicated before the caps, so a repeat never
takes a capped slot; capped searches and tags delivered fewer rows than their cap and read the stop as a cap (GitHub
issue 19, PENDING 187).
Two status texts no longer say "nothing was charged" for a whole run that bills the run start event (PENDING 231 (b)).
0.1 (2026-10-07)
First build (0.1.8, 2026-10-07): profile posts (profile row plus the feed with its cursor), keyword and tag search (top, recent, daily windows), replies under a post, filters in code (dates, languages with unknown kept, likes, replies, media), cross run memory, one sticky datacenter proxy session per run.