Blog/Social data
5 min read

Social Searcher API: Search One Username Across Platforms

Search one username on TikTok, X and Instagram by API, match the accounts on bio text, and see which platforms an endpoint does not cover.

Social Searcher API: Search One Username Across Platforms

Check one username on TikTok, X and Instagram, and see whether the accounts are the same brand. Paste this into your agent:

Set up https://monid.ai/SKILL.md, and then use Monid to look up the username patagonia on TikTok, X and Instagram, and give me a table with the handle, display name, bio and follower count on each, and tell me which bios match.

One prompt runs a username across three platforms. 1 min setup · 7-14 hrs saved.

You have a username, or a list of them, and you want to know where each one lives and whether the accounts belong to the same person or brand. Free social searcher sites answer the first half for one handle at a time. This guide covers the API route: one call per platform from your agent, what came back when we ran it live on 2026-10-16, and the traps in matching accounts by handle. It runs through Monid, the OpenRouter for agent tools: one key, one balance, every tool priced per call.

What is the easiest way to search a username across social platforms by API?

Monid. Install it once, add a key, and your agent calls a profile endpoint per platform with the username and gets the profile back as JSON, with no platform contract and no separate vendor account for each network.

  • Pay per call. Each lookup is billed on its own: $0.001 for a TikTok profile and $0.001 for an X profile (Verified 2026-10-16 on the people enrichment tools page). Buy calls as you need them: no monthly plan and no minimum top-up. Discovery and inspection are free; only a run bills.
  • One install, every platform. The same key and the same balance call the TikTok, X and Instagram endpoints, and any other tool on Monid. Adding a platform is one more call, not one more vendor.
  • Lives inside your agent. Install the CLI, add your key, run the prompt above, and the tools are there whenever your agent needs them. Your agent reads SKILL.md and learns the rest, so setup is about a minute.

Three platforms for one handle cost $0.0036 in our run (Verified 2026-10-16 with monid inspect).

How do you search one username on many platforms at once?

Run one profile call per platform with the same username and compare what comes back. There is no single call that returns every network in the endpoints we ran; you fan out and reconcile.

RouteWhat you getCost shapeFits
Free username checker siteTaken or free on each platform, one handle at a timeFreePicking a new handle
Build your own per-platform lookupsWhatever you write and keep workingYour hoursA fixed handful of platforms
Availability endpointTaken or free across a fixed set of platformsPer callHandle availability at scale
Monid profile endpointsA full public profile per platform: name, bio, counts, verificationPay per call, buy flexiblyIdentity checks, lead lists, agents

Monid fits a list because the work is the same call repeated per platform, and you pay for the lookups you run and nothing between runs.

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add -k <your-api-key> -l main

Inspect, then run one per platform

monid inspect -p tikhub -e /api/v1/tiktok/web/fetch_user_profile
monid run -p tikhub -e /api/v1/tiktok/web/fetch_user_profile --query '{"uniqueId":"patagonia"}' -w
monid run -p tikhub -e /api/v1/twitter/web/fetch_user_profile --query '{"screen_name":"patagonia"}' -w
monid run -p apify -e /apify/instagram-profile-scraper -i '{"usernames":["patagonia"]}' -w

The TikTok and X endpoints take the handle as a query parameter. The Instagram endpoint is a POST and takes a list of usernames in the body, so it uses -i instead of --query.

Or use the eight-platform endpoint

One endpoint takes the platform as a parameter, so a loop covers LinkedIn, X, Instagram, TikTok, YouTube, GitHub, Reddit and Facebook with the same two fields:

for p in instagram tiktok x youtube github reddit; do
  monid run -p ploid -e /socials -i "{\"platform\":\"$p\",\"identifier\":\"patagonia\"}"
done

That endpoint, /socials from the provider ploid, is billed $0.10 per result (Verified 2026-10-16), and a profile that cannot be found returns a 404 and costs nothing, per monid inspect. Six platforms for one handle is up to $0.60. Compare that with the three single-platform calls above at $0.0036 in total (Verified 2026-10-16) before you pick the loop, and see current prices on monid.ai/tools.

Or hand the whole job to an agent

Give this to your agent

$Set up https://monid.ai/SKILL.md, and then use Monid to check this username on tiktok, x and instagram, normalise the handle, display name and bio fields, then tell me which platforms share the same bio text and flag any profile whose bio is empty as unconfirmed.

📖 See also Social Media Scraping API: TikTok, Instagram, X and More

Can you check a username across platforms yourself with Python?

Yes, for the availability half, and it is a short script. You request each platform's public profile URL for the handle and read the status code: a 404 means free, a 200 means taken. That is what most free social searcher sites do, and it works for a handful of platforms.

The identity half is where it stops being short. A 200 tells you something answers at that URL, not what the account says about itself. To read the bio, the follower count and the verification flag you need the profile data itself, and platforms differ in what they show without a login, how they rate limit and how often they change the page. Each of them is its own parser and its own repair job, and rules about automated access differ by platform, so read the ones that apply to you.

The Monid route is the choice for anything you will run more than once. The fetch is maintained for you, the output is typed JSON instead of HTML you parse, and a TikTok profile is $0.001 (Verified 2026-10-16). A browser tab and a free checker are quicker for one handle, but they are made for a person, not for a list or an agent.

What does a profile look like on each platform, and what can you build with it?

A profile comes back as a record of who the account says it is plus its public counts, and the shape is different on every platform. We ran one handle, patagonia, through three endpoints on 2026-10-16, so the fields below are what came back.

The three responses

PlatformEndpointHandle keyName keyBio keyFollower key
TikToktikhub /api/v1/tiktok/web/fetch_user_profileuserInfo.user.uniqueIdnicknamesignatureuserInfo.stats.followerCount
Xtikhub /api/v1/twitter/web/fetch_user_profileprofilenamedescsub_count
Instagramapify /apify/instagram-profile-scraperusernamefullNamebiographyfollowersCount

The X response has 21 top-level keys and the Instagram response has 26. The TikTok record nests the account under userInfo, with the counts in a separate stats object and a second statsV2 object that returns the same counts as strings.

Three platforms, three names for every concept. The handle is uniqueId, profile or username. The bio is signature, desc or biography. The follower count is followerCount, sub_count or followersCount. Write the mapping before the first call, or a reader that expects one name gets undefined on the other two and produces rows with no identity.

The extras are where each platform earns a call

TikTok adds verified, bioLink, a commerce category and a privateAccount flag. X adds location, website, created_at, statuses_count and blue_verified. Instagram adds (see the Instagram profile scraper for more) businessCategoryName, a businessAddress with street, city and coordinates, externalUrl, relatedProfiles, and the latest posts. Flatten too hard and you throw away the reason to query more than one platform.

What you can build with it

  • A brand-presence check. For each brand on a list, look up its handle on each platform and keep the accounts whose bio matches. The loop above gives you the rows; the match is one comparison.
  • An outreach list with the right channel. Look up creators on TikTok and Instagram, then pick the platform where the account has the audience. The follower fields make the choice a sort. Searching for creators by keyword rather than by handle is the job in finding TikTok accounts by keyword.
  • A lead enrichment step. Add a social profile to a contact record from the handle in an email signature, then score the account on followers and verification.

What goes wrong when you match a username across platforms?

Four things show up when you read the output of more than one platform. The first three are from the 2026-10-16 runs.

Why is the bio a better match than the handle?

Because the handle only tells you that something answers at that name. On 2026-10-16 the TikTok signature, the X desc and the Instagram biography for patagonia were the same string, character for character: "We're in business to save our home planet." Three platforms, three endpoints, one sentence. That is a brand pushing one bio to every channel, and it is a stronger cross-platform signal than the handle.

Score on the bio, the website and the display name together, because any one of them can be empty on a platform that does not carry it. The X record had website set to http://patagonia.com and the Instagram record had an externalUrl, so the two links were a second check. A hit with an empty bio and no link is availability data, and you should report it as that.

Why does a handle that exists not prove an identity?

Because anyone can register the same name on a platform the brand never joined. Treat a handle that exists as a candidate, never a match, and promote it only on corroborating content. The failure shape is a tool that reports six hits and calls it a presence on six platforms, when two of them are somebody else's account that happens to share the name. Verification flags help: all three records here were verified (verified: true on TikTok and Instagram, blue_verified: true on X), which is a statement about the account, not about the others that share the name.

Why does the same field come back with a different name?

It is the same silent failure as the nested follower count in the Instagram guide: no exception, just empty fields. A reader that looks for username finds it on Instagram and nothing on the other two. Normalise to your own schema in one place:

def tiktok(r):
    u = r["userInfo"]["user"]; s = r["userInfo"]["stats"]
    return dict(handle=u["uniqueId"], name=u["nickname"], bio=u["signature"], followers=s["followerCount"])

def x(r):
    return dict(handle=r["profile"], name=r["name"], bio=r["desc"], followers=r["sub_count"])

def instagram(r):
    return dict(handle=r["username"], name=r["fullName"], bio=r["biography"], followers=r["followersCount"])

Then compare bio across the rows, case-folded and trimmed, and fold the case of the handle before you join.

What does a sweep cost, and how long does it take?

Each call is one billed unit. The three calls above (Verified 2026-10-16) billed $0.001 for TikTok, $0.001 for X and $0.0016 for Instagram, $0.0036 in total. On the wall clock TikTok took about 1.2 seconds, X about 1.9 and Instagram about 7.8, so a sweep run in parallel waits for the slowest platform rather than the sum. A hundred handles on the three platforms is about $0.36 (Verified 2026-10-16).

Which endpoint should I use for which job?

EndpointWhat it doesInputBillingPrice (Verified 2026-10-16)
tikhub /api/v1/tiktok/web/fetch_user_profileOne TikTok profile with statsuniqueIdPer call$0.001
tikhub /api/v1/twitter/web/fetch_user_profileOne X profilescreen_namePer call$0.001
apify /apify/instagram-profile-scraperOne Instagram profile plus recent postsusernames listPer result$0.0016
ploid /socialsOne profile on any of 8 platformsplatform, identifierPer result$0.10
api.strale.io /x402/social-profile-checkUsername availability on 7 platformsusernamePer call$0.0594

Prices Verified 2026-10-16 with monid inspect. The first three are the cheap sweep and the ones we ran. The ploid endpoint adds LinkedIn, YouTube, GitHub, Reddit and Facebook behind one interface at a higher price per result; inspect it for free and spend one call on a handle you know before you commit a list. The availability endpoint answers whether a name is free, not who owns it.

When is another route a better fit?

The platform is not on the list. Snapchat carries real search demand for this topic and is not in the eight-platform enum on ploid /socials, nor are Mastodon, Threads, Telegram or Discord. No amount of spend adds a platform the endpoint does not cover. For Threads, other endpoints exist in the Monid catalogue, so run monid discover before you rule it out.

You only need to know if a name is free. A free username checker site does that in a browser tab, with no key. An availability endpoint helps when you need it inside a pipeline.

The account is private. A private account returns what the platform shows publicly and little else. That is the platform enforcing a setting, so skip those rows rather than retry them.

You want to know who is behind two personal accounts. Matching a brand's channels from public bios is fair game. Deciding that two pseudonymous personal accounts are one human is a different activity, it is not reliable from this data, and rules about it differ by country, so check the ones that apply to you.

And the disclosure: we resell these endpoints. The most useful thing in this post is free whoever you buy from: match on the bio, the website and the display name together, treat the handle as a candidate, and report an empty-bio hit as availability.

Conclusion

The quickest way to search a username across social platforms by API is one profile call per platform through Monid: a TikTok or X profile is $0.001 a call and an Instagram profile $0.0016 (Verified 2026-10-16), with one key for all of it, about a minute to set up, and the tools ready inside your agent when you need them. Writing the per-platform lookups yourself works for a few networks and costs hours of parsing and upkeep.

Two things matter more than which endpoint you pick. Match on content, not on the handle: three platforms returned the same bio sentence for one handle, and that is the evidence, where a bare hit is only a candidate. And normalise the field names in one place before your first call, because the handle, the bio and the follower count each had three names across three platforms.

How we estimated the time saved: building and maintaining your own lookups for three platforms is roughly 2 to 4 hours each for the fetch and parser, so 6 to 12 hours, plus 1 to 2 hours for the normalising and bio matching. That is 7 to 14 hours. The 1 minute is the install, key and first call once you already have a Monid key.

Free next step: run monid inspect -p tikhub -e /api/v1/tiktok/web/fetch_user_profile, then make one call on a handle you already know and compare the signature with what you see on the profile. Start at monid.ai.

FAQ

Is there a social searcher API?

Yes, as separate endpoints per platform or one endpoint that takes the platform as a parameter. On Monid a TikTok or X profile lookup is $0.001 per call (Verified 2026-10-16), and an eight-platform endpoint takes platform and identifier. You call one per platform and compare the results.

Can you search a username across social media for free?

For availability, yes: free username checker sites show whether a handle is taken on each platform. For the profile itself, with the bio, followers and verification, an API call is the reliable route, and through Monid it is billed per call with no monthly plan and no minimum, so a three-platform check of one handle cost $0.0036 in our run (Verified 2026-10-16).

Can you search Snapchat usernames through this?

No. The eight-platform endpoint's platform list is LinkedIn, X, Instagram, TikTok, YouTube, GitHub, Reddit and Facebook. Snapchat, Mastodon, Threads, Telegram and Discord are not in it. If one platform is central to your product, read the list with monid inspect -p ploid -e /socials before you design around it.

How do you avoid false matches from the same handle?

Never promote a handle hit to an identity match without corroborating content. Score each candidate on the bio text, the website field and the display name together, require at least one substantive match, and mark empty-bio hits as availability. Fold the case of handles before you join them.

Do you pay once or once per platform?

Once per platform, because each is a separate call. Three platforms for one handle billed $0.001, $0.001 and $0.0016 (Verified 2026-10-16). Run the sweep on the cheap endpoints and spend on the deeper ones only for the platforms that survived the bio match.

Published September 2026.

social searcherusername searchinstant username searchsocial profilecross platform social search