# Brandname Maker Brandname Maker is a pay-per-call product naming and Hero (hero copy) API for AI agents and developers. Each API call returns customer-fit name shortlists with real domain availability checks via Fastly registry lookups on .com, .app, and .ai TLDs. ## What it does The API generates brand names using a structured naming method: it works from customer feelings → real-life scenes where that feeling arrives → names borrowed from those moments. Each naming pass sweeps approximately 30 candidates, narrows to a 10–15 name + tagline table with reasoning, then produces a final shortlist of 3–6 names. Each shortlist name includes a consultant-style rationale explaining where the name comes from, what a stranger hears first, why it fits this customer, what the tagline does, and the one caveat. Domain checks: real Fastly Domain Research registry lookups on .com and .app (checked for every shortlist name), with .ai as a strong third option. When bare brand domains are unavailable, the API may check prefix variants (e.g., getsecondreader.com) that preserve the brand word. Domain checks are capped at approximately 8–12 per pass. These are registry availability checks only — not trademark clearance or legal advice. ## Pricing Live pricing as of September 2026 (same rails for `/name` and `/hero`; separate charges per product): - Solana USDC: $0.25 per run - Tempo: $0.25 per run - Stripe card or Link: $1.00 per run - Base USDC (x402): $0.25 per run Card payments via Stripe are refunded automatically if the paid handler fails (including hero `no_ship_options`). ## How agents pay The API uses the Machine Payments Protocol (MPP). Unpaid requests return HTTP 402 with a WWW-Authenticate: Payment challenge listing accepted payment methods. Agents pick one rail, pay, and retry the POST with Authorization: Payment . A successful response includes a Payment-Receipt header. A naming pass takes a few minutes. If it is not done within about 20 seconds, the paid POST returns HTTP 202 with `job_id` and `poll_url` (and the Payment-Receipt). GET `poll_url` every 10 seconds until it returns 200 with the naming pass. Do not pay again: resending the same paid request returns the same job. Results are kept for 24 hours. Lost the 202? With Link, run `npx @stripe/link-cli spend-request retrieve --include shared_payment_token` and GET `https://brandnamemaker.com/api/v1/name?job=`. For card or Link payments without a crypto wallet, agents can use the Stripe Link CLI: ``` npx @stripe/link-cli mpp pay https://brandnamemaker.com/api/v1/name \ -X POST \ --data '{"brief": "your brief here"}' ``` The Link CLI reads the 402 challenge, asks the Link account holder to approve the spend on their phone (10-minute approval window), retries with the credential, and prints the response (usually the 202 with `poll_url`). Fully autonomous agents with MPP-compatible wallets can handle the payment flow programmatically on Solana USDC, Tempo, or Base USDC. ## API endpoints ### Naming — `/api/v1/name` - GET https://brandnamemaker.com/api/v1/name — Unpaid discovery endpoint (returns metadata, payment methods, and prices) - POST https://brandnamemaker.com/api/v1/name — Paid naming pass (requires payment) - GET https://brandnamemaker.com/api/v1/name?job= — Unpaid poll for a paid pass (202 while running, 200 with the result) Request JSON: ```json { "brief": "what it is, who it's for, rejected names", "product": "optional one-sentence product description", "customer": "optional customer-as-a-person (age, trade, week, tribe)", "rejected": "optional rejected names and why" } ``` Response includes: structured shortlist with rationales, full naming analysis (feeling table, customer experiences, passerby test, collision notes), and Fastly domain status for each shortlist TLD. **Note:** Each shortlist entry may include a `tagline` field — that is the naming-skill ≤3-word “what it is” line. It is **not** the Hero product below. ### Hero — `/api/v1/hero` (separate paid pass) Product label: **Hero** / Hero copy / “hero pass”. Response fields are `headline` + `subheadline`. Do not call this product Headline (reserved for a future page-headline product). - GET https://brandnamemaker.com/api/v1/hero — Unpaid discovery (payment methods, schema) - POST https://brandnamemaker.com/api/v1/hero — Paid hero headline + subheadline pass - Compatibility: `/api/v1/tagline` aliases the same handlers for one release Claude drafts 3–5 headline/subheadline pairs; Jev (TypeSafe System One) judges; the API returns **only** options that pass the ship gate. Jev does not write copy. Agent-only in v1 (no homepage card form). Pricing mirrors naming (env-overridable via `HERO_CRYPTO_USD` / `HERO_CARD_CENTS`): Solana/Tempo/Base **$0.25**, card/Link **$1.00**. Do **not** bundle with `/name` — two separate charges. Typical chain: pay `/name` → pick a name → pay `/hero` with `{ brand_name, audience, brief }`. Request JSON: ```json { "brand_name": "ViewSync", "audience": "Independent real estate agents", "brief": "Scheduling software for agents who waste hours booking showings; automate calendars with AI-powered calendar; save ~10 hrs/week", "count": 4 } ``` Required: `brand_name`, `audience`, and either `brief` or all of `problem`, `category`, `capabilities`, `features`, `benefits`. `count` optional (clamp 3–5, default 4). Success response returns only ship-passing `options[]` (headline, subheadline, scores). If zero options pass after one rewrite round: HTTP 502 `error: "no_ship_options"` (Stripe card refunds; crypto already settled). Wallet-free Link CLI example: ``` npx @stripe/link-cli mpp pay https://brandnamemaker.com/api/v1/hero \ -X POST \ --data '{"brand_name":"ViewSync","audience":"Independent real estate agents","brief":"..."}' ``` ### Feedback — `/api/v1/feedback` (unpaid) Report bugs, unclear docs, payment trouble, or weak naming results. No auth, no payment. The operator reads every submission. - GET https://brandnamemaker.com/api/v1/feedback — Unpaid discovery (schema) - POST https://brandnamemaker.com/api/v1/feedback — Send feedback (limit ~20/min per IP) Request JSON (only `message` is required; extra fields are accepted): ```json { "message": "1–4000 chars: what happened or what you want", "category": "bug | docs | payment | naming-quality | other", "contact": "optional email or agent id", "context": { "endpoint": "/api/v1/name", "job_id": "optional", "payment_reference": "optional spend request / PaymentIntent / SPT id", "http_status": 402, "user_agent": "optional" } } ``` Response: `200 {"ok": true, "id": ""}`. Missing or empty `message`: `400`. Too many requests: `429`. To reach a human directly: kevin@brandnamemaker.com ``` curl -X POST https://brandnamemaker.com/api/v1/feedback \ -H "Content-Type: application/json" \ -d '{"message": "Paid with Link but lost the 202", "category": "payment", "context": {"endpoint": "/api/v1/name", "payment_reference": "lsrq_..."}}' ``` ## Agent resources - OpenAPI 3.1: https://brandnamemaker.com/openapi.json - Remote MCP (stateless Streamable HTTP): https://brandnamemaker.com/mcp MCP tools: `name`, `hero`, and `poll` (fetch a naming job you already paid for, no extra charge). Paid tools accept optional `authorization: "Payment "`. Without it they return the endpoint's 402 challenge. Pay with `npx @stripe/link-cli mpp pay` or an MPP wallet, then retry with authorization. If the payment client already returns 200/202, use that result. Poll pending jobs without paying again. Hero currently returns synchronously and has no job polling. - Homepage: https://brandnamemaker.com/ - For agents page: https://brandnamemaker.com/for-agents - Agent skill (copyable instructions): https://brandnamemaker.com/#prompt - Complete naming skill reference: https://brandnamemaker.com/api/v1/name (GET for discovery) The homepage includes a complete agent skill that agents can copy and use as instructions for calling the API. The skill explains when to call the API, how to gather a brief, the payment flow, and what to expect in the response. ## Example agent prompts for naming use cases 1. **Product launch naming** "I'm building a static analysis tool for JavaScript developers who ship features weekly. Need a product name that feels like having an experienced developer review your code before it goes out. Already rejected 'BugFinder' (too obvious) and 'CodeGuard' (too generic)." 2. **Rebrand or pivot** "Our API monitoring service is pivoting from developer tools to helping operations teams sleep at night. Target customer is an SRE, age 32, carrying a pager, who wants to know problems before their manager does. Need a name that sounds like the reliable person on their team, not another monitoring dashboard." 3. **Feature or sub-product naming** "Adding a collaboration feature to our design tool. It's for designers who need to get sign-off from product managers without endless Slack threads. Want a name that captures the moment when everyone's on the same page. Should feel lighter than 'Approval Flow' or 'Review Mode'." ## Technical details The API runs on Next.js (App Router) deployed to Fly. Payment handling uses mppx for MPP support across multiple rails. Naming passes are powered by Claude (Anthropic Messages API) using the vendored naming method from content/SKILL.md. Domain checks via Fastly Domain Research API. Stack: Next.js 16, TypeScript, Tailwind CSS, MPP (mppx), Stripe (cards/Link via Shared Payment Tokens), x402 (Base USDC legacy rail), Anthropic Messages API, Fastly Domain Research. ## What this is not - Not a free name generator or brainstorming tool - Not trademark clearance or legal advice (consult a trademark attorney for IP clearance) - Not a naming consultant replacement (it's an API for workflow integration) - Not a domain registrar (it reports availability only; registration is separate) ## Use cases for agent integration - Coding agents helping founders name products during development - Workflow automation tools that generate names as part of business setup flows - Development tools that suggest package, module, or feature names - Marketplace or directory builders that need programmatic naming for categories or features - Any autonomous system where naming is a workflow step rather than a standalone task ## Contact Built by True Frontier: https://truefrontierapps.com Production domain: https://brandnamemaker.com Email: kevin@brandnamemaker.com For agent integration questions or API issues, refer to the agent skill at https://brandnamemaker.com/#prompt or discovery: GET /api/v1/name and GET /api/v1/hero. To report a bug or send feedback, POST https://brandnamemaker.com/api/v1/feedback (unpaid).