I wanted an AI agent to read a tweet. X blocks direct fetching. The official API is $100/month for basic access. The free tier gives you one request every fifteen minutes.
Paid workarounds exist -Exa, Firecrawl, Apify, headless browsers. Overkill.
There are two unauthenticated endpoints that just give you the data.
fxtwitter
fxtwitter started as a Discord/Telegram fix -Twitter's link previews are broken on both, so someone built a proxy. Under the hood it's a Cloudflare Worker that calls Twitter's internal GraphQL API using the same bearer token the web app uses, forges browser-like headers to look like a real Chrome session, and returns clean JSON. There's a companion service called Elongator that maintains a pool of real Twitter account credentials for when guest access fails (NSFW content, rate limits). Twitter has tried to kill this multiple times -they removed the REST API in June 2023, killed guest account creation in January 2024 (which took down Nitter), and introduced an anti-bot header (X-Client-Transaction-Id) that required reverse-engineering SVG animations and cryptographic hashing. fxtwitter survived all of it.
curl "https://api.fxtwitter.com/username/status/123456789"
Full text, author, engagement stats, media. No auth on your end. One tweet per call -no thread replies.
The syndication endpoint
This one is simpler and more durable. Twitter embeds -the <blockquote class="twitter-tweet"> cards on blogs -need to render on any website without API keys. So there's an unauthenticated endpoint backing them.
curl "https://syndication.twitter.com/srv/timeline-profile/screen-name/{username}"
Returns an HTML page with the user's recent timeline as JSON in a __NEXT_DATA__ script tag. Thread replies, retweets, media, engagement counts. Filter by conversation_id_str to reconstruct a thread.
Unlike fxtwitter, there's no arms race here. This endpoint powers every embedded tweet on every blog and news site on the internet. Twitter can't kill it without breaking millions of pages.
Use both together. fxtwitter for the main tweet, syndication for the thread. I packaged this into a skill that works on any platform supporting them (Claude Code, Codex, etc): x-reader.skill
Limits: ~20 most recent tweets per profile. No keyword search. Protected accounts don't work. Only the author's self-replies come through.