Who it is for
Use focused checks for a single decision or assemble a broader profile when context matters.
Try a product, outcome, endpoint path, or API topic.
Get WHOIS information for a domain including registrar, dates, and status.
Get WHOIS information for a domain including registrar, dates, and status.
Use focused checks for a single decision or assemble a broader profile when context matters.
Choose this for WHOIS records and parsed fields, which may be redacted, incomplete, or unavailable.
Get WHOIS information for a domain including registrar, dates, and status.
Review the supported operations, inputs, outputs, execution modes, and response limits before integrating.
3 Authentication required. Check the operation reference for the exact cost and any per-item pricing.
Use documented operations to collect, assess, enrich, verify, compare, protect, or monitor public evidence.
| Parameter | Type | required |
|---|---|---|
| domain | string | required |
| Field | Type |
|---|---|
domain |
string |
registered |
boolean | null |
available |
boolean | null |
availability_reason |
string |
registrar |
string | null |
registrar_url |
string | null |
registrar_iana_id |
string | null |
created_date |
string | null |
updated_date |
string | null |
expiry_date |
string | null |
domain_age_days |
integer | null |
domain_age_years |
integer | null |
is_newly_registered |
boolean |
days_until_expiry |
integer | null |
transfer_locked |
boolean |
nameservers[] |
string[] |
status[] |
string[] |
dnssec |
boolean |
contacts |
object |
contacts.registrant |
object |
contacts.registrant.name |
string | null |
contacts.registrant.organization |
string | null |
contacts.registrant.email |
string | null |
contacts.registrant.phone |
string | null |
contacts.registrant.fax |
string | null |
contacts.registrant.address |
object |
contacts.registrant.address.street |
string | null |
contacts.registrant.address.city |
string | null |
contacts.registrant.address.state |
string | null |
contacts.registrant.address.postal_code |
string | null |
contacts.registrant.address.country |
string | null |
contacts.registrant.role |
string |
contacts.admin |
object |
contacts.admin.name |
string | null |
contacts.admin.organization |
string | null |
contacts.admin.email |
string | null |
contacts.admin.phone |
string | null |
contacts.admin.fax |
string | null |
contacts.admin.address |
object |
contacts.admin.address.street |
string | null |
contacts.admin.address.city |
string | null |
contacts.admin.address.state |
string | null |
contacts.admin.address.postal_code |
string | null |
contacts.admin.address.country |
string | null |
contacts.admin.role |
string |
contacts.tech |
object |
contacts.tech.name |
string | null |
contacts.tech.organization |
string | null |
contacts.tech.email |
string | null |
contacts.tech.phone |
string | null |
contacts.tech.fax |
string | null |
contacts.tech.address |
object |
contacts.tech.address.street |
string | null |
contacts.tech.address.city |
string | null |
contacts.tech.address.state |
string | null |
contacts.tech.address.postal_code |
string | null |
contacts.tech.address.country |
string | null |
contacts.tech.role |
string |
contacts.billing |
object |
contacts.billing.name |
string | null |
contacts.billing.organization |
string | null |
contacts.billing.email |
string | null |
contacts.billing.phone |
string | null |
contacts.billing.fax |
string | null |
contacts.billing.address |
object |
contacts.billing.address.street |
string | null |
contacts.billing.address.city |
string | null |
contacts.billing.address.state |
string | null |
contacts.billing.address.postal_code |
string | null |
contacts.billing.address.country |
string | null |
contacts.billing.role |
string |
privacy |
object |
privacy.is_private |
boolean |
privacy.privacy_service |
string | null |
privacy.detected_patterns[] |
string[] |
raw_rdap_link |
string | null |
raw_whois |
string | null |
abuse_contact |
object | null |
registry_domain_id |
string | null |
registrar_whois_server |
string | null |
traditional_contacts |
object |
nameserver_ips[] |
object[] |
nameserver_ips[] |
object |
nameserver_ips[].name |
string |
nameserver_ips[].ipv4 |
string | null |
nameserver_ips[].ipv6 |
string | null |
checked_at |
string |
query_time_ms |
integer |
summary |
object |
edge_summary |
object |
edge_summary.relay_configured |
boolean |
edge_summary.data_sources[] |
string[] |
edge_summary.authoritative_source |
string |
edge_summary.relay_whois_used |
boolean |
edge_summary.raw_whois_available |
boolean |
edge_summary.parse_error_count |
integer | null |
edge_summary.registered |
boolean | null |
edge_summary.available |
boolean | null |
edge_summary.registration_age_days |
integer | null |
edge_summary.days_until_expiry |
integer | null |
edge_summary.expires_within_30_days |
boolean | null |
edge_summary.transfer_locked |
boolean | null |
edge_summary.privacy_protected |
boolean | null |
edge_summary.dnssec |
boolean | null |
edge_summary.nameserver_count |
integer |
edge_summary.contact_roles_available[] |
string[] |
edge_summary.abuse_contact_available |
boolean |
edge_summary.registrar_whois_server |
string | null |
meta |
object |
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/whois?domain=example.com"const response = await fetch("https://domscan.net/v1/whois?domain=example.com", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/whois?domain=example.com",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/whois?domain=example.com", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/whois?domain=example.com")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body)){
"domain": "example.com",
"registrar": "Example Registrar, Inc.",
"registrar_url": "https://registrar.example.net",
"registrar_iana_id": "9999",
"created_date": "2019-03-11T14:22:08Z",
"updated_date": "2026-03-10T09:41:55Z",
"expiry_date": "2027-03-11T14:22:08Z",
"domain_age_days": 2769,
"domain_age_years": 7,
"is_newly_registered": false,
"days_until_expiry": 153,
"transfer_locked": true,
"status": [
"client transfer prohibited"
],
"nameservers": [
"ns1.example.net",
"ns2.example.net"
],
"dnssec": false,
"contacts": {
"registrant": null,
"admin": null,
"tech": null,
"billing": null
},
"privacy": {
"is_private": false,
"privacy_service": null,
"detected_patterns": []
},
"raw_rdap_link": "https://rdap.example.net/domain/example.com",
"checked_at": "2026-10-09T10:15:30.000Z",
"query_time_ms": 412,
"registered": true,
"summary": {
"has_registrant": false,
"has_admin": false,
"has_tech": false,
"has_billing": false,
"contact_count": 0,
"is_privacy_protected": false
},
"edge_summary": {
"relay_configured": true,
"data_sources": [
"rdap"
],
"authoritative_source": "rdap",
"relay_whois_used": false,
"raw_whois_available": false,
"parse_error_count": null,
"registered": true,
"available": false,
"registration_age_days": 2769,
"days_until_expiry": 153,
"expires_within_30_days": false,
"transfer_locked": true,
"privacy_protected": false,
"dnssec": false,
"nameserver_count": 2,
"contact_roles_available": [],
"abuse_contact_available": false,
"registrar_whois_server": null
},
"meta": {
"served_by": "pop=MAD country=ES",
"data_source": "rdap",
"note": "Contact information may be redacted due to privacy regulations (GDPR)"
}
}
200 OK400 Bad Request401 Unauthorized402 Payment Required429 Too Many Requests502 Bad GatewayUse the API reference for WHOIS Lookup to review parameters, response fields, examples, status codes, and supported operation modes.
Unknown or partial results mean that the requested evidence could not be fully determined. Keep the result state, confidence, freshness, and limitations in downstream decisions.
Pricing depends on the operation and execution mode. Check the endpoint reference for the current credit cost, authentication requirement, and per-item rules.
Used by people at these companies