Username availability (partially accurate) (Removed)

This endpoint has been removed by Mojang. It now redirects to the "Username to UUID" endpoint also documented here. Please update your code if you use this endpoint anywhere. If you need to check username availability and need it to be extremely accurate, use the "Username availability (accurate)" endpoint under the "Requires authentication" section.

Original Article Contents

This is an undocumented endpoint that allows for the checking of usernames that have potentially been blocked, unlike /users/profiles/minecraft/:username.

Keep in mind, this endpoint is not located on the normal Mojang API domain - instead, it is located on account.mojang.com.

A quick word on blocking and MSAs

Blocking can happen either one of two ways - a username sniper has blocked the name for 24 hours on an empty Mojang account, or the username has been blocked by Mojang's inappropriate name filter for whatever reason. The reasons names are blocked aren't public, but this is the best way to check if a name is blocked.

If the name returns 204 on the normal Username to UUID endpoint, yet returns TAKEN here, it's either blocked or is pseudo-hard-deleted - the UUID exists in some parts of the API but not others. The username availability endpoint that does need authentication is more accurate than this endpoint, since it shows pseudo-hard-deleted accounts under TAKEN and blocked usernames under NOT_ALLOWED.

Something else of note - this endpoint no longer properly functions with the introduction of Microsoft accounts. They falsely appear as AVAILABLE on this endpoint. Microsoft accounts that were migrated from Mojang accounts function correctly, only newly created Microsoft accounts do not function with this endpoint.

Request

  • Method: GET
  • Endpoint: /available/minecraft/:username
  • Full URL: https://account.mojang.com/available/minecraft/:username

Checks if a username is available or taken. Will return TAKEN for every 1 and 2-character username, any username with invalid characters, or any name with more than 16 characters.

The only URL parameter here is username, the username that we want to check availability for.

Response

200: OK

Unless there is a server error this is the only response code for this endpoint. There are two possible responses - AVAILABLE or TAKEN, that's it. It's a very small endpoint but does its job well.

// if the name is legitimately available
AVAILABLE

// if the name is taken or blocked.
TAKEN