Brand & Business Name Generator · Verified Domains, Handles avatar

Brand & Business Name Generator · Verified Domains, Handles

Pricing

from $1.80 / 1,000 names

Go to Apify Store
Brand & Business Name Generator · Verified Domains, Handles

Brand & Business Name Generator · Verified Domains, Handles

Brand, business and startup name generator with a built-in username and domain availability checker: every candidate verified live on domains (with prices), 37 social and developer handles, App Store and Wikipedia. Keep only names free where you need them. First 3 names free each month.

Pricing

from $1.80 / 1,000 names

Rating

0.0

(0)

Developer

AgentsGearbox

AgentsGearbox

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

26 minutes ago

Last modified

Categories

Share

Brand & Business Name Generator · verified domains, handles & prices

A brand, business, startup or product name generator with a built-in username and domain availability checker. Describe what you are naming and get back names that are actually free: the AI invents candidates, and every single one is checked live against domain registries (with prices), social and developer handles, the Apple App Store, Wikipedia and the dictionary. One row per name with a complete availability map, or only the names that are free where you need them. The first 3 names each month are free for every account.

Why a tool and not a chat? Because the model alone cannot check anything. In our tests, 27 names an AI proposed for a restaurant-booking product had zero free .com domains; they were all real words. Brand Name Generator generates, checks, learns which names were taken, and generates again until it has what you asked for. You pay only for the names it returns.

Built by agentsgearbox. Questions: support@agentsgearbox.com.

What you get

One dataset item per name:

{
"name": "ospitella",
"source": "generated",
"round": 1,
"freeCount": 14,
"checkedCount": 15,
"freeOn": ["com", "it", "io", "telegram", "x", "github", "youtube", "substack", "npm", "linkedin", "bluesky", "appstore", "dictionary", "wikipedia"],
"takenOn": ["tiktok"],
"unknownOn": [],
"passesFilter": true,
"score": 91,
"pronounceability": 100,
"length": 9,
"syllables": 4,
"freeDomains": [
{ "domain": "ospitella.com", "priceUsd": 11.08 },
{ "domain": "ospitella.io", "priceUsd": 28.12 },
{ "domain": "ospitella.it", "priceUsd": null }
],
"domains": {
"com": { "status": "free", "method": "rdap", "priceUsd": 11.08, "renewalUsd": 11.08, "url": "https://ospitella.com" },
"io": { "status": "free", "method": "whois", "priceUsd": 28.12, "url": "https://ospitella.io" },
"it": { "status": "free", "method": "whois", "url": "https://ospitella.it" }
},
"handles": {
"x": { "status": "free", "url": "https://x.com/ospitella" },
"tiktok": { "status": "taken", "url": "https://www.tiktok.com/@ospitella" },
"github": { "status": "free", "url": "https://github.com/ospitella" }
},
"collisions": {
"appstore": { "status": "free" },
"wikipedia": { "status": "free" },
"dictionary": { "status": "free" }
}
}

Every channel has one of three statuses: free, taken or unknown (the platform did not answer reliably; an unknown status never counts as free). On the collision channels, taken means a conflict exists: an app with exactly that name, a Wikipedia article, a dictionary word.

The run ends with one free summary item: how many candidates were generated and checked, how many were returned, why the run stopped, and a hint when nothing passed your filter.

Two ways to use it: generate names, or check your own

Generate. Give a brief ("a budgeting app for freelancers in Spain, friendly and simple"), pick the TLDs and platforms you care about, and set requireFreeOn to the channels a name must be free on. The actor runs rounds of 40 candidates until it has maxResults names that pass, feeding the taken names back into the next round so the model drifts away from what is registered.

Check. Give your own names and leave brief empty: this is a bulk username and domain availability checker. Each name comes back with the same availability map across every TLD and platform you selected. Nothing is generated.

For AI agents and automations

Without a filter the actor returns every checked candidate, including names that are taken everywhere, because a name that is free on .com but taken on Instagram is still useful information. If you need names the user can actually register, set requireFreeOn (for example ["com", "x", "github"]) or minFreeChannels. The default example input ships with requireFreeOn: ["com"]. Channel ids are the TLD without the dot for domains (com, io, it) and lowercase platform ids for handles (x, youtube, github, …); appstore, wikipedia and dictionary are the collision checks.

Example tasks

Ready-made configurations you can open, copy and run as they are:

Input

FieldTypeDefaultWhat it does
briefstring–What you are naming: product, audience, tone. Required unless names is given.
namesstring[]–Check-only mode: your own candidates. Every name is returned (or every name passing the filter).
requireFreeOnstring[][]Return only names free on all these channels. Unknown statuses never pass.
minFreeChannelsinteger0Return only names free on at least this many channels.
maxResultsinteger10Names to return in generate mode.
tldsstring[]["com"]Domain extensions to check, without the dot. Only real top-level domains (IANA root zone) are checked; co.uk-style second-level extensions and unknown strings are ignored and listed in the summary.
platformsstring[]9 common onesHandles to check (full list below).
collisionsbooleantrueApp Store exact-name match, Wikipedia article, dictionary word.
styleenummixedmixed, coined, blends, real-words, short. Coined names are far more often free.
languagesstring[]["English"]Languages the names must be easy to say in.
minLength / maxLengthinteger4 / 10Letters per name.
mustContain / avoidstring[]–Fragments every name must contain one of / must never contain.
maxCandidatesinteger200Cap on generated candidates per run (max 500); the run also stops after three rounds without a match. Only returned names are charged.
includePricesbooleantrueFirst-year registration price in USD from a public registrar price list.
concurrencyinteger12Parallel checks.

Channels

Domains. Any of the 1,200+ extensions with a public registry service (RDAP, the registries' official protocol) are checked authoritatively: .com, .net, .org, .app, .dev, .ai, .xyz and most country codes. .io and .it are checked over WHOIS. Extensions without a public service (.co for example) fall back to DNS and are marked method: "dns": reliable for "taken", good but not perfect for "free", because registries may hold a name as reserved or premium. A DNS pre-check skips the registry call for names that are obviously taken, which keeps runs fast.

Handles, checked without login or proxies.

IdPlatformIdPlatform
xX (Twitter) handlegithubGitHub user or organization
youtubeYouTube @handlegithubpagesname.github.io
tiktokTikTok @handledockerhubDocker Hub user
twitchTwitch channelnpmnpm package name
snapchatSnapchat usernamepypiPyPI package name
telegramTelegram @usernamecratescrates.io crate
blueskyBluesky handle (name.bsky.social)rubygemsRubyGems gem
mastodonmastodon.social accountpackagistPackagist vendor
linkedinLinkedIn company page slugnetlifyname.netlify.app
vimeo, dribbble, soundcloud, flickr, giphycreator profileshuggingfaceHugging Face user or org
strava, goodreads, steam, hackernews, kickcommunitiesdevtoDEV Community user
gumroad, buymeacoffee, aboutmecreator pagesslackname.slack.com workspace
substack, bloggername.substack.com, name.blogspot.comshopifyname.myshopify.com

Collisions. appstore (an iOS app with exactly this name exists), wikipedia (an English Wikipedia article has this title; the detail tells you what it is), dictionary (the word has an English Wiktionary entry).

Not available yet: Instagram, Reddit, Medium, Product Hunt, Patreon, Etsy and Threads block datacenter traffic or need a login. They are planned as an opt-in with proxies. Tell us which one you need at support@agentsgearbox.com.

Pricing

Try it free. The first 3 names each calendar month are free for every Apify account, with nothing to enter: the actor keeps count in a small key-value store in your account (free-slice-brand-name-generator) and charges only from the 4th on. The free results are real results you keep; the counter resets on the first of each month.

Pay per event, no subscription. The only paid event is a returned name: $0.003 per row. Generation rounds, DNS, registry, handle and collision checks, filtered-out candidates and the summary are free. Apify plans above Free get an automatic discount on every event (10% to 40%).

RunCandidates checkedReturnedCost
10 names free on .com, 3 TLDs and 9 platforms~6010$0.03
25 names free on .com, x and github~30025$0.08
Check 100 of your own names across 5 TLDs and 15 platforms100100$0.30
10 names, no filter (full map for every candidate)1010$0.03

A run that returns nothing costs nothing. Typical run time is 15 to 90 seconds. Apify's free plan includes $5 of monthly usage, which is more than 1,500 returned names.

Code

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('agentsgearbox/brand-name-generator').call({
brief: 'A budgeting app for freelancers in Spain. Friendly, simple, trustworthy.',
requireFreeOn: ['com', 'x', 'github'],
maxResults: 10,
tlds: ['com', 'es', 'app'],
platforms: ['x', 'github', 'youtube', 'tiktok', 'telegram', 'npm'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const n of items.filter((i) => i.type !== 'summary')) console.log(n.name, n.freeDomains.map((d) => d.domain), 'taken on', n.takenOn);

Python

from apify_client import ApifyClient
client = ApifyClient(token=os.environ["APIFY_TOKEN"])
run = client.actor("agentsgearbox/brand-name-generator").call(run_input={
"names": ["lumora", "tabellu", "ospitella"], # check-only mode
"tlds": ["com", "io"],
"platforms": ["x", "github", "youtube", "telegram"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("type") != "summary":
print(item["name"], item["freeCount"], "/", item["checkedCount"], "free:", item["freeOn"])

cURL

curl -s -X POST "https://api.apify.com/v2/acts/agentsgearbox~brand-name-generator/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"brief":"A newsletter about Italian cooking for busy parents","requireFreeOn":["com","substack"],"maxResults":5,"tlds":["com","it"],"platforms":["substack","x","youtube"]}'

Call it from an AI agent

Give your agent hands. Instead of fetching pages, getting blocked and reasoning over HTML, it calls this actor as a tool and gets verified results back as JSON, priced per result. Checking whether 120 candidate names are free means 120 page fetches and a few hundred thousand tokens, and most platforms block an agent anyway. This actor does it in about 40 seconds for $0.03 per ten verified names.

  • MCP, this actor only: add https://mcp.apify.com?tools=agentsgearbox/brand-name-generator to Claude Desktop, Claude Code, Cursor or any MCP client (with your Apify token), then ask for "ten names for my budgeting app that are free on .com, X and GitHub".
  • MCP, all agentsgearbox actors: https://mcp.apify.com?tools=agentsgearbox/telegram-channel-scraper,agentsgearbox/google-play-reviews-scraper,agentsgearbox/substack-scraper,agentsgearbox/google-news-scraper,agentsgearbox/brand-name-generator,agentsgearbox/ai-readiness-audit,agentsgearbox/company-lookup,agentsgearbox/app-intelligence,agentsgearbox/app-store-reviews-scraper
  • No Apify account? This actor is eligible for Apify's agentic payments: an agent can buy a spend-capped token through agi.apify.com (x402, MPP or Skyfire) and call the API directly.
  • Prices are per result and known in advance, so the agent can set a spending limit; error records come back as data instead of failed runs.

When calling it from an agent, pass requireFreeOn whenever the user needs registrable names; read freeOn, takenOn and freeDomains from each row and hint from the summary.

Reading the results

  • score (0–100) blends pronounceability (40%), length (25%) and the share of free channels (35%). It is a sorting aid, not a judgment.
  • pronounceability penalises consonant clusters, odd vowel ratios and awkward endings. syllables is an estimate.
  • method on a domain tells you how the verdict was reached: rdap and whois are authoritative, dns is an inference.
  • unknownOn lists channels that did not answer reliably. The summary's channelsWithMostlyUnknownResults flags a platform that throttled the whole run; lower concurrency or drop it from platforms.
  • A free domain can still be a registry premium name with a higher price. Names shorter than five letters and dictionary words are the usual suspects; the price shown is the standard registration price.

Troubleshooting

SymptomCauseFix
requireFreeOn contains channels that are not being checkedA filter id is not in tlds/platforms, or collisions is offAdd the channel to the checked lists or use a valid id from the error message
Summary says EMPTY or stoppedBy: "noMatches"Nothing passed the filter in three consecutive rounds, so the run stopped earlyFewer channels in requireFreeOn, minFreeChannels instead, style: "coined", longer maxLength
Many unknown on one platformPlatform throttled our requestsLower concurrency; the next run usually recovers
name not allowed on this platformThe name breaks that platform's rules (length, characters)Expected; it is reported as unknown, never as free
Generated names look Italian/Spanishlanguages steers the soundSet languages: ["English"] only

Limits and honesty

  • Verified channels can change their anti-bot rules; when one does, its status becomes unknown rather than wrong, and we update the check.
  • Trademarks are not checked. The Wikipedia and App Store collisions catch the obvious conflicts; run a trademark search (EUIPO, USPTO) before you commit to a name.
  • Handles are checked against public profile endpoints, so very new accounts may take a few minutes to appear.
  • Check-only mode handles up to 500 names per run.

More from agentsgearbox

  • Telegram Channel Scraper: public Telegram channels as JSON, no API key.
  • Google Play Reviews Scraper: Google Play reviews with replies and versions, any market.
  • Substack Scraper: Substack posts with full text and comments, custom domains too.
  • Google News Scraper: Google News with real publisher URLs and full text.
  • AI Readiness Audit: how well AI search engines and agents can read a site: crawler access, llms.txt, structured data, content without JavaScript, scored with fixes.
  • Company Lookup: one row per domain with legal identity and VAT validation, contacts, socials, tech stack, open jobs, apps, news and Wikidata facts.
  • App Intelligence: App Store and Google Play in one run: search, top charts, full app details and each app's twin on the other store.
  • App Store Reviews Scraper · iOS + Google Play, Any Country: Reviews of any iOS or Android app from both stores in one run: stars, text, version, votes, developer replies, since-last-run checkpoint, rating trend per app..

All of them are pay-per-event, run without a browser, and are compared with their alternatives on agentsgearbox.com.

Support

Email support@agentsgearbox.com or use the issues tab. Compare this actor with alternatives on agentsgearbox.com.