X API
Profiles, posts, replies, reposters, followers, communities and X's own search. Brand monitoring and audience research.
8
endpoints
3
credits, cheapest call
A failed call is refunded
13
credits, dearest call
Success rates, measured, are on /status
Endpoints
GET /v1/x/profileGet an X profile
x_user3credits
GET /v1/x/postsGet an X account's or community's posts
x_post[]3–13credits
GET /v1/x/postGet one post from X
x_post3credits
GET /v1/x/repliesGet the replies to an X post
x_post[]13credits
GET /v1/x/retweetersGet who reposted an X post
x_user[]13credits
GET /v1/x/followersGet an X account's followers or following
x_user[]13credits
GET /v1/x/searchSearch X
x_post[]13credits
GET /v1/x/communityGet an X community
x_community3credits
What a response looks like
X data comes back in X’s own shape, named after X's API v2: x_user, x_post, x_community. This is /v1/x/profile, unabridged.
{
"data": {
"id": "850244031139721378",
"username": "bluedoorcoffee",
"name": "Bluedoorcoffee",
"description": "Documenting small kitchens and the people in them.",
"location": "Copenhagen, United States",
"url": null,
"profile_url": "https://x.com/bluedoorcoffee",
"profile_image_url": "https://cdn.example/x/r76YgIRNQzq9.jpg",
"profile_banner_url": "https://cdn.example/x/banner/dN3BJ0fxwI6Q.jpg",
"created_at": "2024-04-18T19:17:31.000Z",
"verified": true,
"protected": false,
"public_metrics": {
"followers_count": 890058,
"following_count": 385,
"tweet_count": 4684,
"listed_count": 543,
"like_count": 7515,
"media_count": 1575
},
"pinned_tweet_id": null
},
"meta": {
"request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
"credits_charged": 3,
"credits_remaining": 74218,
"cached": false,
"fetched_at": "2026-09-20T09:12:03Z",
"next_cursor": null
}
}