Free tool · no login · public threads
Twitter Thread Reader
Paste a link to any post in an X (Twitter) thread. You get the thread on one page, in order, with only the author's posts: no replies from other people, and none of the author's side answers to commenters. Then copy it as text or Markdown, or save it as a PDF.
How to unroll a Twitter thread
- On any post of the thread, tap Share → Copy link. Links from x.com, twitter.com and mobile.twitter.com work, and so does a bare post ID.
- Paste it above and press Unroll thread.
- Read it as one article, or use Copy text, Copy Markdown, the .md and .txt downloads, or Save as PDF. Untick Number posts if you don't want the 1/n markers.
No reply bot to tag and nothing to post publicly. For the bot route, reading threads inside the X app, or a script that saves threads to files, see how to unroll a Twitter thread.
Why a thread is not the same as the conversation
A thread is a chain: each post replies to the author's previous one. But authors also reply to people in the comments, and those answers sit in the same conversation. A tool that collects “every post by the author in this conversation” mixes them in. We pulled 39 recent threads (2026) through our own API and counted:
| Measure | Result |
|---|---|
| Threads where the author also replied to others | 24 of 39 (62%) |
| Author posts in those conversations that were replies to other people | 160 of 327 (49%) |
| Side replies per affected thread | median 3.5, up to 27 |
| Thread length | 2 posts: 23 · 3 to 5: 10 · 6 to 10: 3 · 11 or more: 3 (longest 19) |
Source: threads found with X search's self-thread filter (2026, English, at least 30 likes), each read with the TwitterAPI.io search endpoint. A post counts as part of the thread when it replies to the author's previous post in the chain.
So in most of the threads we checked, a naive unroll would put side answers like “@someone thanks!” between the actual posts. This reader follows the reply chain instead. When an author forked the thread, it keeps the branch of the post you pasted, and below that the earliest continuation.
Thread to text, Markdown or PDF
- Text: the posts as plain paragraphs with the source link on top, ready for a note, an email or a document. The t.co link X adds for photos is removed.
- Markdown: a heading, each post as a paragraph, photos as image links and quoted posts as blockquotes, for Obsidian, Notion or a static site.
- PDF: your browser's print dialog with a clean, single-column page; pick “Save as PDF”. Photos are included; a video or GIF appears as a link to its post.
Reading many threads: use the API
To archive threads from a list of accounts or feed them into an app, do the same thing in code: search the conversation for the author's posts, then follow the reply chain from the first post.
import requests
API = "https://api.twitterapi.io/twitter/tweet/advanced_search"
HEADERS = {"X-API-Key": "YOUR_API_KEY"}
def unroll(root_id, author):
posts, cursor = {}, ""
for _ in range(5): # up to 5 pages
r = requests.get(API, headers=HEADERS, timeout=30, params={
"query": f"conversation_id:{root_id} from:{author}",
"queryType": "Latest", "cursor": cursor,
}).json()
posts.update({t["id"]: t for t in r.get("tweets", [])})
if not r.get("has_next_page"):
break
cursor = r["next_cursor"]
chain = [root_id] # follow the author's own reply chain
while True:
nxt = [t for t in posts.values() if t.get("inReplyToId") == chain[-1]]
if not nxt:
break
chain.append(min(nxt, key=lambda t: int(t["id"]))["id"])
return [posts[i]["text"] for i in chain if i in posts]Pass the thread's first post ID (the conversationId of any post in it) and the author's username. Search on TwitterAPI.io costs $0.15 per 1,000 posts returned (pricing); X's own pay-per-use API charges $0.005 per post read (docs.x.com, prices subject to change), about 33× more. To post threads rather than read them, see how to make a Twitter thread via API.
Questions
- Do I need to paste the first post of the thread?
- No. Paste the link of any post in the thread, the first, the last or one in the middle. The reader finds the first post and rebuilds the thread from there.
- Why is the unrolled thread shorter than the conversation on X?
- Because only the thread itself is kept: the author's posts that continue it, in order. Replies from other people and the author's own answers to commenters are left out. In 39 threads we checked, about half of the author's posts in the conversation were such answers.
- Can I save a Twitter thread as a PDF?
- Yes. After unrolling, press "Save as PDF" and choose "Save as PDF" as the printer. The PDF holds the posts, their photos and the source link, without buttons or site menus.
- Does it work on old threads?
- Usually. For threads older than about a week, X's search can return only part of the posts, so the reader adds a short note under older threads and links to the original to check against.
- Do you store the threads I read?
- No account is needed and nothing is saved to a profile. A thread is kept in a short cache for about 10 minutes so a second visitor doesn't trigger a new lookup, then dropped.
Public posts only
The reader shows public posts as X serves them and links each one back to the original. Posts from protected accounts and deleted posts can't be read. Threads belong to their authors: quote and share them with credit. TwitterAPI.io is an independent service, not affiliated with X Corp.
Related
- Twitter viewer: read an account's recent posts without logging in.
- Twitter image downloader: save the photos of a post at full size.
- Twitter video downloader: every MP4 quality of an X video.
- All free Twitter tools