GitHub username rules and availability

GitHub is the reference network on UsernameChecker because it documents both the login format and a public API. This page explains the rules in plain language and how our checker maps HTTP status codes to “taken” or “likely available.”

Official character rules

On github.com a username (login) must satisfy all of the following:

  • Length is 1 to 39 characters.
  • Only ASCII letters, digits, and hyphens (A–Z, a–z, 0–9, -).
  • It cannot start or end with a hyphen.
  • It cannot contain two hyphens in a row.
  • Logins are case-insensitive: OctoCat and octocat are the same account.

Underscores, dots, spaces, and emoji are not allowed in a GitHub login. Those characters may still be valid on Instagram or TikTok, which is why a name can look free on GitHub and taken elsewhere.

Examples

  • Valid: octocat, github, my-org, a1
  • Invalid: -octocat (leading hyphen), octocat- (trailing hyphen), octo--cat (double hyphen), octo_cat (underscore)

If a string fails these rules, GitHub will never create the account. Checking availability is unnecessary until the name is valid.

How we check GitHub

We call the public Users API: GET https://api.github.com/users/{username} with header Accept: application/vnd.github+json and User-Agent UsernameChecker/1.0 (+https://usernamechecker.net).

  • 200 OK — the user object exists. We mark the handle taken.
  • 404 Not Found — GitHub has no user with that login. We mark it likely available.
  • 403 / 429 — rate limit or abuse detection. We mark it unknown instead of inventing a result.

This is the same public-API pattern used by open-source availability projects such as socialscan. We do not scrape github.com HTML for this network, and we do not request private emails, SSH keys, or organization membership.

Taken does not always mean a person

A 200 response can be a user, a bot account, or a renamed leftover. GitHub also reserves some names. “Taken” means you cannot register that exact login today. It is not a profile dossier and not proof of who operates the account.

Tips for a durable GitHub handle

  1. Prefer a short, pronounceable name that also fits Instagram (30 characters) if you want one brand everywhere.
  2. Avoid trailing numbers unless they are part of the product name. They look like overflow when the clean name is taken.
  3. Hyphens are allowed; underscores are not. If your other apps use my_brand, try my-brand on GitHub.
  4. Check the organization namespace too: GitHub users and organizations share the same login space.
  5. Confirm on github.com/signup before you print the name on a README or domain.

Run the checker · How to choose a username · Back to home