Qualify a creator or partner
Read the public bio and recent posts together to assess topic fit. Follower counts add audience context to your review.
X/Twitter data · Profile API
Turn an X/Twitter handle into a public profile and recent posts in one request. Get the bio, follower counts and activity your account research or enrichment workflow needs.
Collect account profiles and activity into a report with JSON/CSV exports →
Account research and enrichment
These fields are inside data. Check account availability first; some profile fields or post metrics may be absent.
Connect a handle to a user ID, display name, public bio and avatar. These fields help you display and enrich an account record.
user.iduser.usernameuser.nameuser.descriptionuser.profile_image_urlRead follower, following and post counts alongside account creation time. Counts describe the returned snapshot, not a historical trend.
user.follower_countuser.following_countuser.tweet_countuser.created_atCheck status before using the other fields. An unavailable or missing account can return only an identifier and its status.
user.statususer.verifieduser.protectedUse post text, timestamps and available engagement metrics as an activity sample. Use the Timeline API when you need more pages.
recent_tweets[].idrecent_tweets[].textrecent_tweets[].created_atrecent_tweets[].like_countTry a known username
Set XFETCH_API_KEY in your environment, then replace the username in this cURL request. The saved JSON example illustrates the response shape; its account metrics and posts are not live values.
curl 'https://api.xfetch.io/v1/profiles/by-username/elonmusk' \ -H "Authorization: Bearer $XFETCH_API_KEY"
{
"data": {
"user": {
"id": "44196397",
"username": "elonmusk",
"name": "Elon Musk",
"description": "https://t.co/dDtDyVssfm",
"created_at": "2009-06-02T20:12:29.000Z",
"verified": true,
"protected": false,
"profile_image_url": "https://pbs.twimg.com/profile_images/2053244804520427520/m8mdWZCG_normal.jpg",
"follower_count": 239956432,
"following_count": 1332,
"tweet_count": 102633,
"media_count": 4489,
"status": "active"
},
"recent_tweets": [
{
"id": "2055734812669865997",
"text": "These come from court transcripts",
"author_id": "44196397",
"created_at": "2026-05-16T19:39:07.000Z",
"lang": "en",
"conversation_id": "2055734812669865997",
"possibly_sensitive": false,
"like_count": 45028,
"retweet_count": 9207,
"reply_count": 2190,
"quote_count": 236,
"bookmark_count": 3116,
"is_quote_status": true,
"entities": {
"hashtags": [],
"urls": [],
"mentions": []
},
"display_text_range": [
0,
33
],
"quoted_tweet_id": "2055714457343471890"
}
]
},
"meta": {
"request_id": "req_01HXFETCHEXAMPLE",
"credits": {
"charged": 2,
"remaining": 998
}
}
}One workflow
Start with a known handle, such as elonmusk, without the @ sign. The response keeps the account and its recent posts together so your application can read both.
Create an xfetch API key and send it in the Authorization: Bearer header. X developer credentials are not required.
Pass the username in the request path. Check data.user.status before using profile fields; unavailable accounts return a smaller user object.
Read data.user for account context and data.recent_tweets for an activity sample. Save user.id for later account or timeline lookups.
Choose the right lookup
Use this profile workflow when a known handle is your starting point and you need both account context and activity.
Profile and recent posts by username →Use the user lookup endpoint when you need an ID, bio or follower count without fetching recent posts.
User fields only →Use the ID-based profile endpoint when your dataset already contains X/Twitter user IDs.
Profile by numeric user ID →Use the Timeline API to page through posts. The profile snapshot does not accept limit or next_token.
More posts from the account →Know the cost before you call
Pay for the account snapshot and the recent posts it returns. Use the pricing calculator to convert your expected usage into a credit budget.
Current rule
The base charge covers the profile lookup. Each recent post returned adds the per-item charge. The post count can vary between accounts and requests.
Documented response example
2 creditsThe example contains 1 recent post. Failed validation, authentication, insufficient-credit, rate-limit, service-side, and internal failures are not charged.
FAQ
New accounts receive 1,000 starting credits. Google sign-in opens the dashboard playground with this endpoint selected.
Maintained by xfetch. Last updated .