Username Availability Checker
Pricing
$0.45 / 1,000 availability checks
Username Availability Checker
Check usernames across supported public platforms in one run. Get per-platform available, taken, invalid, or unresolved results with profile links and reasons when available.
Pricing
$0.45 / 1,000 availability checks
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
🔎 Check username availability across public platforms
Founders, marketers, creators, agencies, and developers can use Username Availability Checker to test candidate usernames or handles across supported public platforms. It returns one row per candidate with a normalized handle and per-platform available, taken, invalid, or unresolved results, plus profile links and reasons when available. Use the rows to compare names before choosing a brand, creator, or product handle.
- Compare short Instagram name ideas with 5 Letter Instagram Usernames Available in one run.
- Test four-letter Instagram name ideas with 4 Letter Instagram Usernames Available before choosing a handle.
- Use Social Media Name Checker Free to review candidate names across the selected platforms.
- Run Social Media Username Search Free to compare several handles in one input.
- Start Instant Username Search when you need a fresh check for a shortlist.
📊 Per-platform username results
The default dataset has one row for each submitted candidate. Each row keeps the submitted candidate beside its normalized handle and the platform results. A platform result reports available, taken, invalid, or unresolved. available and taken are reported only when the source signal is definitive. A public profile link or a reason is included when the source provides one.
Returned data
Use the rows to see which platforms have a candidate, which checks need review, and which submitted values were rejected by a platform's username rules. An unresolved result is not treated as proof that a username is available or taken.
▶️ Check many handles in one run
- Set Check usernames on to Selected platforms or Full catalog.
- If you choose Selected platforms, pick one or more values in Platforms.
- Add one or more usernames or handles to Usernames or handles. You can also add a full Gmail address such as
name@gmail.com. - Start the run and open the default dataset to review or export the rows.
The selected scope applies to every candidate in the run. Each run is a point-in-time check of public source signals. Run it again when you need a new check.
⚙️ Input
Add one candidate list and one platform scope for each run.
Input fields
| Field | Type | What it does |
|---|---|---|
platformScope | string | Required. Use selected to check the platforms in platforms, or all to check the full supported catalog for every candidate. |
platforms | array of strings | Choose one or more platforms when platformScope is selected: instagram, facebook, x, linkedin, tiktok, youtube, reddit, pinterest, threads, bluesky, mastodon, github, gitlab, npm, devto, twitch, kick, discord, steam, roblox, or gmail. |
candidates | array of strings | Required. Add one or more usernames or handles. Each value is checked on every platform in the selected scope. A full Gmail address such as name@gmail.com is also accepted. |
Input example
This is the public input from a successful current-beta default-input run.
{"platformScope": "selected","platforms": ["github","instagram","youtube","gmail"],"candidates": ["octocat"]}
🧾 Output
The Output tab opens the default dataset overview. Each dataset row contains one candidate and its per-platform checks. The tables below cover the output link and the complete dataset row shape.
Output link
| Field | Type | What it does |
|---|---|---|
results | link | Opens the checked candidates and their platform results in the default dataset overview. |
Dataset row
| Field | Type | What it does |
|---|---|---|
candidate | string | The submitted username or handle for this row. |
normalizedHandle | string | The normalized username or handle used for the checks. |
platformResults | array of objects | The results for the platforms checked for this candidate. |
platformResults[].platform | string | The platform checked for this candidate. |
platformResults[].verdict | string | The outcome: available, taken, invalid, or unresolved. Available or taken is reported only when the source signal is definitive. |
platformResults[].profileUrl | URL | The public profile URL checked for the platform, when the source provides one. |
platformResults[].reason | string | Extra source context for an invalid, unresolved, or otherwise explained platform outcome, when available. |
This complete row is from a successful current-beta run with the full catalog selected.
{"candidate": "octocat@gmail.com","normalizedHandle": "octocat","platformResults": [{"platform": "instagram","verdict": "unresolved","reason": "The source response was not definitive after retries. Manual review is needed."},{"platform": "facebook","verdict": "unresolved","reason": "The source response was not definitive after retries. Manual review is needed."},{"platform": "x","verdict": "taken","profileUrl": "https://x.com/octocat"},{"platform": "linkedin","verdict": "unresolved","reason": "The source response was not definitive after retries. Manual review is needed."},{"platform": "tiktok","verdict": "taken","profileUrl": "https://www.tiktok.com/@octocat"},{"platform": "youtube","verdict": "taken","profileUrl": "https://www.youtube.com/channel/UCuLNZr-IbDjSLgwQBFgQgIQ"},{"platform": "reddit","verdict": "taken","profileUrl": "https://www.reddit.com/user/octocat/"},{"platform": "pinterest","verdict": "taken","profileUrl": "https://www.pinterest.com/octocat/"},{"platform": "threads","verdict": "unresolved","reason": "The source response was not definitive after retries. Manual review is needed."},{"platform": "bluesky","verdict": "available","reason": "Invalid app.bsky.actor.getProfile params: Invalid AT identifier (got \"octocat\")"},{"platform": "mastodon","verdict": "taken","profileUrl": "https://mastodon.social/@octocat"},{"platform": "github","verdict": "taken","profileUrl": "https://github.com/octocat"},{"platform": "gitlab","verdict": "available","reason": "GitLab returned an empty exact username result."},{"platform": "npm","verdict": "taken","profileUrl": "https://www.npmjs.com/~octocat"},{"platform": "devto","verdict": "taken","profileUrl": "https://dev.to/octocat"},{"platform": "twitch","verdict": "taken","profileUrl": "https://www.twitch.tv/octocat"},{"platform": "kick","verdict": "taken","profileUrl": "https://kick.com/octocat"},{"platform": "discord","verdict": "taken"},{"platform": "steam","verdict": "taken","profileUrl": "https://steamcommunity.com/id/Octocat/"},{"platform": "roblox","verdict": "taken"},{"platform": "gmail","verdict": "taken"}]}
The unresolved verdict means that the source did not give a definitive answer. Review its reason before making a decision. Availability can change after the check time, so treat these rows as point-in-time signals.
💳 Pricing
This Actor uses pay-per-event pricing. The primary event is username-platform-availability-checked, which represents one check for one submitted username on one supported platform. Review the current Apify pricing panel for the live price and billing details.
🔌 Integrations
Open the default dataset in Apify, read the rows through the Apify API, export them for another workflow, or schedule the same one-list, one-scope check again. A later run is a new point-in-time check and does not create historical change tracking.
❓ FAQ
What does available or taken mean?
It is the source's definitive availability signal for that platform at the time of the check. It does not prove account ownership or guarantee that the status will stay the same.
What does unresolved mean?
The source response was not clear enough to classify the username. The Actor keeps the result as unresolved and includes a reason when available instead of guessing.
Why is a username marked invalid?
The platform rejected the candidate under its username rules or returned an invalid-input response. Read the platform result's reason when one is available.
Can I check a full Gmail address?
Yes. Add a full address such as name@gmail.com to candidates. The result keeps the submitted candidate and reports the normalized handle used for checks.
Can I check several usernames and platforms together?
Yes. Add several candidates and use either a selected platform list or the full supported catalog. One scope applies to every candidate in the run.
Does this Actor create or reserve accounts?
No. It only checks public availability signals. It does not create, reserve, claim, sign in to, or manage accounts or handles.
Is this an official platform tool, and does it prove ownership?
No. It is an independent Apify Actor. A public availability signal is not proof of ownership, inbox access, or account control.
Can I use the results for trademark or legal clearance?
No. The results help with operational naming research, but they are not trademark, legal, domain-registration, or business-name clearance.
📝 Changelog
v0.0 (21-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Gmail Username Availability Checker: Check Gmail registration availability when your candidate list is only for Gmail.
- Cross-Platform Username OSINT: Map public accounts and profile context for a handle when availability is not the only question.
- Username Availability Checker: Compare candidate handles across a broad set of social platforms.
- Username Availability Checker: Run another bulk username check across its supported services.
- Instagram Username Availability Checker + Profile Intel: Focus on Instagram availability and review profile details for taken handles.
Made with ❤️ by Maxime Dupré