Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
WhatsMyName — Archived Nov 2026. Final dataset of 691 websites for finding accounts by username. No longer maintained. | Kitploit
Tools/GitHubGitHub/webbreacher/whatsmyname
OSINT (Open Source Intelligence)ReconnaissanceOSINT for Social EngineeringInformation GatheringSocial EngineeringEmail HarvestingCurated ResourcesTop in Email Harvesting #10Top in OSINT (Open Source Intelligence) #11Top in OSINT for Social Engineering #8
3.0k5002072 days agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
Top in Social Engineering #18
GitHubwebbreacher/whatsmyname

WhatsMyName

Archived Nov 2026. Final dataset of 691 websites for finding accounts by username. No longer maintained.

View Repository

WhatsMyName

WhatsMyName

License: CC BY-SA 4.0 Status: archived Sites Contributors

The project has closed

As of November 9, 2026, WhatsMyName is no longer maintained. This repository is archived and read-only. Issues, pull requests and discussions are closed.

Why I'm closing it

I started WhatsMyName in 2015 because I was frustrated with how inaccurate the username checker sites of the time were. Eleven years later, a few things have changed:

  1. My interests have moved on. These days I spend my time on bookmarklets and other projects rather than on WhatsMyName.
  2. Maintenance has become too much. Keeping hundreds of site detections working has fallen to me and a few others, and that's more than we can sustain.
  3. The problem it was built to solve has been solved. There are some really neat username enumeration sites and tools now. WhatsMyName was a fix for a 2015 problem, and the field has caught up.

Thank you

For eleven years, people used, forked, extended and argued about this project. Thank you to everyone who contributed a site or a fix, opened an issue, wrote a script or tool on top of the data, maintained a fork, taught it in a class, or used it in an investigation. WhatsMyName was only ever as good as the community around it, and that community made it better than I could have alone.

— Micah "WebBreacher" Hoffman

What stays

The data stays here, and you can keep using it under its license:

  • wmn-data.json holds the final dataset: 691 sites, last updated November 9, 2026.
  • wmn-data-schema.json is its JSON schema.
  • Both stay at their current URLs, so tools that download them from main keep working.

Websites change all the time and nobody is updating these detections now, so the data will get less accurate over time. Treat results as leads to verify, not as facts.

Table of Contents

  • About WhatsMyName
  • How It Works
  • Data format
  • Tools and Sites That Use WhatsMyName
  • License

About WhatsMyName

WhatsMyName (WMN) was a community-maintained dataset for finding out whether a username exists across hundreds of websites. Investigators, researchers and curious people used it to verify online identities and check their own digital footprints.

Micah "WebBreacher" Hoffman created WhatsMyName in 2015 to deal with a real frustration: existing username checkers were full of false positives. Contributions from people all over the world grew it into one of the most widely used username enumeration datasets in the OSINT community.

Many tools and sites build on the data, and some have adopted the WhatsMyName name as well. Not all of them are connected to this project. The tools listed in Tools and Sites That Use WhatsMyName use WhatsMyName data and credit the project.


How It Works

WMN is a single JSON file, wmn-data.json. Each entry describes how to check one website for a username: what URL to request, what a response looks like when the account exists, and what it looks like when it doesn't.

Tools read this file and do the actual checking. That separation means anyone can build a checker on top of the same data.

To be included, a site had to:

  1. Be publicly accessible. Sites behind paywalls or logins can't be checked.
  2. Include the username in the URL. The profile URL must contain the username directly.
  3. Not transform the username. Sites that swap usernames for numeric IDs won't work.

Data format

wmn-data.json has four top-level elements: license, authors, categories and sites. Each item in sites uses these fields, in this order:

FieldRequired?Purpose
namerequiredDisplay name of the site
uri_checkrequiredURL to check, with {account} in place of the username
uri_prettyoptionalHuman-readable profile URL, used when uri_check is an API endpoint
post_bodyoptionalRequest body. If present, the check is a POST request
headersoptionalHTTP headers to send. Always present when post_body is set
strip_bad_charoptionalCharacters to remove from the username before building the request. Each character is removed separately ("@." means remove @ and .)
e_coderequiredHTTP status code when the account exists
e_stringrequiredA string present only when the account exists
m_stringrequiredA string present only when the account does not exist
m_coderequiredHTTP status code when the account does not exist
knownrequiredUsernames that existed on the site when the entry was last verified
catrequiredCategory, one of the values in the schema's cat enum
validoptionalfalse means the entry was known to be broken. Checkers should skip it
protectionoptionalAnti-automation measures seen on the site, such as cloudflare, captcha or user-agent

Checking a site

  1. Remove any strip_bad_char characters from the username.
  2. Replace {account} in uri_check (and in post_body, if present) with the username. Use plain string replacement: many post_body values are JSON, so template functions that treat { and } as placeholders will break them.
  3. Send a POST with post_body and headers if post_body exists. Otherwise send a GET, still including any headers.
  4. Decide the result:
    • Found: the status code equals e_code and the body contains e_string.
    • Not found: the status code equals m_code and the body contains m_string.
    • Anything else is unknown: the site may be blocking you, down, or changed since the entry was written.

Many sites use the same code for both outcomes (often 200), so never decide on the status code alone. Always check the strings too.

Example: GET entry

{
  "name": "Example GET",
  "uri_check": "https://www.example.com/load_profile_info.php?name={account}",
  "uri_pretty": "https://www.example.com/profile/{account}",
  "headers": {
    "Accept": "text/html"
  },
  "e_code": 200,
  "e_string": "\"registered_at\":",
  "m_string": "\"error\":\"not_found\"",
  "m_code": 404,
  "known": [
    "whoami",
    "johndoe"
  ],
  "cat": "images",
  "protection": [
    "captcha",
    "cloudflare"
  ]
}

Example: POST entry

{
  "name": "Example POST",
  "uri_check": "https://www.example.com/interact_api/load_profile_info.php",
  "post_body": "{\"username\":\"{account}\"}",
  "headers": {
    "Content-Type": "application/json"
  },
  "e_code": 200,
  "e_string": "\"registered_at\":",
  "m_string": "\"error\":\"not_found\"",
  "m_code": 404,
  "known": [
    "whoami",
    "johndoe"
  ],
  "cat": "images"
}

Tools and Sites That Use WhatsMyName

These tools used WhatsMyName data and credited the project as of November 2026. Their maintainers run them independently, and this list will not be updated.

Download Tool