Username Existence Scraper avatar

Username Existence Scraper

Pricing

Pay per event

Go to Apify Store
Username Existence Scraper

Username Existence Scraper

Check if a username exists on 400+ websites and social networks. Sherlock-style cross-platform username search via HTTP. Export results as JSON, CSV, or Excel. No login or API key required.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

4

Monthly active users

4 days ago

Last modified

Share

What does Username Existence Scraper do?

Username Existence Scraper checks whether a username exists on 400+ websites and social networks — including GitHub, Reddit, Pinterest, Spotify, Wikipedia, DeviantArt, and hundreds more. It works like Sherlock but runs in the cloud with full API access, structured data output, and scheduling.

Enter one or more usernames and the scraper sends HTTP requests to 400+ sites, checking if a profile page exists for that username. Results are returned as a structured dataset showing which sites have a matching account.

The easiest way to try it: click Start with the prefilled input above. You'll get results in under 2 minutes.

This scraper is pure HTTP — no browser needed, no login required, no API keys. It uses the same site database as the open-source Sherlock project, fetched fresh on every run so you always check the latest list of supported sites.

Who is Username Existence Scraper for?

🔍 OSINT investigators and security researchers

  • Trace a person's digital footprint across hundreds of platforms
  • Map username reuse patterns for investigations
  • Identify accounts linked to a specific handle

🛡️ Brand protection and marketing teams

  • Check if your brand name is available or already taken on social platforms
  • Monitor impersonation across 400+ sites at once
  • Audit your brand's presence for consistency

👨‍💻 Cybersecurity professionals

  • Discover exposed accounts during security assessments
  • Check for credential reuse indicators
  • Map shadow IT — find employee accounts on unapproved platforms

📊 Competitive intelligence analysts

  • Track competitor presence across social networks
  • Discover new platforms where competitors are active
  • Build profiles of key industry figures

Why use Username Existence Scraper?

  • 400+ sites checked — the most comprehensive username search available on Apify
  • Cloud-based and API-ready — run from any language, schedule recurring checks, integrate with 5,000+ apps
  • Always up-to-date — site database fetched from Sherlock project on every run
  • No browser overhead — pure HTTP requests, fast and lightweight (256 MB memory)
  • Structured output — JSON, CSV, or Excel export with existence status per site
  • No login or API key required — works out of the box
  • Configurable — filter to specific sites, control concurrency, set timeouts
  • Pay only for what you use — per-username pricing, no monthly subscription

What data can you extract?

Each result row contains:

FieldTypeDescription
usernamestringThe username that was checked
siteNamestringName of the website/platform
siteUrlstringBase URL of the site
existsbooleanWhether a profile was found
profileUrlstringDirect URL to the profile page
httpStatusnumberHTTP status code returned
responseTimenumberResponse time in milliseconds

For a single username check across all 400+ sites, you'll get ~478 result rows — one per site.

How much does it cost to check username existence?

This Actor uses pay-per-event pricing — you pay only for what you check. No monthly subscription. All platform costs are included.

FreeStarter ($29/mo)Scale ($199/mo)Business ($999/mo)
Per username$0.008$0.007$0.0055$0.005
100 usernames$0.81$0.71$0.56$0.51

Higher-tier plans get additional volume discounts.

Real-world cost examples:

InputSites checkedDurationCost (Free tier)
1 username, all sites478~30s~$0.013
5 usernames, all sites2,390~2.5min~$0.045
1 username, 10 sites only10~5s~$0.013

💡 On the free plan ($5 credits), you can check approximately 620 usernames across all sites.

How to check if a username exists on social media

  1. Go to Username Existence Scraper on Apify Store
  2. Click Start to use the prefilled example, or enter your own usernames
  3. Add usernames to the Usernames field — one per line
  4. (Optional) Filter to specific sites in the Sites filter field
  5. Click Start and wait for results (typically under 2 minutes)
  6. Download results as JSON, CSV, or Excel from the Dataset tab

Example input — check a single username:

{
"usernames": ["johndoe123"]
}

Example input — check multiple usernames on specific sites:

{
"usernames": ["johndoe", "janedoe"],
"sites": ["GitHub", "Reddit", "Twitter", "Instagram", "YouTube"],
"maxConcurrency": 30,
"timeout": 15
}

Input parameters

ParameterTypeDefaultDescription
usernamesstring[](required)Usernames to check across all sites
sitesstring[]all sitesFilter to specific site names (e.g., "GitHub", "Twitter")
maxConcurrencyinteger50Number of parallel HTTP requests per username
timeoutinteger10Per-request timeout in seconds

Output example

[
{
"username": "johndoe123",
"siteName": "GitHub",
"siteUrl": "https://www.github.com/",
"exists": true,
"profileUrl": "https://www.github.com/johndoe123",
"httpStatus": 200,
"responseTime": 827
},
{
"username": "johndoe123",
"siteName": "Reddit",
"siteUrl": "https://www.reddit.com/",
"exists": false,
"profileUrl": "https://www.reddit.com/user/johndoe123",
"httpStatus": 404,
"responseTime": 312
}
]

Tips for best results

  • 🚀 Start small — run with 1 username first to see the output format and cost
  • 🎯 Use site filters for targeted investigations — checking 10 specific sites is faster than scanning all 400+
  • ⏱️ Increase timeout to 15-20s if you need results from slow international sites
  • 📉 Lower concurrency to 20-30 if you're getting many timeouts (some sites rate-limit)
  • 🔄 Schedule recurring runs to monitor if new accounts appear under a username
  • 📊 Filter results in the dataset view by exists: true to see only found profiles
  • ⚠️ Expect some false positives (~5-7%) — sites like Spotify return 200 for any username. Cross-check critical findings manually.

Integrations

📊 Username Existence Scraper → Google Sheets Export results to a spreadsheet for team review. Set up automatic sync to track username presence over time.

🔔 Username Existence Scraper → Slack/Discord Get alerts when a new account appears under a monitored username — useful for brand protection.

🔄 Username Existence Scraper → Make/Zapier Trigger enrichment workflows: when a username is found on a platform, automatically pull additional profile data.

📅 Scheduled monitoring Run daily or weekly to detect new impersonation accounts. Compare results across runs to spot changes.

🔗 Webhook integration Send results directly to your OSINT platform or case management system via POST webhook.

Using the Apify API

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('automation-lab/username-existence-scraper').call({
usernames: ['johndoe123', 'janedoe456'],
sites: ['GitHub', 'Twitter', 'Reddit'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const found = items.filter(item => item.exists);
console.log(`Found ${found.length} profiles`);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/username-existence-scraper').call(run_input={
'usernames': ['johndoe123', 'janedoe456'],
'sites': ['GitHub', 'Twitter', 'Reddit'],
})
items = client.dataset(run['defaultDatasetId']).list_items().items
found = [item for item in items if item['exists']]
print(f'Found {len(found)} profiles')

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~username-existence-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"usernames": ["johndoe123"],
"sites": ["GitHub", "Twitter", "Reddit"]
}'

Use with AI agents via MCP

Username Existence Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/username-existence-scraper"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/username-existence-scraper"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Check if the username 'elonmusk' exists on GitHub, Twitter, and Reddit using automation-lab/username-existence-scraper"
  • "Find all social media accounts for username 'johndoe123' across 400+ sites"
  • "Monitor if anyone has created accounts with our brand name 'acmecorp' on major platforms"

Learn more in the Apify MCP documentation.

This scraper only checks publicly accessible profile pages by making standard HTTP GET requests — the same as visiting a URL in your browser. It does not bypass any authentication, access private data, or violate terms of service.

Username existence checking accesses only public information (whether a profile page exists at a URL). Always use scraped data responsibly and in compliance with applicable privacy regulations like GDPR and CCPA.

For more details, see Apify's guide on web scraping legality.

FAQ

How fast is the username check? A single username across all 400+ sites takes approximately 20-40 seconds with default concurrency (50 parallel requests). Filtering to specific sites is nearly instant.

How much does it cost? Each username check costs $0.008 on the free plan (plus a $0.005 one-time start fee per run). On the free plan ($5 credits), you can check approximately 620 usernames.

How accurate is the detection? The scraper uses the same detection methods as the open-source Sherlock project. Expect ~93% accuracy — some sites return false positives (e.g., Spotify always returns 200) and some use aggressive anti-bot measures that block detection.

Why are some results showing "exists: true" for usernames that don't exist? Some websites return HTTP 200 for any profile URL, even if the user doesn't exist (soft 404). This is a known limitation of HTTP-based detection. Cross-check important findings by visiting the profile URL manually.

Why do some sites return null for httpStatus? This means the request timed out or the site was unreachable. Increase the timeout parameter to 15-20 seconds for better coverage of slow sites.

What's the difference between this and the Sherlock actor? This scraper provides the same core functionality with added benefits: PPE pricing for cost control, API access for automation, structured dataset output, site filtering, configurable concurrency, and cloud scheduling. The Sherlock actor wraps the Python CLI which is slower and heavier.

Other OSINT and username tools