Domain WHOIS API
Look Up Any Domain’s Current WHOIS in One Call.
The Domain WHOIS API takes a domain and returns the registration record as the registry serves it right now: registrar, creation, update and expiry dates, name servers and status codes, raw and parsed in one response.
Request
GET /
Response · 200 OK
Raw
- Domain Name: DEEPINFO.COM
- Registrar: …
- Creation Date: …
- Registry Expiry Date: …
- Name Server: …
Parsed
-
registrargodaddy online services cayman islands ltd.
-
create_date2001-06-05T02:57:08Z
-
update_date2025-08-19T07:33:45Z
-
expiry_date2028-10-20T11:59:59Z
-
name_serversmay.ns.cloudflare.com simon.ns.cloudflare.com
-
domain_statusclientdeleteprohibited clientrenewprohibited
-
Checks
parse_codenull · parsed cleanly
check_date 2026-09-22T12:25:50Z
One Endpoint Takes One Parameter.
The raw block is kept next to the parsed one, so nothing a registry returns is lost to parsing.
| Parameter | Type | Description | |
|---|---|---|---|
domain | string | Required | A registered domain, for example deepinfo.com. |
Request
curl "https://api.deepinfo.com/v1/lookup/whois?domain=deepinfo.com" \
-H "apikey: YOUR_API_KEY"import requests
r = requests.get(
"https://api.deepinfo.com/v1/lookup/whois",
params={"domain": "deepinfo.com"},
headers={"apikey": "YOUR_API_KEY"},
)
record = r.json()["parsed"]
print(record["registrar"], record["expiry_date"])const r = await fetch(
'https://api.deepinfo.com/v1/lookup/whois?domain=deepinfo.com',
{ headers: { apikey: 'YOUR_API_KEY' } }
)
const { parsed } = await r.json()
console.log(parsed.registrar, parsed.expiry_date)
Response
{
"domain_name": "deepinfo.com",
"raw": "Domain Name: DEEPINFO.COM\n Registry Domain ID: …",
"parsed": {
"create_date": "2001-06-05T02:57:08Z",
"update_date": "2025-08-19T07:33:45Z",
"expiry_date": "2028-10-20T11:59:59Z",
"registrar": "godaddy online services cayman islands ltd.",
"registrant": {
"name": "…",
"organization": "…",
"country": "us",
"phone": "…",
"email": "…"
},
"name_servers": [
"may.ns.cloudflare.com",
"simon.ns.cloudflare.com"
],
"domain_status": [
"clientdeleteprohibited",
"clientrenewprohibited"
],
"whois_server": "whois.uniregistrar.com"
},
"check_date": "2026-09-22T12:25:50Z",
"parse_code": null
}
Workflows This Call Plugs Into.
Incident Investigation
Resolve registrar, dates and name servers for an indicator while the incident is still open, then pivot to the next one.
Phishing Triage
Weigh a new lookalike by its registration age and registrar before it goes to takedown.
M&A Due Diligence
Check the domain ownership claims in a data room against the record the registry serves today.
Expiry Watch
Poll the domains you depend on and act before a registration lapses.
The Details Developers Ask About.
| Current vs history | This call returns the record as it is now. Each distinct past record, with the dates it was observed, comes from the WHOIS History API. |
|---|---|
| Parsing | parse_ is null when the record parsed cleanly. The raw block is always returned. |
| Rate limits | Plan-dependent. The default is one request per second per key and endpoint. See rate limits. |
| Errors | Gateway and application errors each have their own documented format. See errors. |
See This Data at Work in the Deepinfo Platform
This registration and ownership data finds the domains that belong to you and to your vendors in the platform: External Attack Surface Management for your own, Third-Party Risk Management for theirs.
Questions About Domain WHOIS API
Can we look up a subdomain or an IP address?
A subdomain, yes: www.deepinfo.com is accepted. An IP address is not; for the registration behind an address, use the IP WHOIS API.
Which registrant details does the parsed record hold?
Name, organization, street, city, state, postal code, country, phone and email, as the WHOIS server publishes them. Behind a privacy service, those fields usually hold the service’s details instead of the owner’s.
How is the Domain WHOIS API priced?
As part of an API services plan, priced by volume and frequency. Each lookup counts against your plan’s quota at one unit per request. See Data & API pricing.
What comes back when a record cannot be parsed?
parsed is null, and parse_ carries the parser’s status. Read the registrar and dates from raw in that case.
What does an invalid domain return?
A 400 application error with code 10400. Its parameters entry names domain and says why, for example Domain extension is not given in the input.
Can analysts run WHOIS lookups without writing code?
Yes. Instant Lookups in Deep Search & Insights runs this lookup, and the other live lookups, in the Deepinfo Platform.
Run It Against Your Domains.
Most teams test the API on a handful of their own domains before they integrate. We set up access and answer schema questions on a short call.