API Documentation
Last updated: April 11, 2026
Agent-ready interface
Brandomica exposes the same safety workflow through web UI, REST, and MCP. Use this page as the contract for integrations and automated brand decision flows.
Quickstart
One request to check everything. Replace acme with your brand name:
curl https://www.brandomica.com/api/check-all?name=acme
Returns JSON with domains, social, trademarks, app stores, SaaS, Google, score, safety, linguistic, and phonetic results.
Response shape (abbreviated):
{
"name": "acme",
"domains": [{ "domain": "acme.com", "available": false }],
"social": [{ "platform": "GitHub", "available": false, "url": "..." }],
"trademarks": [{ "source": "USPTO", "available": false, "count": 42 }],
"score": { "score": 3, "maxScore": 10, "confidence": "high" },
"safety": { "safetyScore": 28, "overallRisk": "high", "blockers": [...] },
"mode": "full"
}Error shape (all endpoints):
{ "error": "Missing 'name' query parameter" } // 400
{ "error": "Rate limit exceeded. Try again in a minute." } // 429
{ "error": "Internal error running brand checks" } // 500Brand name format
All endpoints accept a name query parameter. Names must be 1–63 characters, lowercase alphanumeric with optional hyphens, no leading/trailing hyphens.
Regex: ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$
REST endpoints
| Endpoint | Description |
|---|---|
| GET /api/check-all?name= | All checks + score + safety assessment (supports ?mode=quick) |
| GET /api/check-domains?name= | Domain availability + pricing (6 TLDs) |
| GET /api/check-social?name= | GitHub API + Serper site-index checks for X, TikTok, Instagram, LinkedIn |
| GET /api/check-trademarks?name= | USPTO automated (Turso FTS5) + EUIPO automated (Trademark Search API, sandbox active) |
| GET /api/check-google?name= | Web presence via Google Search |
| GET /api/check-appstores?name= | App Store automated; Google Play returns manual-link fallback |
| GET /api/check-saas?name= | npm, PyPI, crates.io, RubyGems, NuGet, Homebrew, Docker Hub automated; ProductHunt API when configured |
| GET /api/check-typosquat?name= | Typosquat variant detection with .com domain availability |
| GET /api/filing-readiness?name= | Filing readiness summary (verdict, risk, conflicts, confidence) |
| GET /api/brand-report?name= | Full brand safety report for due diligence (JSON) |
| GET /api/health | Component health status (19 checks, pass/limited/warn/fail) |
| POST /api/batch-check | Check 2-50 names in one call (body: {names, mode?}). Defaults to quick mode, returns results sorted by score |
| POST /api/compare-brands | Compare 2-5 names side-by-side (body: {names}). Returns per-brand scores + recommendation |
Individual endpoints return JSON with a results array. The /api/check-all endpoint returns a flat object with all categories. Base URL: https://www.brandomica.com
X/Twitter, TikTok, Instagram, and LinkedIn are checked via Serper site: index lookups. These return false (taken) or null (manual check) — never true, because absence from Google's index does not confirm availability. Google Play remains manual-link only. ProductHunt is automated only when PRODUCTHUNT_TOKEN is configured. npm uses prefix search (e.g. “acme” finds “acme-cli”).
Tri-state convention
Availability fields use three values:
true— available (green)false— taken (red)null— unknown, check manually (amber). Excluded from score.
A null value can mean upstream failure, missing integration config, or a conservative fallback (for example, LinkedIn index inconclusive or Google Play manual-only).
MCP server
Brandomica Lab exposes 12 tools via the Model Context Protocol. Two transport options:
Stdio (local)
npx brandomica-mcp-server
Remote (streamable HTTP)
https://www.brandomica.com/mcp
Tools: brandomica_check_all, brandomica_assess_safety, brandomica_filing_readiness, brandomica_brand_report, brandomica_compare_brands, brandomica_batch_check, brandomica_check_domains, brandomica_check_social, brandomica_check_trademarks, brandomica_check_google, brandomica_check_appstores, brandomica_check_saas
OpenAPI spec
A full OpenAPI 3.1 specification is available for ChatGPT Custom GPT integration and other OpenAPI-compatible tools.
Rate limits
Brandomica Lab runs on shared infrastructure and enforces app-level rate limits per client IP:
- MCP endpoint (
/mcp): 30 requests/minute burst + 50 requests/hour sustained - REST endpoints: per-endpoint limits vary (typically 10-30 requests/minute)
- Brand report (
/api/brand-report): 10 requests/minute
Upstream APIs also apply their own limits (e.g. Vercel Domains: 20 availability + 100 price requests/min). Rate-limited responses return HTTP 429 with a JSON error body.
Developer links