NewX profiles as Markdown
tweet.md logotweet.md

X/Twitter thread → Markdown

How to convert an X (Twitter) thread to Markdown

Convert a complete X/Twitter thread to ordered Markdown, or export one post on its own. Choose the thread scope, keep source links, and save the result anywhere.

Test it out now!

Simply replace x.com with tweet.md in any Tweet URL.

x.comtweet.md/OpenAI/status/…?thread=ancestors

Post or thread?

Choose one post or the full thread.

Every conversion starts from a status URL. Use thread=off when you only need that post, or choose a thread scope to follow the conversation in chronological order. The URL stays the same; the query parameter controls how much comes back.

thread=offthe linked post only

thread=branch-20ancestors and replies in one ordered branch

When a thread looks incomplete

Scope, caps, and source availability determine which posts can be included.

01

The free tier returns one post only, so use paid credits for thread scopes.

02

thread=branch follows the selected reply chain; sibling branches require thread=all.

03

A numeric cap such as branch-20 or all-20 can stop before a longer conversation ends.

04

Deleted, private, withheld, or otherwise unavailable posts cannot be returned by the X API.

Workflow

Step-by-step

  1. 01

    Copy the X/Twitter status URL.

    Use the permalink for the post you care about, or any post in the thread chain.
  2. 02

    Replace x.com with tweet.md.

    Swap the domain in the URL bar and open the tweet.md page.

    URL transform

    Before

    https://x.com/jack/status/20

    After

    https://tweet.md/jack/status/20?thread=branch-20
  3. 03

    Copy the Markdown output.

    Add ?thread=branch-20 to include the reply chain up to the original post plus replies underneath. Paid accounts default to branch-15 when thread is omitted.
  4. 04

    Use the Markdown wherever you need plain text.

    Drop it into a doc, note, CMS, email draft, or any workflow that works better with structured text than a live URL.

Thread scope options

Export the part of the conversation you need

Add a numeric cap from 2–500, such as branch-20 or all-50. See the post and thread API documentation for defaults, credit behavior, and every query parameter.

One post

thread=off

Return only the post in the URL. This is the only scope available on the free tier.

Earlier chain

thread=ancestors

Include the selected post and the reply chain above it, back to the conversation root.

One thread branch

thread=branch

Include ancestors plus replies below the selected post. Paid requests default to branch-15.

Whole conversation

thread=all

Include sibling reply branches as well as the selected branch, up to your numeric cap.

Complete example

A full thread branch as Markdown

Each post keeps its author, source URL, reply relationship, text, and stats. Thread metadata records the original post, capture time, order, and total post count.

# 1/3 — Post by Example Account (@exampleuser)

Post ID: 9000000000000000001
Source: https://x.com/exampleuser/status/9000000000000000001
Reply to: none

Stats:
- Replies: 8
- Reposts: 42
- Quotes: 3
- Likes: 610
- Bookmarks: 54
- Impressions: 92,000

Text:

> Shipping notes: what changed in this release and why.

# 2/3 — Post by Example Account (@exampleuser)

Post ID: 9000000000000000002
Source: https://x.com/exampleuser/status/9000000000000000002
Reply to: https://x.com/exampleuser/status/9000000000000000001

Stats:
- Replies: 2
- Reposts: 9
- Quotes: 1
- Likes: 88
- Bookmarks: 12
- Impressions: 18,000

Text:

> Full changelog and migration notes are linked below.

# 3/3 — Post by Sample Dev (@sampledev)

Post ID: 9000000000000000004
Source: https://x.com/sampledev/status/9000000000000000004
Reply to: https://x.com/exampleuser/status/9000000000000000002

Stats:
- Replies: 1
- Reposts: 0
- Quotes: 0
- Likes: 6
- Bookmarks: 0
- Impressions: 1,900

Text:

> Does this release change the v1 API endpoints?

# Thread Metadata

Original post: https://x.com/exampleuser/status/9000000000000000001
Captured: 2026-05-17T00:00:00.000Z
Order: original-post-first
Posts: 3
Root author: Example Account (@exampleuser)

Good for

Archive it, save it to Obsidian, or give it to AI

Markdown is easy to search, diff, archive, and reuse. tweet.md keeps the source text and conversation order in one portable block instead of a stack of screenshots or copied posts.

  • Archive a complete thread before posts are deleted, edited, or buried in the timeline.

  • Save ordered source text in Obsidian, a notes app, or a searchable knowledge base.

  • Give ChatGPT, Claude, Gemini, or another AI tool the full thread instead of a fragile link.

  • Quote and cite the exact wording in a research doc, newsletter, article, or CMS.

Scraper alternative

Use structured API output, not the reader page.

tweet.md reads posts through the X API and formats the result. Scraping x.com means parsing a changing interface that may omit thread context or hide content behind sign-in.

Scrape x.comDOM clutter, partial threads, changing markup

tweet.mdordered Markdown with source metadata

01

X pages ship a lot of UI chrome: nav, sidebars, suggested posts, login prompts, and cookie banners. Scraping the DOM means cleaning noise before you ever get to the content.

02

Anonymous visitors often do not see the full thread. X may show only the target post, hide earlier self-replies, or stop the chain behind a sign-in wall.

03

Engagement stats scraped from the page can be wrong or stale—rounded counts, A/B layout differences, and client-rendered numbers that change after load.

Next

Continue with profiles, ChatGPT, or the API docs

Fetch a full profile, paste a complete thread into an AI assistant, or customize thread scope and output through the X post and thread documentation.