Twitter API: get tweets by user as JSON, latest first
Send one GET request with a handle and your API key, and you get that user's latest tweets back as JSON, newest first, with a cursor for the next page. You don't need an X developer account or approval. Each page costs 300 credits.
curl https://api.xautodm.com/v1/users/naval/tweets \ -H "Authorization: Bearer $XAUTODM_API_KEY"
{
"data": { "tweets": [ { "id": "1849...", "text": "...", ... } ], "cursor": "..." },
"meta": { "credits_charged": 500, "credits_remaining": 49500, "request_id": "req_..." }
}How to get tweets by user with the Twitter API
Call GET /v1/users/{handle}/tweets on api.xautodm.com with your key as a bearer token. The response holds a page of the user's tweets, newest first, and a cursor. Pass that cursor back to get the next, older page, and stop when it comes back empty. The reference lists it as the user tweets endpoint. It's what most people mean by a Twitter timeline API or a Twitter feed API: the posts on one user's profile.
A page holds about 20 tweets. In our test on 13 November 2026, the first row was the account's pinned tweet and the rest came newest first. Retweets were included as rows whose text starts with RT. Replies are not part of this list. Each row carries the tweet id and text plus fields such as createdAt, likeCount and retweetCount. To get the latest tweet from a user, read the first page and take the row with the newest createdAt, since a pinned tweet can sit on top.
What this is not: a full archive. We have not tested how far back the cursor goes, so treat it as recent tweets, paginated. There is no full-archive search endpoint and no endpoint for the home feed your own account sees. Searching for from:handle on the search endpoint returns the accounts behind matching tweets rather than the tweet text, so it can't stand in for this call. If you already have a tweet id, use get a tweet by id instead, for 45 credits. For profiles and followers, the Twitter scraper API page covers the rest of the API.
Newest first, with a cursor
Each response has data.tweets and data.cursor. Loop until the cursor is null to page back through recent tweets.
Charged per page, on success
It's 300 credits for a page of about 20 tweets, charged only when the call succeeds. At the one-time rate of 100,000 credits for $1, that's $0.003 a page.
No X developer account
You use an XAutoDM key. Reading tweets doesn't need a connected X account or an approved X developer app.
Export the feed to CSV
The Python sample writes id, date and text to a CSV file. That's the quickest way to export a Twitter feed into a spreadsheet.
How it works
Get a key
Sign up at api.xautodm.com and create a key. New accounts include 50,000 starter credits.
Request the first page
Send GET /v1/users/{handle}/tweets with your key in the Authorization header.
Follow the cursor
Pass data.cursor back as the cursor parameter until it comes back null, or stop once you have enough tweets.
What it costs to get tweets by user
Credits, charged on success. The same numbers as the API pricing page.
| A page of a user's tweets (about 20) | 300 credits |
| One tweet by id | 45 credits |
| A profile by handle or id | 60 credits |
One-time credit is 100,000 credits for $1, so a page of tweets is $0.003. Monthly plans start at $19. Full table on the API pricing page.
Frequently asked questions
Keep exploring
Book more calls from your X DMs.
Connect an account and send your first personalized campaign in minutes. Plans from $19 per account.