← Docs

Domain API

Whether a domain is available to register.

Check whether a domain is registered. Core returns available from the registration check · true if unregistered, false if taken, null if the registry couldn't be reached.

Registered answers are reused for up to one hour; unregistered answers for up to five minutes. Expired answers require a new check. An unregistered result does not guarantee that a registrar will sell the name.

On paid plans, ?deep=true adds the registrar, registration dates, and status. For DNS records and TTLs on every plan, use DNS. For mail hosts alone, use MX.

Lookup

GET
api.parseapi.com/domain/{domain}
Available to register. Deep adds registration details
Explore
Parameters 2
domainstring · path · required

Domain name

deepboolean · query · optional

When true, include optional detail in deep. Access depends on the endpoint: pooled detail, an included paid-plan profile, or a metered check. Core values stay unchanged.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.domain("gmail.com");
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "domain": "gmail.com",
  "available": false
}

Response fields

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

Deep

On paid plans, deep.registration adds the registrar, registration dates, status and DNSSEC flag. Dates and the registrar can be null. Unregistered domains include only registered: false. Registration is omitted when the check is unavailable. Deep uses the same cached check as core.

Run this Deep example with your own key. Check this API's access requirements and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.domain("gmail.com", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "domain": "gmail.com",
  "available": false,
  "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
    }
  }
}

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? Email