You found a creator on YouTube and want to work with them. Before you send a sponsorship pitch, you want the rest of the picture: their Instagram, their TikTok, their X account, maybe a website or a podcast. For one creator that takes a few minutes of clicking. For a list of 300 creators in a spreadsheet, it takes days, and the mistakes pile up.
This guide covers both. First the manual method that works for a single creator, including why matching usernames is not enough. Then how to automate it with a social media lookup API, for one profile at a time or a whole list in bulk, with working code.
A note on scope before we start: everything here is about public creator and business accounts, people who publish under a public name and want audiences and brands to find them. It is not a guide to tracking private individuals, and you should not use it that way.
Why you need a creator's full social footprint
A single profile rarely tells you enough to make a decision. Teams look up a creator's other accounts for a few common reasons:
- Influencer marketing. A creator with a mid-sized YouTube channel may have a much larger TikTok, or the other way round. You want to see the whole audience before you decide on a budget or a channel mix.
- Sponsorship outreach. Business contact details often live on one platform only, such as a link-in-bio page or a channel description.
- Creator databases and CRMs. Lists bought, scraped or collected by hand usually have one handle per creator and empty columns for everything else.
- Verification. A creator emails you claiming to run a popular account. You want to confirm that the Instagram they sent and the YouTube channel you know really belong to the same person, and not to an impersonator or a namesake.
The manual method: follow the creator's own links
The most reliable evidence is a link the creator placed themselves. Only the owner can edit a profile, so a link from an account you already trust to another account is close to proof. Work through these sources in order.
Channel links and the description
On YouTube, open the channel's description panel. Creators list their other platforms there, and many channels also show a business contact option. The links in the channel header point to the same places.
Video descriptions
Many creators paste their full set of social links under every upload. Check a few recent videos, since older descriptions may point to accounts that were renamed or abandoned.
Link-in-bio pages
Lots of creators put one link in their bio that opens a page of links, from services like Linktree, Beacons or Stan, or a page on their own domain. These pages often list every platform the creator uses. Record the URL of the link page itself so you can show where the evidence came from.
The creator's own website
If the creator has a personal site, check the header, footer, about page and any press or media kit page. Footers often carry social icons for accounts the creator doesn't mention anywhere else.
Cross-mentions in content
Creators mention their other accounts while they talk: "follow me on TikTok for the short version" or "I posted the full recipe on Instagram". If you have the video transcript, a quick text search for platform names finds these mentions without rewatching anything. Our guide to YouTube transcript APIs covers how to pull transcripts in bulk if you are doing this across many channels.
For a deeper walkthrough of the manual approach, including search operators and reverse image search, sociallinks.dev has a full guide on how to find all social media accounts of a creator.
Why matching handles alone is unreliable
The fastest shortcut is to take the creator's handle and type it into every platform's URL pattern. If the YouTube channel is youtube.com/@leoruns, try instagram.com/leoruns and tiktok.com/@leoruns.
It's a useful first guess, but a matching handle on its own proves nothing:
- Someone else may own the name. Common names and short handles are often taken by unrelated people on other platforms.
- Fan, parody and impersonator accounts copy handles. Popular creators attract them, and they can look convincing at a glance.
- Creators use variations. When their name is taken, creators fall back on versions like leo.runs, leoruns_ or leorunstv, so the exact match may not exist even though the creator does.
- Handles change. A creator may rename an account, and someone else can then claim the old handle. An old link can point to a different person today.
So treat every handle match as a lead. Accept it only when you have supporting evidence: a link from a trusted account, a cross-mention, or a matching name and profile photo with consistent content. Write down which piece of evidence you used, so the decision can be checked later.
| Evidence | Strength | Example |
|---|---|---|
| Link placed by the creator | Strong | The Instagram bio links to the YouTube channel |
| Cross-mention in content | Strong | A video says "find me on TikTok at @leoruns" |
| Same link-in-bio page | Strong | Both accounts link to the same link page |
| Same name and photo | Medium | Matching display name and profile picture |
| Same handle only | Weak | tiktok.com/@leoruns exists, nothing else connects it |
The problem with doing this at scale
The manual method works well for one creator. It breaks down for a list:
- A few minutes per creator adds up to days of work for a 500-creator list.
- Different people apply different standards, so one researcher accepts handle matches and another doesn't.
- Nobody records the evidence, so a wrong match in the CRM can't be traced back.
- Accounts change, and a list cleaned six months ago is already drifting.
This is where an API helps. You want something that takes the one profile you have, does the link-following and checking for you, and returns structured results with the evidence attached, so your code can decide what to accept and a human only reviews the uncertain cases.
Using a social media lookup API
sociallinks.dev is our sister product built for exactly this. You give it one Instagram, TikTok, YouTube or X profile URL and it returns the creator's accounts on the other platforms, each with a verdict, a net confidence score and the evidence behind it. It recognises 15 networks, including Instagram, YouTube, TikTok, X, Facebook, Twitch, LinkedIn, Threads, Kick, Snapchat, Spotify, Substack, Patreon, Reddit and GitHub, plus websites and link-in-bio pages.
Each lookup checks the profile, reads the creator's bio links and link-in-bio page, runs targeted searches on the major networks and then runs an identity check on every candidate. Lookups run live against the platforms, not against a stale database.
It works three ways, all on the same credits:
- Web app: paste one profile link and review the results.
- Bulk: paste or upload up to 500 profile links (one per line, or a .csv or .txt file) and download a CSV.
- API: a REST API at https://sociallinks.dev/v1, plus a hosted MCP server for AI assistants.
Look up one creator with the API
Create an API key in your sociallinks.dev dashboard under API. Send it with every request as an Authorization: Bearer header (an x-api-key header also works). Keys are shown once when you create them.
To look up a creator, send their profile URL to POST /resolve. Since most of our readers start from YouTube, here is a lookup that starts from a YouTube channel:
curl -X POST "https://sociallinks.dev/v1/resolve" \
-H "Authorization: Bearer $SOCIALLINKS_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/@mkbhd"}'
The url must be a creator's profile page. Posts, reels, videos and bare @handles are refused with a 400 error. If your tool can only send GET requests, GET /resolve does the same thing with the URL-encoded profile link in a url query parameter.
Fresh lookups take 10 to 40 seconds. Creators that have already been looked up come back instantly. Here is the example response from the documentation, for a lookup that started from an Instagram profile:
{
"creator": {
"id": "cr_0k3x9a1",
"name": "Marques Brownlee",
"kind": "person",
"aliases": ["Marques Brownlee", "mkbhd"],
"total_audience": 38000000
},
"profiles": [
{ "platform": "instagram", "handle": "mkbhd", "verdict": "seed", "net_confidence": 1 },
{
"platform": "youtube",
"handle": "mkbhd",
"url": "https://www.youtube.com/@mkbhd",
"followers": 20000000,
"verdict": "confirmed",
"net_confidence": 0.97,
"evidence": [
{ "kind": "bio_link", "detail": "Linked from the creator's own Instagram bio", "source": "https://www.instagram.com/mkbhd" }
]
}
],
"websites": [{ "url": "https://mkbhd.com", "kind": "website", "label": "mkbhd.com" }],
"identity_confidence": 0.96,
"rejected": 4
}
A few fields are worth knowing:
- verdict tells you how each profile relates to the lookup. The profile you sent comes back as "seed", and matched accounts can come back as "confirmed".
- net_confidence combines search strength and the identity check into one number per account. Only matches at 50% confidence or more are shown.
- evidence lists how and where each account was found, so you can check it in one click.
- rejected counts candidates that were looked at and turned down.
Here is the same call in Python, printing each account with its evidence:
import os
import requests
API = "https://sociallinks.dev/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["SOCIALLINKS_KEY"]}
def resolve(profile_url):
r = requests.post(API + "/resolve", headers=HEADERS, json={"url": profile_url}, timeout=90)
r.raise_for_status()
print("Credits left:", r.headers.get("X-Credits-Remaining"))
return r.json()
data = resolve("https://www.youtube.com/@mkbhd")
print(data["creator"]["name"], "identity confidence:", data["identity_confidence"])
for p in data["profiles"]:
print(p["platform"], p["handle"], p["verdict"], p["net_confidence"])
for e in p.get("evidence", []):
print(" ", e["kind"], "|", e["detail"], "|", e["source"])
for w in data.get("websites", []):
print("website", w["url"])
The X-Credits-Remaining response header carries your balance, and GET /balance returns it on demand.
Run a whole creator list in bulk
For lists, don't loop over /resolve. Fresh lookups are limited to 5 per minute per key, and the API answers with a 429 and a Retry-After header when you go over. Send the list to POST /batches instead: up to 500 profile URLs per batch, run in the background.
curl -X POST "https://sociallinks.dev/v1/batches" \
-H "Authorization: Bearer $SOCIALLINKS_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Q4 shortlist","urls":["https://www.tiktok.com/@zachking","https://www.youtube.com/@mkbhd"]}'
The response gives you a batch id plus counts of rows, invalid rows and duplicates. Then poll GET /batches/{id} every few seconds until the status is "completed", "partial" or "failed", and download the results with GET /batches/{id}/export.
This Python script reads YouTube channel URLs from a text file, runs them as one batch and saves the CSV:
import os
import time
import requests
API = "https://sociallinks.dev/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["SOCIALLINKS_KEY"]}
with open("channels.txt") as f:
urls = [line.strip() for line in f if line.strip()][:500]
r = requests.post(API + "/batches", headers=HEADERS, json={"name": "YouTube shortlist", "urls": urls})
r.raise_for_status()
batch = r.json()
print("Queued", batch["rows"], "rows,", batch["invalid"], "invalid,", batch["duplicates"], "duplicates")
while True:
status = requests.get(API + "/batches/" + batch["id"], headers=HEADERS).json()["batch"]
print(status["status"], status["succeeded"], "of", status["total"], "done")
if status["status"] in ("completed", "partial", "failed"):
break
time.sleep(5)
csv = requests.get(API + "/batches/" + batch["id"] + "/export", headers=HEADERS)
with open("results.csv", "wb") as f:
f.write(csv.content)
print("Credits charged:", status["charged"])
The CSV has one row per profile you sent and one column per platform, plus status and credits charged. The columns are:
row,input,status,credits,creator,verified_creator,instagram,youtube,tiktok,x,twitch,facebook,linkedin,nothing_found_on,error
That drops straight into a spreadsheet or a CRM import, filling the empty Instagram, TikTok and X columns next to the YouTube channels you started with. GET /batches lists your batches if you need to pick up where you left off, and POST /batches/{id}/cancel stops one (rows already running still finish).
Pricing and limits
sociallinks.dev charges per creator, not per platform. One lookup costs 1 credit when at least one account is found beyond the one you sent, however many platforms turn up. Lookups that find nothing, and failed lookups, are free. The same rule applies to every row of a batch, and rows that aren't profile links are skipped and never charged. Looking up a creator your account paid for in the last 30 days is also free.
Credits come in one-time packs with no subscription, and they never expire:
| Pack | Price | Creator lookups | Per creator found |
|---|---|---|---|
| Starter | $17 | 200 | 8.5¢ |
| Pro | $49 | 750 | 6.5¢ |
| Agency | $99 | 1,750 | 5.7¢ |
New accounts get 3 free lookups, with no credit card required. The documented API limits:
| Limit | Value |
|---|---|
| Fresh lookups per key | 5 per minute |
| Creators already looked up | No limit, served instantly |
| Profiles per batch | 500 |
| Active API keys per account | 10 |
Check the pricing page and API documentation for the current details.
Handling errors
Every error comes back as a JSON object with a readable message and, where useful, a code to branch on. The ones you will meet most often:
| Status | Meaning | What to do |
|---|---|---|
| 400 | Not a profile URL, or no body | Send a full profile URL, not a post, video or bare @handle |
| 401 | Key unknown, revoked or missing | Check the Authorization header |
| 402 | Out of credits | Nothing was charged; buy a pack and retry |
| 429 | Too many fresh lookups | Wait Retry-After seconds, or use /batches |
| 502 | The lookup broke on their side | You weren't charged; try again |
Using it from Claude, Cursor and other AI tools
If you work in an AI assistant, sociallinks.dev also runs a hosted MCP server at https://sociallinks.dev/mcp. In Claude Code, one command adds it:
claude mcp add --transport http sociallinks https://sociallinks.dev/mcp --header "Authorization: Bearer sl_your_key"
It works with Cursor, VS Code, Windsurf, Gemini CLI and any client that speaks remote MCP. The tools (lookup_creator, check_balance, start_batch and get_batch) are charged exactly like the REST endpoints, so you can ask your assistant to find a creator's accounts while you build a shortlist.
Best practices for creator lookups
- Start from the strongest profile you have. A creator's main channel, with links in its description, gives better results than a small side account.
- Store the evidence, not just the handle. Save the verdict, confidence score and evidence source next to each account, so anyone can see why it was accepted.
- Set an acceptance rule. For example, auto-accept confirmed matches and send the rest to a person for review.
- Re-check before big decisions. Accounts get renamed and abandoned. Look up a creator again before you sign a contract, rather than trusting a months-old row.
- Keep it to public creators. Look up people who publish publicly as creators or businesses, for partnerships, research and verification. Don't use these tools to follow private individuals.
Once you have a creator's accounts, the next step is usually understanding what they actually say. If YouTube is their main channel, their transcripts are the fastest way to check topics, tone and past sponsors before you reach out. Our YouTube transcript API returns them as timed JSON segments, and if you are planning your own channel's sponsorships, see how to make money on YouTube.
Frequently asked questions
How do I find a creator's TikTok or Instagram from their YouTube channel?+
Start with the links the creator added to the channel header and description, then check the descriptions under their recent videos and any link-in-bio page they use. Creators usually link their own accounts. If nothing is linked, search for their handle and name on the other platform, but confirm any match before you trust it.
Is searching for the same username on every platform enough?+
No. A matching handle is a lead, not proof. Someone else may own the same name on another platform, fan and parody accounts often copy handles, and creators sometimes rename accounts so an old handle ends up with a different person. Confirm each match with a link or cross-mention from an account you already trust.
Is there an API to find all social media accounts of a creator?+
Yes. sociallinks.dev has a REST API: you send one Instagram, TikTok, YouTube or X profile URL to POST /v1/resolve and get back the creator's accounts on other platforms as JSON, each with a verdict, a net confidence score and the evidence behind it. For lists, POST /v1/batches accepts up to 500 profile URLs.
Can I look up a creator from just an @handle?+
Not with the sociallinks.dev API. It needs a creator's profile page URL. Posts, reels, videos and bare @handles are refused with a 400 error, so turn a handle into a full profile URL before you send it.
How much does a social media lookup API cost?+
On sociallinks.dev you pay 1 credit per creator when at least one account is found beyond the one you sent. Lookups that find nothing, and failed lookups, are free. Credit packs are one-time payments: $17 for 200 lookups, $49 for 750 and $99 for 1,750. New accounts get 3 free lookups.
Is it legal and ethical to look up someone's social media accounts?+
This guide is about public creator and business accounts: people who publish under a public identity and want brands and audiences to find them. Use these methods to vet partners, enrich a creator database or verify an identity. Do not use them to track or profile private individuals, and follow the platforms' terms and the privacy laws that apply to you.