Social Profile Finder - Find Socials by Name or Domain avatar

Social Profile Finder - Find Socials by Name or Domain

Pricing

from $0.87 / 1,000 profiles

Go to Apify Store
Social Profile Finder - Find Socials by Name or Domain

Social Profile Finder - Find Socials by Name or Domain

Find the social profiles behind a name, domain or @handle across X, Instagram, LinkedIn, Facebook, TikTok, YouTube and GitHub. Each row holds the handle, display name, followers, bio and a confidence score with the evidence behind it. $0.90 per 1,000 profiles.

Pricing

from $0.87 / 1,000 profiles

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

43

Total users

17

Monthly active users

3 days ago

Last modified

Share

Give it a company, a website or an @handle and get the social profiles that belong to it: X, Instagram, LinkedIn, Facebook, TikTok, YouTube and GitHub, one row each, with the handle, the display name and a confidence score.

The thing to understand before you judge the results: no public directory maps a person to their handles. This is a search that gathers evidence and scores it, not a lookup in a table. Give it a domain and it does well, because a company's own site links to its accounts. Give it a common name and nothing else, and most networks will not produce a match that clears the bar.

InputNames, domains, @handles, or profile links
OutputOne row per profile found: network, link, handle, display name, confidence score and the evidence behind it, followers, verified badge, bio and linked website
Ceiling50 lookups and 2,000 profiles per run
Account neededNone
Price$0.90 per 1,000 profiles found on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 5,500

🔍 What Social Profile Finder does

For each thing you look up it gathers evidence from several directions at once. It reads the subject's own website for the accounts it links to, which is the strongest signal there is. It tries handle spellings on each network and checks what answers. It reads what a profile says about itself, including the site it links back to and whether the network has verified it.

All of that turns into matchConfidence, a number between 0.05 and 0.99, and a row is only written if it beats minConfidence. The default of 0.65 is deliberately strict. A handle that merely exists and merely echoes the name back does not get reported.

When you have more than one clue about the same subject, pass an object rather than a line of text: {"name": "Patagonia", "domain": "patagonia.com"}. The extra evidence raises the score on every match it finds.

📋 What data you get from each social profile

What you getField
The line you typed, and the subject and domain it was scored againstquery, subject, subjectDomain
The networknetwork, networkLabel
The profile link, the handle and the display nameprofileUrl, handle, displayName
The confidence score and its labelmatchConfidence, confidenceLabel
Every signal behind the scorematchEvidence
How it was foundsource
Followers, the network's badge, the bio and the site it links tofollowers, platformVerified, bio, profileWebsite
Whether the account was confirmed on the network itselfverifiedLive
When the row was readscrapedAt

▶️ How to find social media profiles from a name or domain

  1. Open Social Profile Finder and click Try for free.
  2. Put your subjects into Who or what to look up, one per line.
  3. Optional: pick the Networks you actually want. Fewer networks means faster lookups.
  4. Set Maximum profiles. Start at 20 while you see how your subjects score.
  5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.

Run it with the input empty and you get a free sample row showing the shape, with nothing looked up.

💰 How much does it cost to find social profiles?

$0.90 per 1,000 profiles found on the Free plan. Paid plans pay a little less: $0.89 on Starter, $0.88 on Scale and $0.87 on Business. On the free plan, the $5 Apify gives you each month covers about 5,500 profiles.

You pay for profiles written to the dataset. A subject that finds nothing produces no profile rows, and neither do the sample row, the diagnostic rows, or a network you chose not to check. minConfidence is the cheapest control you have: raise it and weak matches are dropped before they are ever written.

One thing to plan around. There is no cross-checking between lookups in a run, so if patagonia.com and @patagonia both resolve to the same X account, that is two rows and two charges. Put one line per subject, not several spellings of the same one.

📥 What you give it

{
"queries": ["patagonia.com", "Marques Brownlee", "@MrBeast"],
"networks": ["x", "instagram", "youtube"],
"minConfidence": 0.65,
"maxItems": 50
}
FieldDefaultWhat it is
queriesnoneOne subject per line: a name, domain, email, @handle or profile link. Up to 50. The form opens with three examples.
networksall sevenPick the ones you care about. A network you do not check is never charged for.
minConfidence0.65Below this a profile is never written and never billed. Drop to about 0.5 to review weak matches yourself, raise to 0.8 for confirmed accounts only. 65 works the same as 0.65.
maxProfilesPerNetwork1Keeps the best-scoring account per network. Raise to 2 or 3 for brands that run several.
maxHandleVariants3Spellings tried when all you have is a name: janedoe, jane.doe, jane_doe. Up to 5.
checkWebsitetrueReads the subject's own site for links. Leave it on unless you only ever pass bare handles.
maxItems50Profiles across the whole run, up to 2,000. This is your spend cap.
proxyUrlsnoneOptional. Your own servers, one URL per line. Leave it empty for a normal run.

📤 What you get back

A real row from a real run:

{
"ok": true,
"charged": true,
"recordType": "profile",
"query": "patagonia.com",
"subject": "patagonia",
"subjectDomain": "patagonia.com",
"network": "x",
"networkLabel": "X (Twitter)",
"profileUrl": "https://x.com/patagonia",
"handle": "patagonia",
"displayName": "Patagonia",
"matchConfidence": 0.99,
"confidenceLabel": "high",
"matchEvidence": "verified-on-network | linked-from-own-website | structured-data-sameas | display-name-matches | links-back-to-domain | platform-verified-badge | established-audience",
"source": "website-link",
"followers": 536292,
"platformVerified": true,
"bio": "We're in business to save our home planet.",
"profileWebsite": "http://patagonia.com/",
"verifiedLive": true,
"scrapedAt": "2026-09-21T13:01:48.062Z"
}
FieldHow to read it
matchConfidence0.05 to 0.99. confidenceLabel is the same thing as high, medium or low.
matchEvidenceEvery signal that fed the score, pipe separated. This is how you audit a match.
sourcewebsite-link, handle-probe or cross-link.
verifiedLivefalse when the account was only seen as a link on the subject's site and not confirmed on the network itself.
handleSpelled the way the network spells it, which is not always how you typed it.
displayNamenull when the network did not give one back. Nothing is guessed to fill a gap.

🧾 Reading the output

Three kinds of row land in the dataset, and only the first kind is billed.

RowHow to spot itBilled
A profilerecordType: "profile" and a profileUrlyes
The sample row_sample: true, from an empty runno
A diagnosticok: false and an errorCodeno

Filter on recordType == "profile" and you have your profiles. The charged flag marks a row as a real result rather than a sample or a diagnostic; read it as that, not as a receipt.

CodeWhat it means
NO_RESULTSNothing cleared the threshold for that subject, or its website could not be read. The row carries what was tried.
TIME_BUDGETThe run hit its time limit before reaching that subject, or while it was being looked up. Nothing was charged for it. The run ends as failed only when the time limit stopped it before any profile came back.
NETWORKThat subject failed outright. The others in the run are unaffected.
PROXY_INPUT_ADJUSTEDSomething in proxyUrls was not usable and the run went on without it.
CHARGE_ERRORBilling did not confirm for a row. Tell us if you see one.

A useful detail the default table hides: verifiedLive and platformVerified are not columns in the overview view, so an unconfirmed match looks the same as a badge-verified one until you open the JSON.

💡 What people use it for

  • Filling in the social columns on a list of companies you already have domains for.
  • Checking whether an account claiming to be a brand actually links back to that brand's site.

From a list of company domains to their Instagram numbers, in three steps:

  1. Run this actor on the domains with networks set to instagram.
  2. Keep the rows with a matchConfidence of 0.8 or more and copy the handle values.
  3. Put them into Instagram Profile Scraper as usernames for followers and category.

🚧 What it does not do

  • Seven networks. X, Instagram, LinkedIn, Facebook, TikTok, YouTube and GitHub. Nothing else.
  • A bare name rarely clears the bar. Without a domain, a badge, a real audience or a link back, most name-only subjects score under 0.65 and come back as NO_RESULTS.
  • It does not merge duplicate lookups. Two lines pointing at the same account produce two rows.
  • Instagram is the thinnest of the seven, and LinkedIn member profiles are best effort. Company pages do better than people.
  • Private, suspended and deleted accounts read as absent. The actor reports what it could confirm, and never turns "could not check" into a match.
  • No posts, no followers list, no contact details. It finds the profile. To read what is on it, use the scrapers below.
  • It is not an official tool of any platform or company named on this page. Dami's Studio is independent and is not affiliated with or endorsed by any of them.

🧭 Which social actor do you need?

If you wantUse
Social profiles that belong to a person, brand or domainThis one
Full Instagram profile data for a handle you already haveInstagram Profile Scraper
Followers, likes and bio for TikTok handlesTikTok Profile Scraper
Size, followers, headquarters and website for LinkedIn company pagesLinkedIn Companies Scraper
Subscriber and follower growth for YouTube, TikTok or Twitch creatorsSocial Blade Scraper

❓ Questions people ask

What confidence score should I trust?

Anything at 0.8 or above is normally a confirmed account. Between 0.65 and 0.8, read matchEvidence before you act on it. Below that you have told the actor to show you guesses.

Why did a well-known person come back empty?

Because the evidence was thin, not because the account does not exist. Add their domain or a handle you already know and run it again.

Can I look up 500 people at once?

Not in one run. 50 lookups is the cap, so split the list across a few runs.

Do I need logins for the social networks?

No. Nothing to paste and nothing that expires.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/social-profile-finder. Either way the run happens on your Apify account at the same price.

It reads public profile pages, the same ones anyone can open. Results are personal data, which GDPR and similar laws cover, so have a reason for holding them. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the exact line you looked up and the run ID; the evidence in the log usually explains the score.