FoundName Start

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

ToolWhat it doesParameters
check_name
live 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_report
local · 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_kit
local · 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)
styles
lang

Markets for check_name

marketChecked 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.