Discord Username Checker
Pricing
from $0.47 / 1,000 usernames
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
Maintained by CommunityActor stats
0
Bookmarked
32
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Features
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.
| Input | Up to 5,000 different Discord usernames a run, as a list or pasted one per line |
| Output | One row per name: the name, available or taken, or not allowed with the reason, and when it was checked |
| Ceiling | 5,000 different names per run |
| Account needed | None, 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? | |
|---|---|
| Actor | dami_studio/discord-username-checker |
| Set one field | usernames, labelled "Usernames" in the Console |
| Cap the bill | maxTotalChargeUsd on the run, for example 0.10: it never charges past that |
| MCP, one link | https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/discord-username-checker |
| How often | Once 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 get | Field |
|---|---|
| The name as checked, and as you gave it | username, inputUsername |
| The answer | status (available, taken or invalid), available, taken |
| Why a name isn't allowed | reason, reasonMessage |
| Its place in your list, and when it was checked | position, checkedAt |
▶️ How to check Discord usernames
- Open the actor and go to the Input tab.
- Put your names into Usernames, one per line, or paste a long list into Usernames as text.
- Press Start.
- 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
| Field | What it does | Default |
|---|---|---|
usernames | The names to check, up to 5,000 different ones a run | none |
usernamesText | The same as one block of text: one name per line, or separated by commas | none |
{"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"}]
| Field | Worth knowing |
|---|---|
available | True only when Discord said the name is free at that moment |
taken | Empty for a name that isn't allowed, since Discord never says whether it's in use |
reason | Discord'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:
| Code | Meaning |
|---|---|
BAD_INPUT | The input couldn't be used; details says why |
NOT_SERVED | Discord didn't answer for this name in this run; check it again later |
COST_LIMIT, TIME_LIMIT | The run stopped at your spending limit or its time limit |
FREE_PLAN_LIMIT | A free-plan run stopped after 100 names; a paid plan checks the whole list |
UNEXPECTED_ERROR | The 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 want | Use |
|---|---|
| Whether Discord usernames are free | This one, Discord Username Checker |
| A person's public profiles across social networks | Social Profile Finder |
| Posts of a public Telegram channel | Telegram 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 ApifyClientclient = 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:continueprint(row["username"], row["status"])
Is checking Discord usernames legal?
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.