You've successfully subscribed to Circleboom Twitter: Analytics & Management for X Accounts
Great! Next, complete checkout for full access to Circleboom Twitter: Analytics & Management for X Accounts
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Download someone's Twitter feed: the 15 fields you actually receive

Download someone's Twitter feed: the 15 fields you actually receive

. 9 min read

You can download up to 3,200 of the most recent posts from any public X account as a structured CSV, and every row arrives carrying fifteen fields.

Whether that is enough depends far less on the row count than on whether those fifteen fields contain the column your question needs.


What does a downloaded Twitter feed actually contain?

It contains up to 3,200 recent posts from one public account, with fifteen data fields per post: identity, timing, language, six engagement counts, post type, a media presence flag, and the full body text. Circleboom retrieves that data from public Twitter accounts as a verified Enterprise partner of X running on official X (Twitter) Enterprise APIs.

→ Download someone's Twitter feed

What "complete" means for a Twitter feed when the unit is a field

Completeness has two axes, and almost every article on this topic measures only one of them. The first axis is depth: how many posts you can reach. The second is width: how many attributes come attached to each post.

Depth is capped and public knowledge. Width is where exports actually differ from one another, and where most disappointment starts.

Circleboom pulls a public account's Twitter posts into a fixed 15-column CSV, so the schema you receive today is the schema you receive on the next run and the run after that.

A page-harvesting script returns whichever values it managed to read off the screen that day, and the set changes whenever the layout does.

That difference matters more than it sounds, because a fixed schema is what allows two files taken months apart to be joined on a shared key and compared field by field.

Ask what you want to know first, then check whether a column exists for it. If your question is "which post formats earn the most bookmarks," you need a bookmark column. No amount of extra rows compensates for its absence.

That reframe is the single most useful thing to carry into an export. You can download tweets from any public account in about a minute, but only a file whose schema matches your question is worth the minute.

The same logic applies from the own-account side, and can I download my tweets works through it there, where the schema question is identical even though the access path differs.

Watch the export screen: the fields as they appear in the finished spreadsheet, and the filter panel that decides which rows reach it.

https://www.youtube.com/watch?v=u30fuWOIg1c

How to download someone's Twitter feed from any public account

To download a public account's posts, connect your own X account through Circleboom, open the export utility, enter the target handle, apply the filters that match your question, and collect the CSV by email.

The whole flow runs in two phases and takes a few minutes, with the filtering step doing most of the work.

Connect your account and open the export screen

  1. Log in to Circleboom Twitter and authorize your X account through official OAuth.
  1. Select the Essential Toolbox menu and open Export Tweets, which sits alongside the other export utilities.

Scope the pull and collect the file

  1. Enter the target account's public handle, dropping the @, and check the post count the search reads back.
  2. Apply the filters that match your question: a date window, a post type, a language, a keyword, or an engagement floor.
  3. Provide the delivery email, complete the checkout, and open the CSV from your inbox or from your Circleboom account page.

The ordering holds up because the filter step sits before the file is built rather than after.

Scoping at the source produces a dataset you can analyze immediately, while an unfiltered pull leaves every scoping decision waiting for you in a spreadsheet.

At a glance: connect, open Export Tweets, enter the handle, filter, collect the CSV.

A worked example of what the finished file supports lives in how I exported and analyzed Elon Musk's tweets, where the field set is doing all the heavy lifting.

The 15 fields in an X tweet export and what each one answers

Each row in the CSV is one post. The table below maps every field to the analysis it makes possible, so you can check your question against the schema before running anything.

Field What it answers
PostId The stable join key for comparing two exports or spotting deletions
Name The account's display name at the time of the pull
Username The handle, useful when merging exports from several accounts
ProfileId The numeric account ID, stable even if the handle changes
CreatedAt Posting date and time, the basis for cadence and timing analysis
Lang Detected post language, for splitting multilingual accounts by market
CountBookmark Save intent, the closest thing to a reference-value signal
CountImpression Reach delivered, where available for that account
CountLike Light-touch approval, the highest-volume and least selective signal
CountReply Conversation generated, the signal most tied to controversy or questions
CountRetweet Amplification, the signal that predicts reach beyond existing followers
CountQuote Commentary-carrying amplification, distinct from a plain retweet
TweetType Whether the row is an original post, a retweet, or a reply
HasMedia Whether the post carried media, for format-versus-performance comparison
Text The full post body, for topic, hook, and length analysis

Two of those columns do more work than their names suggest.

TweetType is what lets you separate creation from amplification from conversation. Filter to originals only and an account that looked prolific may turn out to publish very little of its own.

That single filter reframes most competitor reads.

CountBookmark is the quietest useful number in the set.

Bookmarks are a private action, so they track reference value rather than social performance, and a post with modest likes and heavy bookmarks is usually the most reusable format on the account.

Which X posts reach the export and which never appear

Three rules decide whether a given post makes it into your file, and none of them are visible once the CSV is open.

Knowing them upfront prevents the most common misreading of an export, which is treating an absence as evidence.

Recency decides the first cut. The export reaches a bounded window of the account's most recent posts, so anything published before that window opened is out of range regardless of filters.

X documents the boundary directly in its user timeline reference, and it applies identically to every authorized route.

Account state decides the second cut. A protected account returns nothing at all, and an account that switches from public to protected between two of your exports simply stops producing files.

Deletion decides the third, and it is the quiet one. Posts removed by the author before the export ran vanish without leaving a gap you can see, so a hole in an account's posting history inside your file may reflect a removal rather than a silent week.

An export tells you what exists now, never what existed then. That is why the row count on its own is a weak signal, and why the eligibility rules belong in your notes next to the file.

Circleboom is one of the companies on X's official Enterprise developers list, which is why those three rules are the only ones in play. An authorized route inherits the platform's access boundaries exactly, so nothing else is quietly trimming your rows on the way through.

Is a tweet export the same as an X data archive?

No. The two paths retrieve different things, apply to different accounts, and arrive in different formats.

An X data archive is something you request from X for your own account. It covers your full history rather than a recent window.

It includes direct messages, media, and ad interaction records, and it arrives as machine-readable JSON and HTML files that take real effort to work with. X takes a day or more to build it, sometimes several.

A tweet export through an authorized third party works on any public account including ones you do not own, returns a bounded recent window, and arrives as a spreadsheet you can sort immediately.

There is no unpacking step between the file landing and the analysis starting.

The choice is not really a choice, because the two rarely apply to the same situation. Your own full history means the archive. Anyone else's account means the export, and the bounded window comes with it.

Rate limits shape the second path in ways worth understanding, and X publishes those constraints openly in its API rate limit documentation. Working within a published limit is what separates an authorized pull from a harvest that tries to outrun one.

Anyone planning to work with the exported file afterwards will find how to analyze someone's tweets a useful next read.

What the fields answer that an X profile page cannot

X's own interface presents an account chronologically and gives you no metric to reorder it by. The export removes that constraint, and three questions become answerable the moment the CSV opens.

Which formats repeat. Sorting by impressions and reading the Text and HasMedia columns together shows whether an account's best performers share a structure, a length, or a media type.

When the account actually posts. Grouping CreatedAt by hour and weekday produces a real cadence profile, which is far more reliable than eyeballing a timeline.

How much is original. Counting TweetType values gives the creation-to-amplification ratio, the number most competitor analyses assume rather than measure.

The third one changes conversations more than the other two combined, because a competitor that publishes twice a day and reposts eight times reads very differently once the split is visible.

You can download someone's Twitter feed as a 15-column CSV and have that ratio in front of you before the coffee cools.

The same structured approach extends past a single account's posts. Twitter Historical Data works from a keyword or topic rather than a handle, which is the right starting point when the question is about a conversation instead of an author.

Using PostId and ProfileId to join Twitter exports

The two identifier columns are what let a tweet export stop being a standalone file.

PostId is unique and permanent per post, ProfileId is unique and permanent per account, and neither changes when a handle or display name changes.

That stability turns three otherwise painful jobs into simple merges.

Comparing two dated pulls of one account becomes a lookup on PostId. Matching on the ID means you never have to match on text, which fails the moment a post is edited, truncated in one file, or carries an emoji that two spreadsheet tools encode differently.

Merging exports from several accounts becomes a lookup on ProfileId. Pull five competitors, stack the files, and you have a single table where every row still knows which account it came from even if two of them rebrand next quarter.

Connecting posts to audiences becomes possible at all. On the audience side, the Twitter Follower Scraper produces an authorized CSV of an account's follower list carrying that same ProfileId field.

A post-level file and an account-level file can then be joined into one view rather than read side by side.

Handles change. Display names change. The ID columns do not, which is why they belong in every file you keep.

Matching your question to the 15-field schema

Downloading someone's Twitter feed gives you up to 3,200 recent posts from any public account, with fifteen fields per post covering identity, timing, language, six engagement counts, post type, media presence, and full text.

The row ceiling is set by X and applies to every authorized route equally.

The field schema is the part worth checking first.

Match your question to a column before you export, because an extra thousand rows never compensates for a missing attribute, and the fifteen fields above cover more analytical ground than most people expect.

If no column answers your question, the export is not the wrong tool so much as the wrong first step. Sentiment, topic, and thread structure all have to be derived from the Text column after the fact.

Knowing that before you pull saves you from waiting on a file that was never going to hold the answer by itself.

Once the file is open, exporting your Twitter data to Google Sheets turns it into a working dashboard rather than a static download.

→ Export a public account's posts

Frequently asked questions

Are impression counts always populated in the export?

Not always. Impression availability depends on the account type and the level of API access X grants for that account, so some accounts return partial or zero impression data while every other field populates normally.

Can I export a protected account if I already follow it?

No. Protected accounts are excluded from authorized data retrieval regardless of your follow relationship, so the export returns nothing for them. Only open, public accounts are reachable.

Does the CSV include retweets and replies as well as original posts?

Yes. All three arrive as rows, and the TweetType column labels each one, so you can split them apart in your spreadsheet or filter them out at the export screen before the file is ever built.


Kevin O. Frank
Kevin O. Frank

Co-founder and Product Owner @circleboom #DataAnalysis #onlinejournalism #DigitalDiplomacy #CrisesCommunication #newmedia