X Article → Markdown
How to convert an X Article to Markdown
Export a long-form X Article as structured Markdown with its headings, links, media references, lists, quotes, code, and source metadata intact.
Test it out now!
Simply replace x.com with tweet.md in any Tweet URL.
Content type
Articles, posts, and threads use the same URL shape
X Article
A long-form document attached to a status post. tweet.md returns the Article body as a structured Markdown document.
X post
One short-form status. Use thread=off when you only want that post.
X thread
Several connected posts. Use thread=branch or thread=all to choose the conversation scope.
Workflow
Replace the domain and keep the status path
- 01
Copy the Article’s X status URL.
Use the author’s normal /status/… permalink. An x.com/i/article/… URL by itself does not identify the post tweet.md needs. - 02
Replace x.com with tweet.md.
Keep the handle and status ID exactly as they are, then open the rewritten URL. This is tweet.md’s controlled example Article, used to verify Article conversion end to end.
URL transformBefore
https://x.com/larsbuilds/status/2075145371328627089→After
https://tweet.md/larsbuilds/status/2075145371328627089 - 03
Copy or save the Markdown document.
The Article title and body come first. Source, author, post ID, capture time, and stats follow in Article Metadata. - 04
Archive it or use it as source context.
Save the file in a notes vault, cite it in research, or paste it into an AI tool with a source-grounded prompt.
What is preserved
The Article stays a document, not a wall of text
tweet.md follows the Article’s real block structure so the Markdown remains useful in notes, editors, archives, and AI tools.
- Title and heading hierarchy
- Paragraphs, bold, italic, quotes, and lists
- Inline links and source URLs
- Cover images, inline images, video references, and captions
- Code blocks and tables
- Embedded and quoted post references
Canonical example output
A complete X Article as Markdown
This is the Markdown rendered from the controlled example Article above—the same captured Article used to verify conversion end to end.
# tweet.md test article

This is just a little test article for [tweet.md](https://tweet.md) don't mind me!
But go **checkout** tweet.md :D
## Heading
### Subheading
## I – Test
### II - Test
Body
**BOLD**
*ITALIC*
~~STRIKETROUGH~~
> This is a quote
>
> with multiple lines
>
> – Someone
- Here we have
- a bullet point list
1. and a numbered
2. list too!
This is a [Link](https://tweet.md?link=1) and another [Link](https://tweet.md?link=2)
😅🤣🤝😆😱🙌🚀
 — "Image caption"
 — "Same image as first one but uploaded again"
Text between images
another image:

Some gif:
[gif](https://video.twimg.com/tweet_video/HMxknYyW0AAYXsF.mp4)
Video:
[video](https://video.twimg.com/amplify_video/2075144856125497344/vid/avc1/1920x1080/p_3V4WUKerfJdmPY.mp4?tag=28)
A divider:
---
Some code:
```python
print("Hello world")
```
Latex:
$$E = mc^2$$
Table:
| Table Header 1 | Header 2 | Header 3 | Header 4 |
| --- | --- | --- | --- |
| Stuff | stufff | stuff | stuff |
| Stuff | stufff | stuff | stuff |
| Stuff | stufff | stuff | stuff |
a X post:
Embedded post:
Author: Lars (@larsbuilds)
Post ID: 2058910520800133391
Source: https://x.com/larsbuilds/status/2058910520800133391
Reply to: none
Stats:
- Replies: 5
- Reposts: 2
- Quotes: 2
- Likes: 32
- Bookmarks: 2
- Impressions: 3,401
Text:
> new week!
>
> here’s what I shipped this weekend [video](https://video.twimg.com/amplify_video/2058910469214404608/vid/avc1/1280x720/mN6Tp909xoZWDpdf.mp4?tag=14)
Media:
- video: https://video.twimg.com/amplify_video/2058910469214404608/vid/avc1/1280x720/mN6Tp909xoZWDpdf.mp4?tag=14
# Article Metadata
Author: Lars (@larsbuilds)
Post ID: 2075145371328627089
Source: https://x.com/larsbuilds/status/2075145371328627089
Article: https://x.com/i/article/2075141930652962816
Published: 2026-07-09T09:09:45.000Z
Captured: 2026-07-09T00:00:00.000Z
Stats:
- Replies: 0
- Reposts: 0
- Quotes: 0
- Likes: 0
- Bookmarks: 0
- Impressions: 19
Good for
Archive once, reuse anywhere
- Archive a long-form Article outside X in a portable, searchable format.
- Import the document into Obsidian or another Markdown notes system.
- Give an LLM the full source text instead of asking it to open a dynamic X page.
- Quote, compare, or annotate the Article in research and editorial workflows.
Limits, authentication, and pricing
The status permalink is required
Availability
Private, deleted, withheld, or otherwise unavailable Articles cannot be returned. Use the public /status/… URL, not an /i/article/… URL alone.
Credits
A standalone Article costs the same as one regular post. Posts returned around it, quoted posts, and fully rendered embedded posts each use credits; author metadata can add credits.
Free use
The monthly free allowance is limited to the linked post with thread=off&userinfo=off. Paid credits unlock broader thread context and saved defaults.
Authentication
Browser checkout sets a session cookie. Programmatic requests can use an API key in a header or query parameter, or a trusted IP configured in the dashboard.
See the X Articles documentation and credit pricing details.
Next
Convert threads or use the Article as AI context
convert an X (Twitter) thread to Markdown
Export a complete X/Twitter thread in order, with post text, source links, and metadata.
full thread text, not page scrape
Save X posts to Obsidian
Turn X/Twitter posts, threads, Articles, and profiles into vault-ready Markdown with YAML frontmatter.
YAML frontmatter, source metadata, vault import
copy an X thread or post to ChatGPT
Paste complete X posts and threads into ChatGPT without missing content or broken links.
reads pasted Markdown, not a raw URL
copy an X thread or post to Claude
Give Claude the full post or thread text as Markdown instead of a brittle X link.
reads pasted Markdown, not a raw URL
copy an X thread or post to Gemini
Make X posts and threads readable for Gemini with one tweet.md URL swap.
reads pasted Markdown, not a raw URL