LurkAPI
Docs · Profile

Profile

An account's bio, avatar, verification and exact follower, following, tweet and like counts.

1 credit per callFresh within 1 hourMCP tool: twitter_profile
GEThttps://api.lurkapi.com/v1/twitter/profile

Example responseView as markdown

When to use this

Use it to size up an account: followers, following, tweets and likes as exact numbers, plus bio, website, location, join date and verification. verified is the blue check; verified_type shows gold (Business) and grey (Government) checks. Pass a pinned_tweet_ids entry to the tweet endpoint for the pinned tweet.

Protected accounts return their profile with protected: true. Unknown and suspended accounts return 404 not_found.

Parameters

All parameters go in the query string.

ParameterDescription
handle
stringrequired
X username, with or without @ (e.g. NASA), or the profile URL.
Example
NASA

Example request

Replace YOUR_API_KEY with your key, or set LURKAPI_KEY for the code. Get a free key.

Language

Example response

A real response from this endpoint, captured from the live API and trimmed to a couple of items. Strings over 96 characters (mostly signed media URLs) are cut short and end in ….

Show the example response (1 KB)
{
  "success": true,
  "credits_remaining": 999998,
  "credits_charged": 1,
  "id": "11348282",
  "handle": "NASA",
  "name": "NASA",
  "bio": "Making the seemingly impossible, possible. ✨",
  "location": "Pale Blue Dot",
  "website": "http://www.nasa.gov/",
  "avatar": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_400x400.jpg",
  "banner": "https://pbs.twimg.com/profile_banners/11348282/1788992290",
  "verified": true,
  "verified_type": "Government",
  "created_at": "2007-12-19T20:20:32.000Z",
  "followers": 92377446,
  "following": 115,
  "tweets": 74343,
  "media_count": 28163,
  "likes": 17002,
  "pinned_tweet_ids": [
    "2104593672624886205"
  ],
  "protected": false,
  "professional_type": null
}

Response fields

Every field of a successful response. [] marks a list: a[].b is the b of each item in a. nullable fields can be null; optional fields can be missing.

Show all 22 fields
FieldTypeDescription
successtrueAlways true here; errors have success: false.
credits_remainingnumberYour balance after this call. On anonymous playground calls: free tries left today.
credits_chargednumberCredits this call cost; 0 on free endpoints. On anonymous playground calls: tries used (1).
idstringNumeric user id. It stays the same when the handle changes.
handlestringUsername (handle), without @, with X's capitalization.
namestringDisplay name.
biostringBio text, t.co links expanded. Empty if none.
locationstringnullableLocation as the account wrote it (free text); null if none.
websitestringnullableThe website link on the profile, expanded; null if none.
avatarstringnullableProfile picture URL, 400×400; null if none.
bannerstringnullableHeader image URL; null if none.
verifiedbooleanHas the blue check (X Premium).
verified_typestringnullableBusiness (gold check, a verified organization) or Government (grey check); null otherwise.
created_atstringWhen the account was created, ISO 8601.
followersnumberFollowers, exact.
followingnumberAccounts they follow.
tweetsnumberTweets posted, replies and retweets included.
media_countnumberTweets with photos or videos.
likesnumberTweets they liked.
pinned_tweet_idsstring[]Ids of the pinned tweet(s); pass one to the tweet endpoint. Empty if none.
protectedbooleanA protected (private) account: only approved followers see its tweets.
professional_typestringnullableCreator or Business for professional accounts; null for personal ones.

Caching and freshness

Responses are cached for up to 1 hour, so a repeat call within that window can return the same data. It still costs 1 credit.

Errors

Errors return { success: false, error, code, docs } with the HTTP status below. Validation errors, 401/402/429 rejections and 5xx failures are free; not_found is charged (how charging works). All error codes.

StatusCodeMeaning
401missing_api_keyNo API key. Send it in the x-api-key header.
401invalid_api_keyThe key is unknown or was revoked.
402insufficient_creditsNot enough credits for this call. Buy a pack or wait for tomorrow's top-up.
404not_foundThe endpoint, or the thing you asked for (ad, post, subreddit), doesn't exist. Charged when the platform was checked.
405method_not_allowedEndpoints take GET with query params.
429rate_limitedToo many calls at once. Wait for the retry-after seconds, then retry.
500internal_errorSomething broke on our side. Retry; 5xx errors are free.
502upstream_errorThe platform didn't give a usable answer. Retry; 5xx errors are free.
503upstream_busyAll our connections to the platform are busy. Retry in a few seconds; 5xx errors are free.
504upstream_timeoutThe platform took over 30 seconds to answer. Retry; timeouts are free.

Use it in Claude

Once LurkAPI is connected to Claude, this endpoint is the twitter_profile tool. Ask in plain English, for example:

Ask Claude
Use LurkAPI's twitter_profile with handle "NASA" and summarize what you find.

Claude calls twitter_profile with arguments like these, and each call costs 1 credit:

Tool arguments
{
  "handle": "NASA"
}

Tool results skip nulls and empty lists to save tokens.