GET /domain/{domain}

Domain 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 check details. Unregistered domains include registered: false and omit the other details. Omitted when the check is 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.

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

domainstring
Hostname checked
availableboolean or null
true if unregistered, false if taken, null if the registration check is unavailable

Deep fields

deep.registrationobject
Registration check details. Unregistered domains include registered: false and omit the other details. Omitted when the check is unavailable
deep.registration.registeredboolean
Whether the domain was registered at the cached check. False does not guarantee a registrar will sell it
deep.registration.createdstring or null
Registry registration timestamp, or null when unknown. Omitted for an unregistered domain
deep.registration.updatedstring or null
Registry last-change timestamp, or null when unknown. Omitted for an unregistered domain
deep.registration.expiresstring or null
Registry expiration timestamp, or null when unknown. Omitted for an unregistered domain
deep.registration.registrarstring or null
Reported registrar name, or null when unknown. Omitted for an unregistered domain
deep.registration.statusarray
Reported registration status codes. Empty when none are reported. Omitted for an unregistered domain
deep.registration.dnssecboolean
Whether the registry reports a signed DNS delegation. Omitted for an unregistered domain

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.