WHOIS Domain Lookup

live$0.0025/domain lookupEnrichment

Last updated October 31, 2026

Get the registrar, creation and expiry dates, domain age, days until expiry, status codes, nameservers, DNSSEC, and the published registrant organization for up to 5,000 domains per run. Registry RDAP first, port 43 WHOIS fallback. No key. Clay ready.

Features

  • Registry RDAP first, port 43 WHOIS as the fallback. The row names the server that answered.
  • Domain age and days until expiry, computed and ready to filter.
  • Domains, URLs, and email addresses all work as input. A domain listed twice is charged once.
  • You pay for answers only. A row with no dates published and an error row are free.
  • Pay per event: Domain lookup at $0.0025.

Input

domainsarrayoptional

Domains, website URLs, or email addresses, one per line, 1 to 5,000 per run. Subdomains and www are dropped (blog.stripe.com is looked up as stripe.com), and a domain listed twice is looked up and charged once. An entry that is not a domain returns one free error row.

domainstringoptional

One domain, URL, or email address. Use this for a Clay column that holds one domain per row. Added to Domains when both are given.

follow_registrar_rdapstringoptional

On by default. For registries that publish only part of the record (such as .com and .net), also read the registrar's own RDAP record for the abuse email and any registrant organization or country the registrar publishes. Off saves one request per domain and does not change the price.

include_rawstringoptional

Off by default. On: raw_response carries the registry's RDAP JSON or WHOIS text, up to 50,000 characters, for audits or your own parsing.

max_charge_usdstringoptional

Optional. The run stops before any charge that would take it past this amount and delivers every row already charged. Leave empty to rely only on the maximum cost per run you set in Apify, which the actor also honors.

Output schema

json
{
  "input": "string",
  "domain": "string",
  "tld": "string",
  "registered": "boolean",
  "registrar_name": "string",
  "registrar_iana_id": "string",
  "registrar_url": "string",
  "registrar_abuse_email": "string",
  "created_at": "string",
  "updated_at": "string",
  "expires_at": "string",
  "domain_age_days": "integer",
  "days_until_expiry": "integer",
  "status": "array",
  "nameservers": "array",
  "dnssec": "boolean",
  "registrant_organization": "string",
  "registrant_country": "string",
  "source": "string",
  "source_server": "string",
  "registrar_rdap_status": "string",
  "raw_response": "string",
  "row_status": "string",
  "error_reason": "string",
  "billable_events_json": "string",
  "checked_at": "string"
}

Pricing

$0.0025per domain lookup
EventFree plan price
Domain lookup$0.0025
Actor Start$0.0006

Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.

On the Apify free plan the actor stops at $1.50 of charges a month, about 600 domain lookups. Any paid Apify plan removes the cap.

Limits

  • Most .com, .net, and new gTLD records redact the registrant for privacy, so registrant_organization is often empty. The actor never guesses it.
  • Some registries publish less than others. DENIC (.de) publishes status, nameservers, and the last change date over WHOIS, and EURid (.eu) publishes the registrar and nameservers; neither publishes creation or expiry dates there, so those rows are partial and free.
  • Some ccTLD registries publish no WHOIS or RDAP for automated use, or answer only listed addresses (for example .es). Those rows are free errors. A WHOIS server that drops a connection is retried once.
  • WHOIS text formats differ by registry. Fields a registry prints in an unusual format can be empty; include_raw returns the text so you can read it yourself.
  • Dates are the registry's own. A domain past its expiry date can still show registered true during the registry's grace period.

Available on