Updated Oct 13, 2026

OSINT

Check if an email or username is available, taken, or invalid

socialscan is an open-source OSINT tool that checks whether an email address or username is available, taken, or invalid on online platforms by querying each platform's own registration and login logic.

installpip install socialscan

Python · MPL-2.0 license

Agent

overview

What socialscan does

socialscan takes an email or username and reports, per supported platform, whether the value is available, taken, or invalid. It queries each platform's registration and login logic, so taken means an account exists and available means the handle is free to register.

Pass a single query as a positional input, or feed a file with -i. Restrict platforms with -p, keep only free handles with -a, show profile URLs with --show-urls, sort with --view-by, and spread load with --proxy-list. Cache tokens with -c for platforms that need several HTTP calls.

Trickest provides socialscan as a managed OSINT node that writes FILE and FOLDER. Reach for it to confirm where an email is registered, vet candidate usernames, or check brand-handle availability in one pass.

source github.com/iojw/socialscan

use cases

Where socialscan fits

Confirm where an email is registered

Query an email address across supported platforms to see which services already hold an account for it, a fast OSINT pivot from an address to online presence.

Vet username availability in bulk

Pass a file of candidate handles with -i and add -a to keep only the ones still free, useful for an investigation or for picking a new brand handle.

Narrow a check to specific platforms

Use -p to limit the run to the platforms an investigation cares about, which cuts request volume and run time.

Scale a large batch behind proxies

Supply --proxy-list so a big query file spreads across addresses and avoids per-IP rate limits, and cache tokens with -c to send fewer requests per platform.

reference

socialscan inputs and flags

8 inputs
NameTypeFlagDescription
inputSTRING·Single username or email address to query (positional; supply several to check at once).
input-fileFILE-iFile containing a list of queries to execute, one per line.
platformSTRING-pList of platforms to query (default: all platforms).
only-available-and-not-usedBOOLEAN-aPrint only values that are available and not in use.
show-urlsBOOLEAN--show-urlsDisplay profile URLs for usernames on supported platforms.
sort-resultsSTRING--view-bySort results by platform or by query (default: query).
proxy-listFILE--proxy-listFile of HTTP proxy servers to route queries through.

Showing key inputs. socialscan exposes 8 inputs in total.

Full flag reference (8 inputs)
NameTypeFlagDescription
inputSTRING·Single username or email address to query.
platformSTRING-pList of platforms to query (default: all platforms).
show-urlsBOOLEAN--show-urlsDisplay profile URLs for usernames on supported platforms; profiles may be absent for reserved, deleted, or banned accounts.
input-fileFILE-iFile containing a list of queries to execute, one per line.
proxy-listFILE--proxy-listFile of HTTP proxy servers to route queries through.
cache-tokensSTRING-cCache tokens for platforms that need several requests (Snapchat, GitHub, Instagram, Last.fm, Tumblr), cutting total request count.
sort-resultsSTRING--view-bySort results by platform or by query (default: query).
only-available-and-not-usedBOOLEAN-aPrint only values that are available and not in use.

example

Run socialscan

socialscan · command
# check a username and an email across all platforms, showing profile URLs
socialscan jdoe jdoe@example.com --show-urls
sample output
jdoe
--------------------------------------------------
Instagram   available
GitHub      taken
Twitter     taken
Lastfm      available
Tumblr      taken
Reddit      available
Pinterest   invalid

guidance

Choosing socialscan

Use socialscan to check whether an email or username is available, taken, or invalid across platforms via registration-logic queries. For mapping where a handle already exists across hundreds of sites, prefer sherlock or maigret.

sherlock

Enumerates where a username exists across many sites. socialscan adds availability and validity for emails and usernames.

socialhunter

Crawls a site for hijackable broken social links rather than checking a handle you supply.

shodan-python

Device and service intelligence. A different OSINT axis from identity checks.

faq

socialscan questions

Per platform it reports available, taken, or invalid, based on that platform's registration and login logic rather than a profile-URL guess. Taken means the account exists; available means the handle is free.

Yes. It accepts both, so you can see which services already hold an account for an email. That address-to-presence pivot is the usual OSINT use.

Point -i at a file with one query per line. Add -a to keep only values still available, --view-by platform to group output, and --proxy-list to spread a large batch.

Pass -p with the platform list you care about. Default is all supported platforms. Narrowing -p cuts request volume when the investigation only needs a few services.

No. It checks the email or username you supply against each platform. It does not derive candidate handles from an address or scrape profiles. Feed handles you already have, or pair it with a username-enumeration tool.

sherlock and maigret enumerate where a username already exists across many sites. socialscan covers fewer platforms but adds availability and validity for both usernames and emails, so it answers free versus taken, not only where a handle exists.

Run socialscan yourself

An email or handle feeds socialscan, which checks availability across platforms and writes the verdicts as a queryable output.

Facts on this page come from the live Trickest tool library.