# Domain WHOIS API

URL: https://www.deepinfo.com/data-api/apis/whois-lookup/

## 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.

[Talk to us about access](https://www.deepinfo.com/contact/?topic=data-api) [Domain WHOIS reference](https://docs.deepinfo.com/reference/lookup/domain-whois/)

### One Endpoint Takes One Parameter.

The raw block is kept next to the parsed one, so nothing a registry returns is lost to parsing.

GET `https://api.deepinfo.com/v1/lookup/whois` [Reference](https://docs.deepinfo.com/reference/lookup/domain-whois/)

| Parameter | Type |  | Description |
| --- | --- | --- | --- |
| `domain` | string | Required | A registered domain, for example `deepinfo.com`. |

Request

curl:

```bash
curl "https://api.deepinfo.com/v1/lookup/whois?domain=deepinfo.com" \
  -H "apikey: YOUR_API_KEY"
```

Python:

```python
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"])
```

JavaScript:

```javascript
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

200 OK · application/json

```json
{
  "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](https://www.deepinfo.com/solutions/use-cases/incident-investigation-and-response/)

Resolve registrar, dates and name servers for an indicator while the incident is still open, then pivot to the next one.

#### [Phishing Triage](https://www.deepinfo.com/solutions/use-cases/phishing-detection-and-prevention/)

Weigh a new lookalike by its registration age and registrar before it goes to takedown.

#### [M&A Due Diligence](https://www.deepinfo.com/solutions/use-cases/mergers-acquisitions-due-diligence/)

Check the domain ownership claims in a data room against the record the registry serves today.

#### [Expiry Watch](https://www.deepinfo.com/solutions/use-cases/attack-surface-management/)

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](https://www.deepinfo.com/data-api/apis/whois-history/).
- **Parsing**: `parse_code` 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](https://docs.deepinfo.com/getting-started/rate-limits/).
- **Errors**: Gateway and application errors each have their own documented format. See [errors](https://docs.deepinfo.com/getting-started/errors/).

### Other Live Lookups.

- [IP WHOIS](https://www.deepinfo.com/data-api/apis/ip-whois-lookup/) (Lookup): Network, range, ASN and registry for any IP address.
- [DNS](https://www.deepinfo.com/data-api/apis/dns-lookup/) (Lookup): The current records for a name, by type, in one call.
- [WHOIS History](https://www.deepinfo.com/data-api/apis/whois-history/): Each distinct registration record a domain has had.

### 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.

- [External Attack Surface Management](https://www.deepinfo.com/platform/easm/) (EASM)
- [Third-Party Risk Management](https://www.deepinfo.com/platform/tprm/) (TPRM)
- [Deep Search & Insights](https://www.deepinfo.com/platform/dsi/) (DSI)

### 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](https://www.deepinfo.com/data-api/apis/ip-whois-lookup/).

**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](https://www.deepinfo.com/pricing/#data-pricing).

**What comes back when a record cannot be parsed?**

`parsed` is `null`, and `parse_code` 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](https://www.deepinfo.com/platform/dsi/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.

[Talk to us about access](https://www.deepinfo.com/contact/?topic=data-api) [API documentation](https://docs.deepinfo.com/)
