checks all possible combinations of short usernames against a platform's api and saves any available ones to a file. defaults to roblox 4-character usernames (a–z + 0–9), but can be configured for any platform.
- python 3.8+
- aiohttp
pip install aiohttp
python check_usernames.py
results are printed to the terminal in real time. any available usernames are saved to available_usernames.txt when the run finishes or if you stop early with ctrl+c.
- checks all combinations concurrently for maximum speed
- saves progress to
checkpoint.txtafter every batch. if the script stops, it resumes where it left off automatically - sends a discord notification the moment an available username is found (for the mods)
- supports proxy rotation to avoid rate limits
edit the platform config block at the top of check_usernames.py:
| setting | description |
|---|---|
PLATFORM_NAME |
display name shown in the output |
CHECK_URL |
api endpoint, use {} where the username goes |
USERNAME_LENGTH |
how many characters to check |
CHARS |
base allowed characters (e.g. a–z + 0–9) |
SPECIAL_CHARS |
extra characters like . and _, leave empty if the platform doesn't allow them |
ALLOW_SPECIAL_AT_ENDS |
set to True if special characters are allowed at the start and end of a username |
PROXIES |
list of proxy urls to rotate through, leave empty to disable |
DISCORD_WEBHOOK |
paste your discord webhook url here to get pinged when a username is found |
also update parse_response to match the platform's json response:
def parse_response(data: dict) -> bool:
return True # return True if the username is available, False if takento find the right check, test the api manually in your browser or a tool like postman. call the endpoint with a username you know is taken and one you know is available, then look at what's different in the json response.
for example, roblox returns:
- taken:
{"Id": 123456, "Username": "abc"} - available:
{"errorMessage": "User not found"}
so the check becomes return "Id" not in data. every platform is different, just find the pattern.
roblox (default. all taken, don't waste ya time)
PLATFORM_NAME = "Roblox"
CHECK_URL = "https://api.roblox.com/users/get-by-username?username={}"
SPECIAL_CHARS = "_"
ALLOW_SPECIAL_AT_ENDS = False
def parse_response(data: dict) -> bool:
return "Id" not in datadiscord
PLATFORM_NAME = "Discord"
CHECK_URL = "https://..." # replace with correct endpoint
SPECIAL_CHARS = "._"
ALLOW_SPECIAL_AT_ENDS = True
def parse_response(data: dict) -> bool:
return True # update to match discord's response formatrate limits vary by platform; do your own research on the platform's api limits before running this tool to avoid getting blocked.
this tool interacts with platform apis. by using it, you acknowledge that:
- you are solely responsible for any consequences, including account bans, suspensions, or violations of a platform's terms of service
- the author (ba0v) is not responsible for any bans, penalties, or legal action resulting from the use of this tool
- use it at your own risk
- script takes around 2-4 hours to complete, but rate limits can delay this severely if you don't have proxies
https://buymeacoffee.com/ba0v