Developers
FoundName API & MCP server
Use the same checks that power foundname.app from your own scripts, or let an AI assistant call them as tools. Every call needs a personal API key, which comes with FoundName Pro. Results are availability signals, not a legal trademark clearance.
1. Get an API key
API access is part of FoundName Pro. Open foundname.app, get or activate Pro, then Settings → API keys → Create key. Keys stop working when the Pro license ends. The key (fn_…) is shown once; only a hash is stored. Up to 5 active keys per browser; revoke them in the same place.
2. Tools
| Tool | What it does | Parameters |
|---|---|---|
check_namelive checks · 30 burst, 6/min |
Live availability check of a name: App Store, Google Play and the domain TLDs of a market (RDAP-confirmed), plus a deterministic sound report in German and English. |
name (required)market |
sound_reportlocal · 120 burst, 2/s |
Deterministic pronounceability/"sounds good" report for a name in German and English: score 0-10, bucket and itemized criteria. No network calls. |
name (required) |
starter_kitlocal · 120 burst, 2/s |
Brand starter kit for a name: color palette, SVG wordmark and ready-to-use prompts for coding, image and writing tools. |
name (required)styleslang |
Markets for check_name
| market | Checked domains |
|---|---|
dach | .com, .de, .app |
ch | .com, .ch, .app |
us | .com, .io, .app |
uk | .com, .co.uk, .app |
fr | .com, .fr, .app |
nl | .com, .nl, .app |
ai | .com, .ai, .io |
3. REST API
curl -H "Authorization: Bearer fn_YOUR_KEY" \ "https://foundname.app/api.php?op=check_name&name=Lumora&market=dach"
Response:
{
"version": 1,
"result": {
"name": "Lumora",
"market": "dach",
"clean": false,
"appstore": "frei",
"play": "uebersprungen (bereits belegt)",
"domains": { "com": "belegt(web,200)", "de": "frei(rdap)", "app": "frei(rdap)" },
"sound": { "de": { "score": 8.5, "bucket": "excellent", … }, "en": { … } }
}
}
Raw status strings are German by design (frei = free, belegt = taken, unsicher = unclear). A value starting with frei is RDAP-confirmed. Errors return {"error": "…", "code": "…"} with HTTP 400, 401 or 429; code is a stable machine-readable identifier (e.g. rate_limited), error a human-readable message. GET /api.php?op=tools lists all tools without a key.
4. MCP server
Endpoint: https://foundname.app/mcp.php (Streamable HTTP, JSON responses, protocol versions 2025-06-18, 2025-11-25 and 2025-03-26).
Claude Code
claude mcp add --transport http foundname https://foundname.app/mcp.php \ --header "Authorization: Bearer fn_YOUR_KEY"
Generic JSON config
{
"mcpServers": {
"foundname": {
"type": "http",
"url": "https://foundname.app/mcp.php",
"headers": { "Authorization": "Bearer fn_YOUR_KEY" }
}
}
}
Then ask your assistant, for example: "Brainstorm ten names for a meditation app and check the three best with FoundName."
5. Fair use
Live checks hit public registries and stores, so they are rate-limited per key. Please cache results on your side; the service caches every channel for 15 minutes anyway.