GET /domain/{domain}
Domain API
Find out whether a domain is registered.
Try it
{
"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
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.