YepAPI
Twitter / X API

X / Twitter About Account API

Get the About this account panel for any X (Twitter) profile — country the account is based in, username changes, verified since, connection type, and affiliation. JSON, $0.01 per call.

POST/v1/twitter/user-about
$0.01/call

Returns the About this account details X shows on a profile: where the account is based, whether that location is accurate, how it connected (app store or web), how many times the username has changed and when, since when it has been verified, and any affiliate badge. Useful for spotting impersonators and bot networks.

The standard profile fields are included too, but counts and bio are often null here — use the Twitter User API for those.

Usage

const res = await fetch('https://api.yepapi.com/v1/twitter/user-about', {
  method: 'POST',
  headers: {
    'x-api-key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"username": "NASA"}),
});
const { data } = await res.json();
console.log(data);
curl -X POST https://api.yepapi.com/v1/twitter/user-about \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username": "NASA"}'
import requests

res = requests.post(
    "https://api.yepapi.com/v1/twitter/user-about",
    headers={"x-api-key": "YOUR_API_KEY"},
    json={"username": "NASA"},
)
print(res.json()["data"])

Request Body

ParameterTypeRequiredDescriptionDefault
usernamestringYesX handle — NASA, @NASA, or an x.com / twitter.com profile URL—

Response

{
  "ok": true,
  "data": {
    "account_based_in": null,
    "affiliate": null,
    "avatar": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_400x400.jpg",
    "banner": null,
    "connected_via": null,
    "created_at": "2007-12-19T20:20:32+00:00",
    "description": null,
    "followers_count": null,
    "following_count": null,
    "id": "11348282",
    "is_blue_verified": true,
    "last_username_change_at": null,
    "likes_count": null,
    "listed_count": null,
    "location": null,
    "location_accurate": true,
    "media_count": null,
    "name": "NASA",
    "pinned_tweet_ids": [],
    "protected": false,
    "tweet_count": null,
    "url": "https://x.com/NASA",
    "username": "NASA",
    "username_changes": 0,
    "verified": false,
    "verified_since": "2009-08-07T19:53:50.941+00:00",
    "verified_type": "Government",
    "website": null
  }
}

Response Fields

FieldTypeDescription
okbooleanWhether the request succeeded
data.account_based_instring | nullCountry the account is based in
data.location_accurateboolean | nullWhether X considers that location accurate
data.connected_viastring | nullHow the account connects (e.g. an app store or web)
data.username_changesnumber | nullNumber of username changes
data.last_username_change_atstring | nullLast username change, ISO 8601
data.verified_sincestring | nullWhen the account was verified, ISO 8601
data.affiliatestring | nullAffiliated organization, if any
data.*objectPlus the profile fields of /v1/twitter/user — some may be null

Caching

Responses are cached for 24 hours.

Errors

StatusCodeWhen
400VALIDATION_ERRORusername is missing or not a valid X handle
404NOT_FOUNDUser not found or suspended
429RATE_LIMITED_UPSTREAMToo many requests in a short burst — retry after a few seconds
502 / 503UPSTREAM_ERROR / SERVICE_UNAVAILABLETemporary problem fetching data from X — retry later

Failed calls are not charged.

On this page