Sherlock: Hunt Down Social Media Accounts by Username Across 400+ Sites
NotionWhat is Sherlock?
Sherlock is a powerful open-source OSINT tool that hunts down social media accounts by username across 400+ websites simultaneously. Given a username, Sherlock checks hundreds of platforms — from mainstream sites like Twitter, Instagram, and Reddit to niche forums, gaming platforms, and developer communities — and reports back which ones have an account with that exact username.
In OSINT investigations, Sherlock is a critical early-stage tool. A single username can be the thread that unravels an entire online identity. People tend to reuse usernames across platforms, and Sherlock exploits this pattern to map a subject's digital footprint in seconds.
Legal Notice: Only use Sherlock for legitimate OSINT purposes such as security research, authorized investigations, or checking your own digital footprint. Do not use it for harassment, stalking, or any illegal activity.
Installation
On Kali Linux
sudo apt update && sudo apt install sherlockOr install via pip for the latest version:
pip install sherlock-projectVerify Installation
sherlock --versionExpected Output:
Sherlock v0.16.0Install from GitHub (Latest Dev Version)
git clone https://github.com/sherlock-project/sherlock.git
cd sherlock
pip install -r requirements.txt
python3 sherlock.py --versionCore Concepts
Sherlock works by sending HTTP requests to hundreds of websites and checking if a profile page exists for the given username. It uses three detection methods:
- Status Code — Checks if the profile URL returns HTTP 200 (exists) vs 404 (not found)
- Response Body — Looks for specific error messages in the page content
- Response URL — Checks if the site redirects to a different page (indicating the username doesn't exist) False positives can occur when sites return 200 for all usernames (showing a "user not found" page with a 200 status). Sherlock continuously updates its site database to minimize these.
Basic Usage
Search for a Single Username
sherlock johndoeExpected Output:
[*] Checking username johndoe on:
[+] 7Cups: https://www.7cups.com/@johndoe
[+] About.me: https://about.me/johndoe
[+] Academia.edu: https://independent.academia.edu/johndoe
[+] AllMyLinks: https://allmylinks.com/johndoe
[+] Apple Developer: https://developer.apple.com/forums/profile/johndoe
[+] ArtStation: https://www.artstation.com/johndoe
[+] Bandcamp: https://www.bandcamp.com/johndoe
[+] BitBucket: https://bitbucket.org/johndoe/
[+] Blogger: https://johndoe.blogspot.com
[+] BuyMeACoffee: https://buymeacoffee.com/johndoe
[+] Chess.com: https://www.chess.com/member/johndoe
[+] Codecademy: https://www.codecademy.com/profiles/johndoe
[+] Codeberg: https://codeberg.org/johndoe
[+] DEV Community: https://dev.to/johndoe
[+] DeviantArt: https://johndoe.deviantart.com
[+] Disqus: https://disqus.com/by/johndoe/
[+] Dribbble: https://dribbble.com/johndoe
[+] Duolingo: https://www.duolingo.com/profile/johndoe
[+] Fiverr: https://www.fiverr.com/johndoe
[+] Flickr: https://www.flickr.com/people/johndoe
[+] GitHub: https://www.github.com/johndoe
[+] GitLab: https://gitlab.com/johndoe
[+] Gravatar: http://en.gravatar.com/johndoe
[+] HackerOne: https://hackerone.com/johndoe
[+] HackerRank: https://hackerrank.com/johndoe
[+] Instagram: https://www.instagram.com/johndoe
[+] Keybase: https://keybase.io/johndoe
[+] Kickstarter: https://www.kickstarter.com/profile/johndoe
[+] Letterboxd: https://letterboxd.com/johndoe
[+] LinkedIn: https://www.linkedin.com/in/johndoe
[+] Medium: https://medium.com/@johndoe
[+] npm: https://www.npmjs.com/~johndoe
[+] Patreon: https://www.patreon.com/johndoe
[+] Pinterest: https://www.pinterest.com/johndoe/
[+] Reddit: https://www.reddit.com/user/johndoe
[+] Replit: https://replit.com/@johndoe
[+] Scribd: https://www.scribd.com/johndoe
[+] Slack: https://johndoe.slack.com
[+] SlideShare: https://slideshare.net/johndoe
[+] Snapchat: https://www.snapchat.com/add/johndoe
[+] SoundCloud: https://soundcloud.com/johndoe
[+] Spotify: https://open.spotify.com/user/johndoe
[+] Steam: https://steamcommunity.com/id/johndoe
[+] Telegram: https://t.me/johndoe
[+] TikTok: https://tiktok.com/@johndoe
[+] Twitch: https://www.twitch.tv/johndoe
[+] Twitter: https://x.com/johndoe
[+] Vimeo: https://vimeo.com/johndoe
[+] YouTube: https://www.youtube.com/@johndoe
[*] Results: 49 found across 400+ sites
[*] Saved to: johndoe.txtSearch Multiple Usernames at Once
sherlock johndoe janedoe hacker42Sherlock creates a separate results file for each username.
Show Only Found Results
sherlock --print-found johndoeHides the [-] Not Found lines, showing only confirmed accounts.
Output Options
Save Results to Specific File
sherlock --output results/johndoe_report.txt johndoeSave as CSV
sherlock --csv johndoeCreates johndoe.csv with columns: username, name, url_main, url_user, exists, http_status, response_time
Save as XLSX (Excel)
sherlock --xlsx johndoeSave to Specific Output Folder
sherlock --folderoutput ./osint_results/ johndoe janedoeAll result files get saved into the specified directory.
Filtering and Customization
Search Only Specific Sites
sherlock --site github --site twitter --site reddit johndoeSet Request Timeout
sherlock --timeout 10 johndoeDefault timeout is 60 seconds per site. Lower it for faster scans.
Use a Proxy (Tor or SOCKS)
sherlock --proxy socks5://127.0.0.1:9050 johndoeRoute all requests through Tor for anonymity.
Use Tor Directly
sherlock --tor johndoeRequires Tor to be running on your system.
Browse Results in Browser
sherlock --browse johndoeAutomatically opens every found profile URL in your default browser.
List All Supported Sites
sherlock --site-listOutputs all 400+ sites that Sherlock checks.
Real-World OSINT Workflows
Workflow 1: Map a Subject's Digital Footprint
Given a username discovered during an investigation:
# Step 1: Run Sherlock with CSV output
sherlock --csv --print-found target_username
# Step 2: Review results
cat target_username.csv
# Step 3: Check variations of the username
sherlock --csv --print-found target_username target_username1 target_username_ targetusernameWorkflow 2: Cross-Reference Multiple Usernames
If you've found multiple usernames linked to the same person:
# Search all known aliases
sherlock --folderoutput ./investigation/ --csv \
alias1 alias2 alias3 alias4
# Compare results to find overlapping platforms
comm -12 <(sort alias1.txt) <(sort alias2.txt)Workflow 3: Your Own OPSEC Audit
Check your own exposure:
# See where your username exists
sherlock --print-found --csv your_username
# Review and decide which accounts to deactivate
cat your_username.csv | grep "True" | wc -lWorkflow 4: Combine with Other OSINT Tools
# Step 1: Sherlock finds the GitHub profile
sherlock --site github target_user
# Step 2: Clone their repos and search for secrets
git clone https://github.com/target_user/repo.git
grep -r "API_KEY\|SECRET\|PASSWORD" repo/
# Step 3: Check email from git commits
cd repo && git log --format='%ae' | sort -uHandling False Positives
Sherlock can produce false positives. Here's how to verify:
Quick verification methods:
-
Open the URL in a browser — does a real profile appear?
-
Check the HTTP status code:
curl -o /dev/null -s -w "%{http_code}" URL -
Look for signs of activity (posts, followers, join date) Common false positive patterns:
-
Sites that return 200 for every URL (e.g., some forum platforms)
-
Reserved/placeholder profiles with no actual activity
-
Sites behind login walls where the profile page loads but is empty
Useful Flags Reference
Summary
Sherlock is a fast, focused OSINT tool that answers one critical question: "Where else does this username exist on the internet?" It's an essential early-stage tool in any investigation pipeline. Combined with other tools like theHarvester (for email discovery) and Maltego (for relationship mapping), Sherlock helps build a comprehensive picture of someone's online presence.
Key Takeaways:
- Use
sherlock usernamefor a quick sweep across 400+ sites - Use
--print-foundto filter noise and see only confirmed accounts - Use
--csvfor structured output you can analyze programmatically - Use
--proxyor--torfor anonymous reconnaissance - Always verify results manually to filter out false positives
- Run against username variations (underscores, numbers, abbreviations)