X API
Public posts, profiles and conversation threads.
Why teams scrape X (Twitter)
X (Twitter) holds some of the most commercially useful public data on the web, and almost none of it is available through a stable official feed at the volume real products need. Rate limits, partner-only access and shifting page structures mean teams either give up on the source or maintain a fragile scraper that breaks every few weeks.
Official API pricing changed the economics of social listening overnight. Teams that need conversation data for research and monitoring need another route to the same public posts.
Irmu removes the infrastructure question entirely. One authenticated request handles proxy selection, browser rendering, anti-bot challenges and retries, and AI Extract turns the resulting page into validated JSON against a schema you define. You get handle, display_name, followers, posts, replies, likes, reposts without writing or maintaining a single selector, and the same endpoint, quota and observability model you already use for every other source.
What it powers
Social listening
Track brand and category conversation in real time.
Crisis detection
Alert on negative sentiment spikes.
Research datasets
Collect public discourse for academic and model work.
Competitor announcements
Archive launches and outage notices.
Fields available
Everything below comes back typed and validated against your schema.
handle
Account handle
display_name
Profile name
followers
Follower count
posts
Post text, timestamp and metrics
replies
Thread replies
likes
Like count
reposts
Repost count
One call, no selectors
curl -X POST https://app.irmu.com/api/extract \
-H "Authorization: Bearer irmu_sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://x.com/search?q=web%20scraping",
"schema": {
"handle": "string",
"display_name": "string",
"followers": "string",
"posts": "string",
"replies": "string",
"likes": "string"
}
}'Validated JSON
{
"data": {
"handle": "@devopsdan",
"posts": [
{
"text": "Finally ditched our proxy layer",
"likes": 412
}
]
},
"credits_used": 22,
"status": 200
}Copy, paste, ship
import requests
res = requests.post(
"https://app.irmu.com/api/extract",
headers={"Authorization": "Bearer irmu_sk_live_..."},
json={
"url": "https://x.com/search?q=web%20scraping",
"schema": {
"handle": "string",
"display_name": "string",
"followers": "string",
"posts": "string"
},
},
)
data = res.json()["data"]
print(data)Simple credits
Per post set page
22 credits
Failed requests are retried automatically and never billed.
See full pricing →X API questions
Start extracting X (Twitter) data today
1,000 free credits every month. No card, no sales call.