Tweets & Engagement

/v1/tweet/info returns one tweet with all of its metrics, media and author object. If you have more than a couple of tweet IDs, use /v1/tweets/batch instead — it takes up to 100 IDs in a single request. In production testing, 30 tweets took 0.77 seconds through the batch endpoint versus 9 seconds looping single lookups, and it costs one quota unit instead of 30.

For conversations, /v1/tweet/replies returns the reply tree and /v1/tweet/thread reconstructs a multi-tweet thread in order. /v1/tweet/quotes finds who quote-tweeted a post and what they said — useful when a quote storm matters more than the replies.

The composite endpoints do several fetches internally and return one object: /v1/user/whois for account due-diligence, /v1/tweet/engagement for an interaction summary, /v1/batch/user_info for up to 100 profiles at once. They exist to save you round trips, and they're priced below what the same calls would cost separately.

Note that X restricts liker data, so there is no likers endpoint — /v1/tweet/retweeters is available and returns full profiles.

GET/v1/tweet/info

Tweet Details

Full tweet with all metrics and author.

Parameters
idstringrequiredtweet id
Response
200 OK
https://socialapi.tech/v1/tweet/info
{ "status": "success", "data": {
  "id": "2078...", "text": "...", "like_count": 109,
  "retweet_count": 17, "view_count": 45152,
  "author": { ... } } }
GET/v1/tweet/replies

Replies

Replies to a tweet.

Parameters
idstringrequiredtweet id
limitintoptionaldefault 20
Response
200 OK
https://socialapi.tech/v1/tweet/replies
{ "status": "success", "data": [ ...replies ] }
GET/v1/tweet/thread

Full Thread

The complete thread in chronological order.

Parameters
idstringrequiredtweet id
limitintoptionaldefault 50
Response
200 OK
https://socialapi.tech/v1/tweet/thread
{ "status": "success", "data": [ ...thread tweets ] }
GET/v1/tweet/retweeters

Retweeters

Users who retweeted (paginated).

Parameters
idstringrequiredtweet id
cursorstringoptionalcursor
limitintoptionaldefault 100
Response
200 OK
https://socialapi.tech/v1/tweet/retweeters
{ "status": "success", "data": [ ...users ], "meta": { "next_cursor": "..." } }
GET/v1/user/whois

Whois Due-Diligence

One call: profile + account transparency (based-in, connected-via, username changes) + recent tweets. Concurrent.

Parameters
usernamestringrequiredX handle
tweet_limitintoptionaldefault 10
Response
200 OK
https://socialapi.tech/v1/user/whois
{ "status": "success", "data": {
  "profile": { ... },
  "about": {
    "account_based_in": "United States",
    "connected_via": "United States App Store",
    "username_changes": 0, ...
  },
  "recent_tweets": [ ... ] } }
GET/v1/tweet/engagement

Engagement Panorama

One call: retweeters + replies. Concurrent aggregation.

Parameters
idstringrequiredtweet id
limitintoptionaldefault 20
Response
200 OK
https://socialapi.tech/v1/tweet/engagement
{ "status": "success", "data": {
  "retweeters": [ ... ],
  "replies": [ ... ] } }
GET/v1/batch/user_info

Batch Profiles

Up to 100 profiles in one concurrent call.

Parameters
usernamesstringrequiredcomma-separated, ≤100
Response
200 OK
https://socialapi.tech/v1/batch/user_info
{ "status": "success", "data": [ ...profiles ],
  "meta": { "count": 3 } }
GET/v1/tweets/batch

Batch Tweets

Up to 100 tweets in one request — ~70x faster per tweet than looping single lookups.

Parameters
idsstringrequiredcomma-separated tweet ids, max 100
Response
200 OK
https://socialapi.tech/v1/tweets/batch
{ "status": "success", "data": [ /* tweets */ ],
  "meta": { "count": 100, "requested": 100, "missing": 0 } }
GET/v1/tweet/quotes

Quote Tweets

Who quoted this tweet and what they said. X's index favours recent content.

Parameters
idstringrequiredtweet id
limitintoptionaldefault 20
Response
200 OK
https://socialapi.tech/v1/tweet/quotes
{ "status": "success", "data": [ /* quote tweets */ ],
  "meta": { "count": 20 } }
Quickstart & authTry the first endpointBase URL: https://api.socialapi.tech