Users & Followers

These endpoints cover everything about an account and the people around it.

Start with /v1/user/info to resolve a handle into a profile — follower count, bio, verification status, join date. If you only have a numeric ID (for example from a follower crawl), /v1/user/info_by_id does the reverse lookup.

For posts, pick the timeline that matches what you actually want instead of fetching everything and filtering client-side. /v1/user/last_tweets returns the full profile timeline — originals, replies, retweets and quotes — and exclude=replies,retweets narrows it to just the posts an account wrote, the same way the official X API does. /v1/user/replies shows who an account interacts with. /v1/user/videos returns direct mp4 URLs with duration and thumbnails. Filtering is applied before your limit, so you still get the full number you asked for and pay only for what comes back.

For the follower graph, /v1/user/followers gives full profiles at 200 per page with no depth cap. If you're crawling millions of followers and only need the identity, /v1/user/followers_ids returns IDs and handles at roughly 8 bytes each — about 18× less data.

/v1/user/mentions answers the other direction: who is talking *to* this account. That's the core endpoint for brand, ticker and KOL monitoring.

GET/v1/user/info

User Profile

Complete profile: followers, verification, bio, join date, location.

Parameters
usernamestringrequiredX handle without @
Response
200 OK
https://socialapi.tech/v1/user/info
{
  "status": "success",
  "data": {
    "id": "44196397",
    "username": "elonmusk",
    "display_name": "Elon Musk",
    "followers_count": 240919741,
    "blue_verified": true,
    "created_at": "Tue Jun 02 2009",
    "url": "https://x.com/elonmusk"
  }
}
GET/v1/user/last_tweets

Latest Tweets

A user's most recent posts — originals, replies, retweets and quotes, as shown on their profile. Monitored accounts go up to 1,000 tweets deep.

Parameters
usernamestringrequiredX handle
limitintoptionaldefault 20
excludestringoptionalreplies,retweets — filtered before the limit, so you still get the full count
Response
200 OK
https://socialapi.tech/v1/user/last_tweets
{
  "status": "success",
  "data": [
    { "id": "2078...", "text": "...", "like_count": 12043,
      "author": { "username": "binance" } }
  ],
  "meta": { "count": 20 }
}
GET/v1/user/status

Account Status

Is this account alive, suspended, deleted or unavailable? Always HTTP 200 — "it does not exist" is a successful answer, not an error. Audit follower lists, detect bans on monitored accounts, clean stale handles in bulk.

Parameters
usernamestringrequiredX handle
Response
200 OK
https://socialapi.tech/v1/user/status
{ "status": "success", "data": {
  "username": "elonmusk",
  "status": "alive",
  "user_id": "44196397",
  "reason": null
} }

// 被封: { "status": "suspended", "user_id": null, "reason": "User has been suspended" }
// 不存在: { "status": "not_found", "user_id": null, "reason": null }
// 受保护等: { "status": "unavailable", "reason": "Protected" }
GET/v1/user/affiliates

Org Affiliates

Official accounts affiliated with a verified organization (staff, sub-brands). One call gets a company's whole X footprint. Pass the ORGANIZATION handle, not a member.

Parameters
usernamestringrequiredOrganization handle
cursorstringoptionalPagination cursor
limitnumberoptionalItems per page (default 20)
Response
200 OK
https://socialapi.tech/v1/user/affiliates
{ "status": "success", "data": [
  { "user_id": "1526461000000000000", "username": "XCorp",
    "display_name": "X Corp.", "followers_count": 120000 }
], "meta": { "count": 47, "next_cursor": "..." } }
GET/v1/user/about

Account Transparency

Based-in country, connected-via app, username-change count, join date, verification. From X's "About this account" page.

Parameters
usernamestringrequiredX handle
Response
200 OK
https://socialapi.tech/v1/user/about
{ "status": "success", "data": {
  "screen_name": "elonmusk",
  "account_based_in": "United States",
  "based_in_accurate": true,
  "connected_via": "United States App Store",
  "username_changes": 0,
  "created_at": "Tue Jun 02 20:12:29 +0000 2009",
  "is_blue_verified": true,
  "is_verified": false,
  "is_identity_verified": false,
  "verified_since_msec": null,
  "affiliate": "X",
  "protected": false,
  "raw": { ... }
} }
GET/v1/user/media

Media Tweets

Only tweets containing photos or videos.

Parameters
usernamestringrequiredX handle
limitintoptionaldefault 20
Response
200 OK
https://socialapi.tech/v1/user/media
{ "status": "success", "data": [ ... ], "meta": { "count": 20 } }
GET/v1/user/highlights

Highlights

The user's highlighted tweets tab.

Parameters
usernamestringrequiredX handle
limitintoptionaldefault 20
Response
200 OK
https://socialapi.tech/v1/user/highlights
{ "status": "success", "data": [ ... ] }
GET/v1/user/followers

Followers

Paginated follower list with full profiles.

Parameters
usernamestringrequiredX handle
cursorstringoptionalpagination cursor
limitintoptionaldefault 100
Response
200 OK
https://socialapi.tech/v1/user/followers
{ "status": "success", "data": [ ...users ],
  "meta": { "count": 100, "next_cursor": "..." } }
GET/v1/user/followings

Following

Accounts a user follows (paginated).

Parameters
usernamestringrequiredX handle
cursorstringoptionalcursor
limitintoptionaldefault 100
Response
200 OK
https://socialapi.tech/v1/user/followings
{ "status": "success", "data": [ ...users ], "meta": { "next_cursor": "..." } }
GET/v1/user/verified_followers

Verified Followers

Blue-verified followers only.

Parameters
usernamestringrequiredX handle
cursorstringoptionalcursor
limitintoptionaldefault 100
Response
200 OK
https://socialapi.tech/v1/user/verified_followers
{ "status": "success", "data": [ ...verified users ] }
GET/v1/user/info_by_id

Profile by ID

Reverse lookup: numeric user ID to full profile. Handy after follower_ids.

Parameters
user_idstringrequirednumeric X user id
Response
200 OK
https://socialapi.tech/v1/user/info_by_id
{ "status": "success", "data": {
  "id": "44196397", "username": "elonmusk",
  "followers_count": 221000000 } }
GET/v1/user/replies

Replies Only

Only this account's replies — shows who they interact with. Measured 57% reply rate.

Parameters
usernamestringrequiredX handle without @
limitintoptionaldefault 20
cursorstringoptionalpagination cursor
Response
200 OK
https://socialapi.tech/v1/user/replies
{ "status": "success", "data": [
  { "id": "...", "text": "@adamcarolla Oh and btw...",
    "is_reply": true } ], "meta": { "count": 20 } }
GET/v1/user/photos

Photo Posts

Only posts with images. Measured 88% carry photos, zero overlap with the normal timeline.

Parameters
usernamestringrequiredX handle without @
limitintoptionaldefault 20
cursorstringoptionalpagination cursor
Response
200 OK
https://socialapi.tech/v1/user/photos
{ "status": "success", "data": [
  { "id": "...", "photos": ["https://pbs.twimg.com/..."] } ],
  "meta": { "count": 20 } }
GET/v1/user/videos

Video Posts

Only posts with video, including direct mp4 URLs, duration and thumbnail. Measured 100%.

Parameters
usernamestringrequiredX handle without @
limitintoptionaldefault 20
cursorstringoptionalpagination cursor
Response
200 OK
https://socialapi.tech/v1/user/videos
{ "status": "success", "data": [
  { "id": "...", "videos": [ { "url": "https://video.twimg.com/...mp4",
    "duration_ms": 21000, "thumbnail": "..." } ] } ] }
GET/v1/user/articles

Long-form Articles

X Articles (long-form posts) with full plain text.

Parameters
usernamestringrequiredX handle without @
limitintoptionaldefault 20
Response
200 OK
https://socialapi.tech/v1/user/articles
{ "status": "success", "data": [
  { "id": "...", "text": "<full article text>" } ] }
GET/v1/user/mentions

Mentions

Who is talking TO this account. Core endpoint for brand and ticker monitoring.

Parameters
usernamestringrequiredX handle without @
limitintoptionaldefault 20
Response
200 OK
https://socialapi.tech/v1/user/mentions
{ "status": "success", "data": [
  { "id": "...", "text": "@elonmusk The reason SpaceX..." } ],
  "meta": { "count": 20 } }
GET/v1/user/followers_ids

Follower IDs

IDs and handles only — 18x less data than full profiles. Built for large-scale graph crawling.

Parameters
usernamestringrequiredX handle without @
limitintoptionaldefault 100, up to 2000
cursorstringoptionalpagination cursor
Response
200 OK
https://socialapi.tech/v1/user/followers_ids
{ "status": "success", "data": [
  { "id": "2090864542075244544", "username": "KINGSCAR20hc" } ],
  "meta": { "count": 100, "next_cursor": "..." } }
GET/v1/user/relationship

Follow Relationship

Does account A follow account B? Works on any two third-party accounts.

Parameters
sourcestringrequiredsource handle
targetstringrequiredtarget handle
Response
200 OK
https://socialapi.tech/v1/user/relationship
{ "status": "success", "data": {
  "source": "elonmusk", "target": "binance",
  "following": false, "followed_by": true } }
Quickstart & authTry the first endpointBase URL: https://api.socialapi.tech