Roblox Username Checker - Availability, Bulk & Fast avatar

Roblox Username Checker - Availability, Bulk & Fast

Pricing

from $8.00 / 1,000 username checkeds

Go to Apify Store
Roblox Username Checker - Availability, Bulk & Fast

Roblox Username Checker - Availability, Bulk & Fast

For Roblox players, creators and handle hunters: bulk-check up to 1,000 Roblox usernames per run and get available, taken, not appropriate or invalid with Roblox's own reason. A name Roblox did not answer is never reported as available.

Pricing

from $8.00 / 1,000 username checkeds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

11 days ago

Last modified

Share

For Roblox players, creators and handle hunters: whether each Roblox username is available, taken, not appropriate or invalid (with Roblox's own answer code, reason and message), plus the time it was checked. Measured on 2026-09-29 with this Actor on Apify: one name in 2.1 s, 815 names in 312 s with no rate limit. Send one name or a list of up to 1,000 in the same run and get one row per name - a name Roblox could not answer is never reported as available.

Export as JSON, CSV or Excel.

Unofficial. Public data only. Not affiliated with, endorsed by or connected to Roblox Corporation.


What it does

You give it usernames. It asks Roblox the same question the sign-up page asks ("can this username be registered?") and returns one row per name.

{
"usernames": ["builderman", "quietharbor7319", "ab", "a__b"]
}

Rows returned for that input (real answers, 2026-09-29):

[
{ "username": "builderman", "taken": true, "available": false, "status": "taken", "reason": null, "robloxCode": 1, "reasonMessage": "Username is already in use", "inputUsername": "builderman", "checkedAt": "2026-09-29T02:38:54.020Z", "source": "roblox" },
{ "username": "quietharbor7319", "taken": false, "available": true, "status": "available", "reason": null, "robloxCode": 0, "reasonMessage": "Username is valid", "inputUsername": "quietharbor7319", "checkedAt": "2026-09-29T02:38:54.310Z", "source": "roblox" },
{ "username": "ab", "taken": null, "available": false, "status": "invalid", "reason": "length", "robloxCode": 3, "reasonMessage": "Usernames can be 3 to 20 characters long", "inputUsername": "ab", "checkedAt": "2026-09-29T02:38:54.546Z", "source": "roblox" },
{ "username": "a__b", "taken": null, "available": false, "status": "invalid", "reason": "more-than-one-underscore", "robloxCode": 5, "reasonMessage": "Usernames can have at most one _", "inputUsername": "a__b", "checkedAt": "2026-09-29T02:38:54.793Z", "source": "roblox" }
]

The first three columns - username, taken, available - have the same names and meaning as in other username checkers, so a script that reads those three fields from the dataset does not have to rename them. Results are written to the default dataset only (nothing is written to the key-value store). You can also send a single name in a field called username instead of a list.

Why this one

  • One name or many, same Actor. Send {"username": "name"} for one check, or usernames with up to 1,000 names.
  • Four answers, not two. Roblox's sign-up check separates a name that is free, a name someone already has, a name Roblox's filter rejects, and a name that breaks the format rules. A name that is not in use can still be impossible to register, and this Actor tells you which.
  • Every row says when it was checked (checkedAt, UTC). Availability changes the moment someone registers the name.
  • It does not guess. If Roblox rate-limits a name after waiting and retrying, blocks the request, or answers with something that is not one of its known answers, that name comes back as a free row with available: null, taken: null and a note saying why. It is never counted as available.

What Roblox answers, and what you get

Measured on 2026-09-29. Every answer is HTTP 200 with {"code": <number>, "message": "<text>"}:

Roblox codeRoblox's messagestatusreasonCharged
0Username is validavailable-yes
1Username is already in usetaken-yes
2Username not appropriate for Robloxinappropriatenot-appropriateyes
3Usernames can be 3 to 20 characters longinvalidlengthyes
4Username can't start or end with _invalidunderscore-at-start-or-endyes
5Usernames can have at most one _invalidmore-than-one-underscoreyes
6Username cannot contain spacesinvalidcontains-spacesyes
7Only a-z, A-Z, 0-9, and _ are allowedinvalidinvalid-charactersyes
any other code, HTTP 400, or an unreadable answer-unreadable (free row, Roblox's message in note)-no
HTTP 429 after waiting and retrying-rate-limited (free row)-no
a verification step, a block or an empty answer-blocked (free row)-no

inappropriate covers more than rude words: in the measurements it also came back for names containing other platform names (facebook, instagram_me, snapchatme, tiktokzq7) and for Roblox_Staff. Roblox does not say which rule matched.

Names are checked as an adult sign-up (birthday 2000-01-01). In six test names the answer was the same with an under-13 birthday; Roblox may filter under-13 sign-ups more strictly for other names.

Input

FieldWhat it does
usernamesList of usernames, one per line (commas also split). A leading @ is removed and the letters A-Z are lower-cased - Roblox ignores case too (BUILDERMAN and builderman got the same answer). A space or symbol inside a name is kept and sent as typed, and Roblox answers invalid with its reason. The same name is checked and charged once. Up to 1,000 per run.
usernameOne username, for tools that send a single name in a field called username. Checked first, together with the list.

If both are empty, the example names builderman and quietharbor7319 are checked (and charged like any other name), and every row says so in note. Input that has only spaces or separators, or names put in a field this Actor does not know, is not replaced by the examples: you get one free row saying so.

Output columns

ColumnMeaning
usernameThe name that was sent to Roblox (leading @ removed, lower case).
takentrue if Roblox says the name is in use, false if it is free, null for not-appropriate and invalid names and for free rows.
availabletrue only when Roblox said the name is valid and free. false for taken, not-appropriate and invalid names. null on free rows (no answer).
statusavailable, taken, inappropriate or invalid on charged rows. Free rows: rate-limited, blocked, unreadable, invalid-input, duplicate, budget-reached, not-checked.
reasonShort name of the rule for inappropriate and invalid names (table above).
robloxCodeRoblox's answer code (0 - 7).
reasonMessageRoblox's own sentence.
inputUsernameThe name exactly as you typed it.
checkedAtWhen the answer came back (ISO 8601, UTC).
noteFree rows: why there is no answer (free rows are never charged). Charged rows have a note only when they answer for the example names.
sourceAlways roblox.

Speed and cost of one check

Measured on Apify on 2026-09-29 with the default 128 MB of memory:

RunTime of the runTime from the API call until the result is ready
One name2.1 s4.0 s
The example input (2 names)3.8 s7.1 s
4 names2.9 s4.0 s
11 inputs (9 names answered, 1 repeated name, 1 empty input)4.4 s7.2 s
815 names312.3 s (about 0.38 s per name, 815 requests, 0 rate limits)315.0 s

A one-name run costs $0.008 - the price of one checked name - and nothing else.

Pricing

Pay per event: $8.00 per 1,000 usernames checked ($0.008 per name), and nothing else - no start fee. You are charged for a name only when Roblox answered for it: available, taken, inappropriate or invalid. Rate-limited, blocked and unreadable names, input that is not a name, repeated names and anything the run's maximum total charge did not cover come back as free rows.

If you set a maximum total charge for the run, the Actor checks only as many names as that limit can pay for. The rest are not sent to Roblox, and one free row says how many were left.

Rate limits and how the requests are made

  • The Actor sends one request per name to https://auth.roblox.com/v1/usernames/validate - the endpoint Roblox's own sign-up page uses, listed in Roblox's public API documentation as "Checks if a username is valid". No account, login, token or cookie is used.
  • It does not hammer Roblox. Names are checked one after another with a short pause (0.15 s), never in parallel - about 160 requests a minute in the 815-name run above, while Roblox's own rate-limit header allows 1,000 a minute. When Roblox answers 429, the Actor waits the number of seconds Roblox gives (or 15 seconds if it gives none) and asks again from the same address. If Roblox asks for a wait longer than 60 seconds, the name is not retried. After 3 attempts the name comes back as a free rate-limited row.
  • It does not hide who it is. Requests carry a User-Agent that names this Actor, and it does not rotate proxy addresses to get around a rate limit.
  • It stops instead of spinning. If 10 names in a row get no answer, or the run is 30 seconds from its timeout, the Actor stops sending and one free not-checked row says how many names were left. A name is not retried when the wait and the retry would run past the timeout.
  • Verification steps (CAPTCHA) are never solved or bypassed. If Roblox answers with one, the name comes back as a free blocked row.
  • auth.roblox.com has no robots.txt (it answers 404, checked 2026-09-29), and the robots.txt of www.roblox.com does not cover this path. Roblox's Terms of Use (version of 2026-09-22) ask API users to use an API only as documented and not to misrepresent or mask their identity; the two points above are how this Actor follows that.

Limits

  • Up to 1,000 names per run. Split longer lists across runs.
  • An available answer means "free at checkedAt". Anyone can register it a second later.
  • Roblox usernames are 3 - 20 characters of letters, digits and at most one underscore. Anything else comes back invalid with Roblox's reason (and is charged, because Roblox answered).
  • Display names are not checked: Roblox display names do not have to be unique.
  • Roblox's documentation marks this v1 endpoint as not recommended and points to a newer version, so Roblox may change or close it.
  • If Roblox changes or closes this endpoint, or starts requiring a verification step for it, the Actor stops returning answers (you get free rows saying so) rather than guessing.

FAQ

Is a rate-limited name charged? No. Only names Roblox answered for are charged.

Why is taken null for a not-appropriate or invalid name? Roblox did not say whether it is in use - it said the name cannot be registered at all. available is false because you cannot claim it.

Can a name be free and still not available? Yes. inappropriate names and names that break the format rules cannot be registered even if nobody has them.