How to Export Tweets From an X Profile to CSV or Excel (2026)
X has no button to export someone else's tweets: your own posts come in X's data archive (a .zip of HTML and JSON files that can take a few days to prepare), while a public profile's tweets need the X API ($0.005 per post read, up to the 3,200 most recent posts), a cloud scraper such as Apify's Tweet Scraper V2 ($0.40 per 1,000 tweets), or a Chrome extension. The InsightSocial extension exports 50, 100 or 300 posts per run from the profile you open, with likes, reposts, replies, views and media, to CSV, Excel, JSON or Google Sheets, free up to 500 rows a month. For older tweets, export an X search with from:, since: and until: instead of the profile.
Checked November 2026. We make InsightSocial, so we are not neutral; the other routes below are often the better choice, and we say when.
TL;DR: ways to export tweets
| Method | Whose tweets | Cost | Limit | Skill |
|---|---|---|---|---|
| X data archive | Your own account | Free | Can take a few days; HTML and JSON, not a spreadsheet | None, plus a conversion |
| X API | Any public account | $0.005 per post read; no free tier | 3,200 most recent posts per timeline | Code |
| Cloud scrapers (Apify) | Any public account, many at once | From $0.40 per 1,000 tweets | Tool-specific minimums | Low |
| Chrome extension (InsightSocial) | The profile or search you open | Free up to 500 rows/month, Pro $9.99 for 10,000 | 50 to 300 posts per run | None |
| Search export | Any public account, by date | Same as the tool you use | Search tab in front (InsightSocial) | Low |
Can you export tweets from X directly?
Only your own. X's help centre describes one route, the data archive, and it covers the account you are signed in to. There is no download button on anyone else's profile, and copy-pasting a timeline loses the engagement counts and dates.
So the question splits in two:
- Your own tweets, all of them: request your X archive (Method 1).
- Someone else's public profile: use the API, a cloud scraper or a browser extension (Methods 2 to 4).
What data a tweet export includes
From a profile timeline, a good export gives you one row per post with:
- Post URL and post ID
- Text, in full
- Posted at, as a date and time
- Likes, reposts, replies, quotes, views and bookmarks. Views are missing on posts where X shows none
- Post type (text, photo or video) and media URLs
- Hashtags, mentions and links pulled out of the text
- Author name and handle, useful when the timeline includes reposts of other accounts
- Conversation ID, which groups posts from the same thread
A posts export has no follower count. For a follower-based engagement rate, take the follower count from the profile, or export a followers or following list, where every account row carries its counts.
What the rows look like
Illustrative rows: the shape of an export, with a made-up account and text, not real posts.
| Posted At (UTC) | Content | Type | Likes | Reposts | Replies | Views |
|---|---|---|---|---|---|---|
| 2026-11-03 14:02 | We just shipped dark mode. Thread below. | photo | 412 | 38 | 51 | 28,900 |
| 2026-11-03 14:05 | 1/ Why it took us two years: | text | 96 | 4 | 7 | 9,300 |
| 2026-10-30 09:41 | Our Q3 numbers, in one chart. | photo | 1,204 | 210 | 88 | 112,000 |
| 2026-10-28 18:20 | Hiring: senior designer, remote. | text | 57 | 22 | 3 | 6,100 |
The second row shares a conversation ID with the first, so you can tell a thread from a standalone post.
Method 1: Download your own X archive
X's help page (How to download your X archive) gives these steps on desktop:
- Click the More icon in the navigation bar and select Your account.
- Click Download an archive of your data and enter your password.
- Verify your identity with the code X sends to your email or phone.
- Click Request data.
- When X emails you, click Download while logged in to the same account, and save the .zip file.
On the app it sits under Settings and privacy > Account > Your X data. X says it may take a few days to prepare, and your email address must be confirmed first.
What you get: a machine-readable archive in HTML and JSON files: your profile, your posts, Direct Messages, media you attached, your followers and following lists, your lists, ad data and more. It starts with your first post, so it is the only way to get your full history.
Turning it into a CSV: the archive is not a spreadsheet. Your posts are in a JSON data file inside the .zip. In Excel, use Data > Get Data > From File > From JSON, then expand the records into columns. If the file starts with a line of JavaScript (such as window.YTD.tweets.part0 =), delete everything before the first [ and save it as .json first. Any JSON-to-CSV converter works too.
Best for: a full backup of your own account. It does not cover anyone else.
Method 2: The X API
X's API reads any public account's tweets. Its pricing page lists pay-per-use credits with no free tier: $0.005 per post read and $0.010 per user, with new accounts getting $20 of credits when they save a payment card. A post requested twice in one UTC day is charged once.
How far back it goes, from X's timelines docs: the user timeline returns up to the 3,200 most recent posts. Older posts need full-archive search, which goes back to March 2006 for pay-per-use and Enterprise customers; recent search covers only the last 7 days.
You need a developer account, an app and someone to write the code that pages through results and writes the CSV. Exporting 3,200 posts costs about $16 at the listed rate.
Best for: developers who need a first-party source or a recurring pipeline.
Method 3: Cloud scrapers and open source
Cloud tools take a list of handles or a search and return a file or an API response, without your X account.
- Apify Tweet Scraper V2 (by API Dojo): $0.40 per 1,000 tweets; each query must return at least 50 tweets. Its sibling Twitter Scraper Unlimited charges $0.016 per query plus a small per-item fee and handles small queries. Both export CSV, Excel or JSON from Apify's console.
- twitterapi.io: $0.15 per 1,000 tweets through an API, with up to $1 of free credits for new accounts.
- twscrape (open source, Python, MIT): free, actively maintained (v0.21.0 on November 6, 2026), but it logs in with X accounts you supply.
All prices from each tool's own page in November 2026. The full comparison is in best Twitter/X scrapers.
Best for: many accounts at once, or a schedule.
Method 4: A Chrome extension for the profile you open
Here is how it works with InsightSocial's Twitter Posts Scraper:
- Install InsightSocial from the Chrome Web Store and sign in. No card needed.
- Log in to X and open the profile (
x.com/username). The extension reads what your own session sees, so protected accounts only work if you follow them. - Open the side panel by clicking the InsightSocial icon. It recognises the profile.
- Pick Posts and a count: 50, 100 or 300.
- Click Scrape. Profile runs keep going in a background tab, so you can work in another tab while it runs.
- Export to CSV, Excel, JSON or Google Sheets from the panel or your dashboard.
How far back it goes: as far as X keeps loading the timeline for your session. The run starts from the newest post and stops at your count or when X stops serving older posts. There is no date filter in the panel; filter the Posted At column afterwards, or use the search route below.
What it costs: scraping is free on every plan; exporting uses one credit per row. Free includes 500 rows a month, Pro $9.99 a month (or $7.99 billed yearly) includes 10,000, and one-time packs start at $5 for 1,000 rows. Re-exporting a row you already exported is free.
What it does not do: it reads one page per run. It does not take a list of handles, and it has no API or schedule for X. For dozens of accounts, use a cloud tool.
The same panel also exports a list, your home feed, the replies under a tweet, an account's followers or following, and your own likes.
Exporting older tweets: search by date
A profile timeline shows the newest posts first, and X stops loading it at some point. To reach a specific period, use X's search instead:
- Search
from:username since:2025-01-01 until:2025-02-01on X, and pick the Latest tab. - Export the results with the Twitter Search Scraper: 50, 100 or 300 posts per run, same columns plus the author's profile URL and verified flags, and the query saved on every row.
- Repeat for the next window. For a long period, split it into weekly or monthly windows and run each one.
- Stack the files. The Source Name column tells the runs apart.
Keep the search tab in front. X only loads more search results while its tab is visible, and it refuses a re-sent request for the next page, so InsightSocial cannot page a search in the background. If you switch away, the run waits and carries on when you come back. Profile runs do not have this limit.
Add -filter:replies to drop replies, or filter:media for posts with images or video.
Exporting to Excel, CSV or Google Sheets
- Excel: export as .xlsx to keep dates as dates and emoji intact.
- CSV: open it in Excel through Data > From Text/CSV with UTF-8 selected, or emoji and accents turn into symbols.
- Google Sheets: InsightSocial sends a run straight to a sheet in your Drive, the easiest way to share it.
- JSON: for scripts and databases.
Troubleshooting
The run stopped before my count. X stopped serving older posts for your session. Use dated searches for the rest.
Nothing comes back. Check that you are logged in to X in that browser: X shows most content only to signed-in accounts.
A search run is stuck. The search tab is in the background. Bring it to the front.
Views are empty on some rows. X does not show a view count on every post, so the cell stays empty rather than zero.
FAQ
How do I export tweets from an X profile to CSV? Open the profile in Chrome with the InsightSocial extension, pick Posts and 50, 100 or 300, click Scrape and export to CSV. For many accounts at once, use a cloud scraper such as Apify's Tweet Scraper V2, or the X API.
Can I download all my own tweets? Yes. On x.com, open More > Your account > Download an archive of your data, confirm your password and identity, and click Request data. X emails you when the .zip is ready, which can take a few days. Your posts are in JSON, which Excel can import.
Can I download someone else's tweets to Excel? Yes, for public accounts. X has no button for it, so use the X API, a cloud scraper or a Chrome extension. Protected accounts are visible only to approved followers.
How far back can I export tweets from a profile? The X API's user timeline stops at the 3,200 most recent posts. A browser extension goes as far as X keeps loading the timeline for your session. For older posts, search with from:, since: and until:, or use the API's full-archive search.
Is there a free way to export tweets? Your own archive is free. For other accounts, InsightSocial's free plan exports 500 rows a month, and twscrape is free if you run it with your own X accounts. The X API has no free tier.
Does the export include likes, retweets and views? Yes. InsightSocial's export has likes, reposts, replies, quotes, views and bookmarks on every post, plus media links and hashtags.
Related guides: best Twitter/X scrapers, how to scrape Twitter profiles, Twitter competitor analysis, best Twitter/X data APIs, and every Twitter/X scraper.