Everything a public account has said is right there on the timeline, in order, free to read.
Try to do anything with it and the whole thing falls apart. You cannot sort it. You cannot filter it to a date range. You cannot count how many of those posts were replies rather than originals, or pull the twenty that outperformed everything else, or hand it to somebody as a file. Scrolling is not analysis, and copying by hand stops being viable somewhere around post forty.
X's own answer is an archive request, which applies only to your own account and returns a raw dump that needs work before it becomes usable.
So the practical question is not how to read a tweet history. It is how to get one out of the platform in a shape a spreadsheet understands.
With Circleboom Twitter, you can enter any public username and export that account's recent tweet history as a CSV, with the date, type, language, media flag, full text, and engagement metrics on every row.
What Is Circleboom Twitter?
Circleboom is an Official X Enterprise Developer, so the data comes through X's official Enterprise API rather than a browser extension reading the page.

- Exports up to the 3,200 most recent posts of any public X account as a structured CSV
- Works on accounts that are not yours, which is what makes competitive benchmarking possible
- Carries per post performance metrics in every row, not just the text
- Applies filters before the export runs, so the file arrives scoped instead of needing cleanup
- Creates the record you need before any bulk deletion, which cannot be undone once it has run
The file lands in your email and is also stored on your Circleboom account page, so a lost message is not a lost export.
How to Pull a Tweet History
- Connect your X account to Circleboom Twitter and open Export Tweets. It sits under the search tools. Authentication runs through X's official Enterprise API.
- Enter any public username. This works on your own account and on anyone else's, as long as the account is public. Protected accounts are not accessible, and nothing here changes that.
- Check the tweet count it reports back. Circleboom fetches the account's history and shows you how many posts are there. Read this number before going further, because it determines whether the export will cover the period you actually care about.
- Work out what 3,200 posts means for this specific account. This is the step everyone skips and it decides whether your export is useful. The cap is a count, not a date range. An account posting forty times a day gets you about eleven weeks. An account posting twice a week gets you thirty years, which is longer than the platform has existed.
- Apply filters before you export, not after. You can scope by date range, engagement threshold, post type, language, and keyword. Filtering happens against the retrieved dataset, so what you receive is the subset you asked for rather than a raw dump you then have to clean.
- Match the filter to the question you are answering. A campaign retrospective wants a date range. A study of what works wants an engagement threshold, for example only posts above 50 likes. An audit of posting behaviour wants no engagement filter at all, because the low performers are the point.
- Confirm the export and enter the delivery email. The export is a purchase, handled through a secure Stripe page.
- Collect the CSV from your email or your Circleboom account page. It is stored in the account either way, so you can retrieve it later without repeating the export.
- Open it and check the columns before you analyse anything. You get PostId, Name, Username, ProfileId, CreatedAt, Lang, CountBookmark, CountImpression, CountLike, CountReply, CountRetweet, CountQuote, TweetType, HasMedia, and the full Text.
- Start with TweetType, not with the metrics. Split the file into tweets, retweets, and replies and look at the proportions. This one column tells you whether the account is a publisher, an amplifier, or a conversationalist, and it reframes everything else in the file. Most people never compute it and it is the fastest read available.
- Then sort by CountImpression and by CountLike separately. The two lists rarely match, and the gap between them is where the interesting content sits. High impressions with low likes means reach without resonance. The reverse means a small audience that cared a lot.
- Cross tabulate HasMedia and Lang against performance. Whether posts with media outperform text, and whether one language outperforms another in a multilingual account, are two questions the platform will never answer for you and a pivot table answers in a minute.
- Put the export date in the filename. Metrics keep moving after you pull them, so a file without a date is a file you cannot compare against anything later.
The 3,200 Limit Is the Whole Planning Problem
X's API returns up to the 3,200 most recent posts from a public timeline. That is a platform constraint, it applies to every tool equally, and no plan upgrade anywhere extends it.
What matters is that the limit is expressed in posts, not in time. Two accounts with identical follower counts can have wildly different reachable histories depending on how much they post.
📌 Before exporting, divide 3,200 by the account's rough posts per day. That gives you the date your export will bottom out at, and it tells you immediately whether the period you care about is inside or outside the window.
For a prolific account, this means a tweet history export is a recent history export, and anything older is simply not retrievable through the API. If the period you need falls outside it, the tweets are not gone, they are just not reachable this way. Historical tweet search queries public tweet content by keyword and date range instead of walking a timeline, which is a different route into older material, and methods for finding old tweets plus finding old tweets generally cover the rest.
⚠️ One more scoping decision: retweets and replies count toward the 3,200. An account that replies constantly burns most of its window on conversation, so if you only want original posts, filter by post type and know that the reachable date range for originals is much shallower than the raw count suggests.
What You Can Actually Do With the File
Competitive benchmarking. This is the use case that justifies the whole exercise. Pull a competitor's history, compute their posting cadence, their original to retweet ratio, their median engagement, and their best performing formats, then put your own export next to it. Analyzing a competitor's X account and competitor analysis on X cover the wider audit, and targeting competitors' followers with ads is where a lot of teams take it next.
Content auditing before a strategic change. Before a rebrand, a pivot, or a change in tone, a structured record of what was actually published beats everyone's memory of it. Auditing what to delete and what to keep is the natural next step.
A backup before deleting anything. This one is not optional. Deletions are irreversible, and a CSV is the only record of what was there. Deleting all your tweets, deleting old tweets by year, and archive erasers all assume you exported first. Whether archived tweets can be retrieved is the question people ask afterward, and the answer is much better if a file exists.
Client and stakeholder reporting. A spreadsheet of what was published, when, and with what result is portable in a way a dashboard screenshot is not.
Finding repeatable formats. Filter to high performers before export and the file becomes a library of what worked rather than a record of everything. Deciding what to post from past analytics and identifying your most engaging post run on exactly this.
Research and archiving. Research uses for X data and X as a market research tool both need the data in a file before any of it is possible.
Why Not Scrape It
Because it breaks, and because it puts your account at risk for data that is available through the official API anyway.
Browser extensions that read the page depend on X's markup staying still, which it does not. They also run inside your logged in session, which is a meaningful trade to make for a CSV. Safely downloading tweet data and the equivalent question for follower exports both weigh this up.
The other reason is completeness. A scraper gets what the page rendered while it was scrolling. An API export gets a defined set with defined fields, which is the difference between data you can report on and data you have to caveat. Scraping a person's tweets and scraping X data without coding describe the alternative honestly enough that the comparison is easy to make.
If you only need your own posts and are in no hurry, X's native archive request is free, and downloading tweets step by step, exporting all tweets of a user to Excel or CSV, and exporting X posts compare the options. The native archive does not work on anyone else's account, which is usually the reason people are here.
FAQ
Can I pull someone else's tweet history, or only my own?
Any public account. That is the main difference from X's native archive request, which only covers your own posts. Protected accounts are not accessible.
How far back does the export go?
Up to the 3,200 most recent posts. Because that is a count and not a date, the period it covers depends entirely on how often the account posts. Divide 3,200 by their daily posting rate to estimate where it will stop.
Can I get more than 3,200 tweets?
No. It is a limit on X's public timeline endpoint, it applies to every tool, and no upgrade extends it. For material older than that, keyword and date range search over public tweets is a different route to the same content.
What is in the CSV?
PostId, Name, Username, ProfileId, CreatedAt, Lang, CountBookmark, CountImpression, CountLike, CountReply, CountRetweet, CountQuote, TweetType, HasMedia, and the full tweet text. It opens directly in Excel or Google Sheets.
Do retweets and replies count toward the limit?
Yes. All three post types share the same 3,200 window, which is why the reachable history for original posts alone is shallower than the total suggests on a reply heavy account.
Should I filter before or after exporting?
Before. Date range, engagement threshold, post type, language, and keyword filters are applied before the file is produced, so you receive the subset you wanted instead of cleaning a full dump afterward.
Are the engagement numbers final?
No. Metrics reflect the values at the time of retrieval and keep moving afterward, particularly for recent posts. Treat every export as a snapshot and put the date in the filename.
Do I need this before deleting tweets?
Yes, and it is worth being blunt about it. Deletions cannot be undone. The export is the only record of what existed, and it is much easier to run beforehand than to regret afterward.
Where does the file arrive?
It goes to the email address you provide and is also stored on your Circleboom account page, so you can retrieve it again without running a second export.
Final Thoughts
A tweet history is a genuine dataset trapped inside a scrolling interface. Everything interesting about it, the ratios, the patterns, the outliers, the comparison against somebody else, needs it to be a file first.
To pull a tweet history properly, decide what question you are answering, work out whether 3,200 posts reaches back far enough for that account, filter to the subset that answers it, and export. The analysis is quick once the data is in a spreadsheet. Getting it there is the part the platform makes hard.
With Circleboom Twitter, you can export the recent tweet history of any public X account as a clean CSV with dates, types, and engagement metrics attached, and start working with it in the tool you already use.
https://circleboom.com/twitter-management-tool/twitter-search-tool/export-tweets