Discover/Namegrep API
live

Namegrep APInamegrep.com

Search for available domain names across .com, .net, .org, .co, and .io extensions using regular expression patterns to find the perfect match for your project. Instantly discover which domain variations are currently available so you can register your ideal web address before someone else does.

This API takes change requests — .
Endpoint health
monitored
search_domains
Checks pendingself-healing
Endpoints
1
Updated
3h ago
Try it
Regular expression pattern to match domain names against (e.g. '^tech[a-z]{2}$' for 6-letter names starting with 'tech'). Must produce fewer than 50,000 matches.
api.parse.bot/scraper/cc2caa1d-c089-4f45-b72e-ba4b4e94cdf8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/cc2caa1d-c089-4f45-b72e-ba4b4e94cdf8/search_domains?pattern=%5Ecloud%5Ba-z%5D%7B2%7D%24' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace namegrep-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: NameGrep SDK — bounded, re-runnable; every call capped."""
from parse_apis.namegrep_com_api import NameGrep, ParseError

client = NameGrep()

# Search for 6-letter domain names starting with "cloud"
for domain in client.domains.search(pattern="^cloud[a-z]{2}$", limit=3):
    print(domain.name, domain.com_available, domain.net_available, domain.io_available)

# Get the first result for a narrower pattern
result = client.domains.search(pattern="^data[a-z]{3}$", limit=1).first()
if result:
    print(result.name, result.com_available, result.org_available, result.co_available)

# Typed error handling
try:
    for d in client.domains.search(pattern="^zen[a-z]{2}$", limit=2):
        print(d.name, d.com_available)
except ParseError as e:
    print(f"error: {e}")

print("exercised: domains.search")
All endpoints · 1 totalmissing one? ·

Regex search over the domain-name dictionary. Returns all matching second-level labels (up to 50,000) with per-TLD registration status for .com, .net, .org, .co, and .io. The pattern is a PCRE-style regex matched against the full label (anchor with ^ and $ for exact length). Results are returned in a single page ordered alphabetically.

Input
ParamTypeDescription
patternrequiredstringRegular expression pattern to match domain names against (e.g. '^tech[a-z]{2}$' for 6-letter names starting with 'tech'). Must produce fewer than 50,000 matches.
Response
{
  "type": "object",
  "fields": {
    "count": "total number of matching domain names",
    "domains": "array of domain objects with name and per-TLD availability booleans"
  },
  "sample": {
    "data": {
      "count": 676,
      "domains": [
        {
          "name": "techaa",
          "co_available": true,
          "io_available": true,
          "com_available": false,
          "net_available": true,
          "org_available": false
        },
        {
          "name": "techab",
          "co_available": true,
          "io_available": true,
          "com_available": false,
          "net_available": false,
          "org_available": true
        }
      ]
    },
    "status": "success"
  }
}

About the Namegrep API

The Namegrep API on Parse exposes 1 endpoint for the publicly available data on namegrep.com. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.