Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

username sniper

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.

requirements

  • python 3.8+
  • aiohttp

pip install aiohttp

usage

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.

cool features

  • checks all combinations concurrently for maximum speed
  • saves progress to checkpoint.txt after 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

configuration

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 taken

to 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.

examples

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 data

discord

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 format

rate limits

rate limits vary by platform; do your own research on the platform's api limits before running this tool to avoid getting blocked.

disclaimer

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

if this helped you get a clean username, consider donating!

https://buymeacoffee.com/ba0v

Releases

Packages

Contributors

Languages