API

Namegrid.co API

Generate brandable domain names and check availability programmatically. Two endpoints, no authentication required, JSON in and out.

Base URL

https://Namegrid.co

Content type

application/json

Authentication

None required

POST/api/v1/search

Generate domain name ideas from a text prompt and check their availability across the specified extensions. Returns AI-ranked results sorted by brand quality.

Request body

ParameterTypeRequiredDescription
promptstringYesA description of your product, company, or idea. Max 2000 characters.
extensionsstring[]NoTLDs to check (e.g. [".com", ".io"]). Up to 4. Defaults to [".com", ".io", ".ai", ".co"].
countnumberNoNumber of domain prefixes to generate. 1–100. Defaults to 100.
stylestringNo"balanced" (default) for clean exact-match names, or "com_workarounds" for tasteful modifiers like get, try, labs.

Example request

curl -X POST https://Namegrid.co/api/v1/search \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "AI-powered code review tool for teams",
    "extensions": [".com", ".io"],
    "count": 10,
    "style": "balanced"
  }'

Example response

{
  "results": [
    {
      "prefix": "codeowl",
      "lane": "brandable_blends",
      "domains": {
        ".com": { "status": "unavailable", "detail": "Taken via DNS delegation." },
        ".io": { "status": "available" }
      }
    },
    {
      "prefix": "reviewpilot",
      "lane": "functional_compounds",
      "domains": {
        ".com": { "status": "unavailable", "detail": "Taken via DNS delegation." },
        ".io": { "status": "available" }
      }
    }
  ],
  "rankings": [
    {
      "domain": "codeowl.io",
      "prefix": "codeowl",
      "lane": "brandable_blends",
      "score": 94,
      "reason": "Short, memorable, and evokes wisdom."
    }
  ],
  "meta": {
    "prompt": "AI-powered code review tool for teams",
    "extensions": [".com", ".io"],
    "count": 10,
    "total_checked": 20,
    "available_count": 7,
    "duration_ms": 45200,
    "timed_out": false
  }
}

Response fields

ParameterTypeRequiredDescription
resultsarrayYesGenerated domain prefixes with availability status per extension.
results[].prefixstringYesThe generated domain prefix.
results[].lanestringYesNaming style: problem_descriptive, adjacent_words, functional_compounds, brandable_blends, abstract_brands, or premium_names.
results[].domainsobjectYesMap of TLD to { status, detail? }. Status is "available", "unavailable", or "error".
rankingsarrayYesAI-ranked available domains sorted by brand quality score (1–100).
metaobjectYesRequest metadata including count, total checked, available count, duration, and timeout status.
POST/api/v1/check

Check availability for a list of specific domain names. No AI generation or ranking \u2014 just fast availability checks.

Request body

ParameterTypeRequiredDescription
domainsstring[]YesArray of full domain names to check (e.g. ["example.com", "acme.io"]). Up to 100.

Example request

curl -X POST https://Namegrid.co/api/v1/check \
  -H "Content-Type: application/json" \
  -d '{
    "domains": [
      "google.com",
      "xyznotreal123.com",
      "acme.io",
      "trynamegrid.dev"
    ]
  }'

Example response

{
  "results": [
    { "domain": "google.com", "status": "unavailable", "detail": "Taken via DNS delegation." },
    { "domain": "xyznotreal123.com", "status": "available" },
    { "domain": "acme.io", "status": "unavailable", "detail": "Taken via DNS delegation." },
    { "domain": "trynamegrid.dev", "status": "available" }
  ],
  "meta": {
    "total": 4,
    "available": 2,
    "unavailable": 2,
    "error": 0,
    "duration_ms": 3200
  }
}

Response fields

ParameterTypeRequiredDescription
resultsarrayYesAvailability results in the same order as the input.
results[].domainstringYesThe domain name that was checked.
results[].statusstringYes"available", "unavailable", or "error".
results[].detailstringNoAdditional context (e.g. how the domain was detected as taken).
metaobjectYesSummary counts (total, available, unavailable, error) and duration_ms.

Error handling

Errors return a JSON object with an error field and an appropriate HTTP status code.

// 400 Bad Request
{ "error": "\"prompt\" is required: a short description of your product or company." }

// 504 Gateway Timeout
{ "error": "Search timed out after 3 minutes." }

// 500 Internal Server Error
{ "error": "Search failed." }
ParameterTypeRequiredDescription
400Bad RequestNoInvalid or missing parameters.
504Gateway TimeoutNoSearch exceeded the timeout (3 min for search, 2 min for check).
500Server ErrorNoUnexpected server-side failure.

Notes