Social Profile Finder - Find Socials by Name or Domain
Pricing
from $0.87 / 1,000 profiles
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
Maintained by CommunityActor stats
0
Bookmarked
43
Total users
17
Monthly active users
3 days ago
Last modified
Categories
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.
| Input | Names, domains, @handles, or profile links |
| Output | One row per profile found: network, link, handle, display name, confidence score and the evidence behind it, followers, verified badge, bio and linked website |
| Ceiling | 50 lookups and 2,000 profiles per run |
| Account needed | None |
| 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 get | Field |
|---|---|
| The line you typed, and the subject and domain it was scored against | query, subject, subjectDomain |
| The network | network, networkLabel |
| The profile link, the handle and the display name | profileUrl, handle, displayName |
| The confidence score and its label | matchConfidence, confidenceLabel |
| Every signal behind the score | matchEvidence |
| How it was found | source |
| Followers, the network's badge, the bio and the site it links to | followers, platformVerified, bio, profileWebsite |
| Whether the account was confirmed on the network itself | verifiedLive |
| When the row was read | scrapedAt |
▶️ How to find social media profiles from a name or domain
- Open Social Profile Finder and click Try for free.
- Put your subjects into Who or what to look up, one per line.
- Optional: pick the Networks you actually want. Fewer networks means faster lookups.
- Set Maximum profiles. Start at 20 while you see how your subjects score.
- 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}
| Field | Default | What it is |
|---|---|---|
queries | none | One subject per line: a name, domain, email, @handle or profile link. Up to 50. The form opens with three examples. |
networks | all seven | Pick the ones you care about. A network you do not check is never charged for. |
minConfidence | 0.65 | Below 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. |
maxProfilesPerNetwork | 1 | Keeps the best-scoring account per network. Raise to 2 or 3 for brands that run several. |
maxHandleVariants | 3 | Spellings tried when all you have is a name: janedoe, jane.doe, jane_doe. Up to 5. |
checkWebsite | true | Reads the subject's own site for links. Leave it on unless you only ever pass bare handles. |
maxItems | 50 | Profiles across the whole run, up to 2,000. This is your spend cap. |
proxyUrls | none | Optional. 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"}
| Field | How to read it |
|---|---|
matchConfidence | 0.05 to 0.99. confidenceLabel is the same thing as high, medium or low. |
matchEvidence | Every signal that fed the score, pipe separated. This is how you audit a match. |
source | website-link, handle-probe or cross-link. |
verifiedLive | false when the account was only seen as a link on the subject's site and not confirmed on the network itself. |
handle | Spelled the way the network spells it, which is not always how you typed it. |
displayName | null 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.
| Row | How to spot it | Billed |
|---|---|---|
| A profile | recordType: "profile" and a profileUrl | yes |
| The sample row | _sample: true, from an empty run | no |
| A diagnostic | ok: false and an errorCode | no |
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.
| Code | What it means |
|---|---|
NO_RESULTS | Nothing cleared the threshold for that subject, or its website could not be read. The row carries what was tried. |
TIME_BUDGET | The 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. |
NETWORK | That subject failed outright. The others in the run are unaffected. |
PROXY_INPUT_ADJUSTED | Something in proxyUrls was not usable and the run went on without it. |
CHARGE_ERROR | Billing 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:
- Run this actor on the domains with
networksset toinstagram. - Keep the rows with a
matchConfidenceof 0.8 or more and copy thehandlevalues. - Put them into Instagram Profile Scraper
as
usernamesfor 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.65and come back asNO_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 want | Use |
|---|---|
| Social profiles that belong to a person, brand or domain | This one |
| Full Instagram profile data for a handle you already have | Instagram Profile Scraper |
| Followers, likes and bio for TikTok handles | TikTok Profile Scraper |
| Size, followers, headquarters and website for LinkedIn company pages | LinkedIn Companies Scraper |
| Subscriber and follower growth for YouTube, TikTok or Twitch creators | Social 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.
Is finding social profiles this way legal?
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.