Discord Username Checker avatar

Discord Username Checker

Pricing

from $0.47 / 1,000 usernames

Go to Apify Store
Discord Username Checker

Discord Username Checker

Discord username checker for bulk username availability: which names are free to take, taken, or not allowed with Discord's own reason, one row per name. Paste up to 5,000 names a run. No Discord account needed.

Pricing

from $0.47 / 1,000 usernames

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

32

Total users

1

Monthly active users

an hour ago

Last modified

Features

Limited permissions

Share

Discord username checker: see which usernames are free to take, in bulk: paste a list of names and get one row per name, saying whether it's available, taken, or not allowed, with Discord's own reason when it refuses one.

It asks Discord the same question its sign-up page asks, so the answer is Discord's at the moment of the check. A name that's free now can be taken a minute later, and a name Discord doesn't answer for in a run is never reported as available.

InputUp to 5,000 different Discord usernames a run, as a list or pasted one per line
OutputOne row per name: the name, available or taken, or not allowed with the reason, and when it was checked
Ceiling5,000 different names per run
Account neededNone, from you or from us
Price$0.47 per 1,000 names checked, the same on every plan. The free plan's $5 a month covers about 10,600
Using an AI agent?
Actordami_studio/discord-username-checker
Set one fieldusernames, labelled "Usernames" in the Console
Cap the billmaxTotalChargeUsd on the run, for example 0.10: it never charges past that
MCP, one linkhttps://mcp.apify.com/?tools=fetch-actor-details,dami_studio/discord-username-checker
How oftenOnce per list of ideas, again just before you register a name

🔍 What Discord Username Checker does

Each name is read the way Discord reads it: capitals become lowercase and a leading @ is dropped, so @CoolName is checked as coolname. A name that breaks Discord's rules (2 to 32 characters of lowercase letters, digits, underscores and periods, never two periods in a row) is answered at once, free, without asking Discord.

Every other name goes to Discord's own check. The row says available or taken, or invalid with Discord's reason when it won't allow the name, for example one that contains "discord". Rows keep the order you gave in position, and a name given twice is checked once.

📋 What data you get from each Discord username

What you getField
The name as checked, and as you gave itusername, inputUsername
The answerstatus (available, taken or invalid), available, taken
Why a name isn't allowedreason, reasonMessage
Its place in your list, and when it was checkedposition, checkedAt

▶️ How to check Discord usernames

  1. Open the actor and go to the Input tab.
  2. Put your names into Usernames, one per line, or paste a long list into Usernames as text.
  3. Press Start.
  4. Open the Output tab; the Names view shows each name and its status.

💰 How much does it cost to check Discord usernames?

$0.47 per 1,000 names checked on every plan, so 5,000 names cost $2.35. The free plan's $5 a month covers about 10,600 names; a free-plan run checks up to 100.

Not charged: names that aren't allowed as Discord usernames, names given twice, and note rows (a name Discord didn't answer for, or a stop).

📥 What you give it

FieldWhat it doesDefault
usernamesThe names to check, up to 5,000 different ones a runnone
usernamesTextThe same as one block of text: one name per line, or separated by commasnone
{
"usernames": ["moonlight", "quietfox_2026", "pixel.ranger"]
}

📤 What you get back

Real rows from a run on 7 November 2026:

[
{
"recordType": "username",
"ok": true,
"charged": true,
"username": "quietfox_2026",
"inputUsername": "quietfox_2026",
"position": 2,
"status": "available",
"available": true,
"taken": false,
"reason": null,
"reasonMessage": null,
"checkedAt": "2026-11-07T18:26:22.443Z"
},
{
"recordType": "username",
"ok": true,
"charged": false,
"username": "discord_fan",
"inputUsername": "discord_fan",
"position": 3,
"status": "invalid",
"available": false,
"taken": null,
"reason": "USERNAME_INVALID_CONTAINS",
"reasonMessage": "Username cannot contain \"discord\"",
"checkedAt": "2026-11-07T18:26:22.553Z"
}
]
FieldWorth knowing
availableTrue only when Discord said the name is free at that moment
takenEmpty for a name that isn't allowed, since Discord never says whether it's in use
reasonDiscord's own code for a refused name; the rule-breaking names this actor answers itself carry LENGTH, CHARACTERS or PERIODS

🧾 Reading the output

Rows with recordType: "username" and charged: true are names Discord answered for, each billed once. Rows with status: "invalid" carry charged: false and are free.

Note rows carry recordType: "note", ok: false and an errorCode, and are never billed:

CodeMeaning
BAD_INPUTThe input couldn't be used; details says why
NOT_SERVEDDiscord didn't answer for this name in this run; check it again later
COST_LIMIT, TIME_LIMITThe run stopped at your spending limit or its time limit
FREE_PLAN_LIMITA free-plan run stopped after 100 names; a paid plan checks the whole list
UNEXPECTED_ERRORThe run stopped on an error on our side; rows before it are kept

To keep only the free names, filter on available == true.

💡 What people use it for

  • Anyone choosing a handle for a new community or brand who wants the short list of names that are still free before falling in love with one.
  • Bot and tool makers who check names in bulk before registering test accounts.
  • Groups renaming several accounts at once, to see which of the planned names collide.

🚧 What it does not do

  • No lookups of who owns a taken name, and no profile data.
  • No server names or invite links.
  • It doesn't hold or register a name; registering happens in Discord.
  • It is not an official Discord tool. Dami's Studio is independent and is not affiliated with or endorsed by Discord, or by any other company named on this page.

🧭 Which actor do you need?

If you wantUse
Whether Discord usernames are freeThis one, Discord Username Checker
A person's public profiles across social networksSocial Profile Finder
Posts of a public Telegram channelTelegram Channel Scraper

❓ Questions people ask

Do I need a Discord account to check usernames?

No. The check needs no account, neither yours nor ours.

Why does a name show as taken when nobody seems to use it?

Discord counts a name as taken while any account holds it, including inactive ones and accounts you can't see.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab on the actor page has ready code. For an assistant, use the MCP link https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/discord-username-checker.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("dami_studio/discord-username-checker").call(
run_input={"usernames": ["moonlight", "quietfox_2026"]},
max_total_charge_usd=0.10,
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row.get("ok") is False:
continue
print(row["username"], row["status"])

This asks the same public question Discord's sign-up page asks anyone, with no account, and returns only the names you give it with Discord's answer: no personal data. Discord's own terms still apply to what you do with the results. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Include the run ID and a few of the names you checked.