GET /domain/{domain}

Domain availability API

Find out whether a domain is registered.

Try it

Example response/domain/gmail.com
{
  "domain": "gmail.com",
  "available": false,
  ?deep=true
}
See a registration example

The registrar and registration dates. Included on paid plans.

Example · /domain/gmail.com?deep=true

{
  "deep": {
    "registration": {
      "registered": true,
      "created": "1995-08-13T04:00:00.000Z",
      "updated": "2026-07-11T10:11:23.000Z",
      "expires": "2027-08-12T04:00:00.000Z",
      "registrar": "MarkMonitor Inc.",
      "status": [
        "client delete prohibited",
        "client transfer prohibited",
        "client update prohibited",
        "server delete prohibited",
        "server transfer prohibited",
        "server update prohibited"
      ],
      "dnssec": false
    }
  }
}

1M requests · $20/mo. Get started

What comes back.

available

true if unregistered, false if taken, null if the registration check is unavailable

deep.registration

Registration details: registered, created, updated, expires, registrar, status, and dnssec. Omitted if unavailable

1

Pass a domain

Availability comes back on every call.

2

Read the result

Registered, unregistered, or unknown when the check is unavailable.

3

Get more context

Paid deep adds the registrar, registration dates, and status.

Coverage

Domain registration status. Paid deep adds registrar, dates, and status.

Check a domain's registration status. available is true when the registry reports no registration, false when it is registered, and null when the check is unavailable. Results are cached.

On paid plans, deep adds registration details: registrar, creation and expiry dates, and status. Use /dns/{domain} for DNS records or /mx/{domain} for mail routing.

SPEED

How long /domain takes.

Median time to first byte over the last seven days. Warm requests, measured every 30 minutes. Live verification and other request variants can take longer.

US

254ms

EU

489ms

APAC

257ms

LatAm

198ms

ME

204ms

See live status →

Make your first request.

One key works across the APIs. Copy a request in your language and get JSON back.

curl "https://api.parseapi.com/domain/gmail.com" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Parse-Version: 2.0.0"
// Example response · 200
{
  "domain": "gmail.com",
  "available": false
}

API referenceSDKsKeys and authentication

Every response field

Response fields

domain
Hostname checked
available
true if unregistered, false if taken, null if the registration check is unavailable

Deep fields

deep.registration
Registration details: registered, created, updated, expires, registrar, status, and dnssec. Omitted if unavailable

QUESTIONS

What comes back on every call?
The domain and available: true when the registry reports no registration, false when it is registered, or null when the check is unavailable.
Can I register every domain marked available?
Confirm with a registrar before checkout. An unregistered name can still be reserved or restricted by the registry.
Is every call a fresh registry request?
Registered results can be reused for up to one hour, and unregistered results for up to five minutes. After that, a lookup checks the registry again. If the check cannot complete, available returns null.
What does deep add?
Registration details: registrar, creation, update and expiry dates, status, and DNSSEC registration information. Deep is included on paid plans.
Where do I look up DNS records?
Use GET /dns/{domain} for DNS records and TTLs, or GET /mx/{domain} for the ordered mail server list.

Check one domain with the domain availability checker or a whole file with bulk domain lookup.

Is it taken?

Domain availability on every plan. Registration details on paid plans.

Start includes 1M API requests a month for $20/mo.