Bulk Domain Lookup - WHOIS/RDAP, DNS, SSL, expiry, availability avatar

Bulk Domain Lookup - WHOIS/RDAP, DNS, SSL, expiry, availability

Pricing

$2.00 / 1,000 domain checkeds

Go to Apify Store
Bulk Domain Lookup - WHOIS/RDAP, DNS, SSL, expiry, availability

Bulk Domain Lookup - WHOIS/RDAP, DNS, SSL, expiry, availability

Bulk domain lookup for portfolio and expiry monitoring. Export WHOIS/RDAP, DNS, TLS certificate and HTTP observations as JSON with availability evidence and per-check errors.

Pricing

$2.00 / 1,000 domain checkeds

Rating

0.0

(0)

Developer

Grit

Grit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Domain intelligence scraper returns registry, DNS, TLS certificate, and HTTP observations for supplied domains. Domain lookup API rows include availability evidence and check errors alongside source data.

Typical uses: expiry monitoring, domain-portfolio audits, brand-name availability sweeps, lead-list enrichment, SSL-expiry alerts, due diligence on a list of vendors.

What it returns

FieldTypeExample value
domainstring"github.com"
inputstring"https://www.github.com/apify/crawlee"
checksarray["rdap", "dns", "ssl", "http", "availability"]
registeredbooleantrue
availabilitystring"registered"
registry_sourcestring"rdap"
registry_serverstring"https://rdap.verisign.com/com/v1/"
registrarstring"MarkMonitor Inc."
registrar_iana_idstring"292"
createdstring"2007-10-09T18:20:50Z"
updatedstring"2026-09-07T09:22:52Z"
expiresstring"2028-10-09T18:20:50Z"
statusarray["clientDeleteProhibited", "clientTransferProhibited", "clientUpdateProhibited"]
nameserversarray["ns0.wikimedia.org", "ns1.wikimedia.org", "ns2.wikimedia.org"]
dnssecbooleanfalse
registrant_orgstring"Domains By Proxy, LLC"
registrant_countrystring"US"
days_to_expiryinteger735
domain_age_daysinteger6936
errorsarray[]
checked_atstring"2026-10-05T10:50:39Z"
dns_aarray["140.82.121.3"]
dns_aaaaarray[]
dns_mxarray["0 github-com.mail.protection.outlook.com"]
dns_nsarray["ns0.wikimedia.org", "ns1.wikimedia.org", "ns2.wikimedia.org"]
dns_txtarray[]
dns_spfstring"v=spf1 ip4:212.58.224.0/19 ip4:132.185.0.0/16 +include:spf.sis.bbc.co.uk +include:spf.messagelabs.com ~all"
dns_dmarcstring"v=DMARC1; p=quarantine; sp=reject; pct=100; rua=mailto:dmarc@github.com; ruf=mailto:dmarc@github.com; fo=1"
dns_caaarray["0 iodef \"mailto:dns-admin@wikimedia.org\"", "0 issue \"letsencrypt.org\"", "0 issue \"pki.goog\""]
dns_resolvesbooleantrue
ssl_validbooleantrue
ssl_issuerstring"Sectigo Limited"
ssl_subjectstring"github.com"
ssl_sansarray["github.com", "www.github.com"]
ssl_not_beforestring"2026-09-01T00:00:00Z"
ssl_not_afterstring"2026-11-29T23:59:59Z"
ssl_days_leftinteger55
ssl_tls_versionstring"TLSv1.3"
ssl_hoststring"github.com"
http_final_urlstring"https://github.com"
http_statusinteger200
http_serverstring"github.com"
http_redirectsinteger0

Coverage, as measured on the test run: RDAP works for .com, .org, .ai and .co.uk. For .io and .com.tr (no RDAP) the actor falls back to WHOIS port 43 and returns dates and nameservers. For .de the registry only answers "connected" or "free" over WHOIS, so .de rows carry registered, availability and DNS but no dates or registrar.

Input example

{
"domains": [
"github.com"
],
"maxItems": 10
}

Use the input schema for the remaining filters and defaults.

Output example

This is a selected-field excerpt of the first object in sample_output.json.

{
"domain": "github.com",
"input": "https://www.github.com/apify/crawlee",
"checks": [
"rdap",
"dns",
"ssl",
"http",
"availability"
],
"registered": true,
"availability": "registered",
"registry_source": "rdap",
"registry_server": "https://rdap.verisign.com/com/v1/",
"registrar": "MarkMonitor Inc.",
"registrar_iana_id": "292",
"created": "2007-10-09T18:20:50Z",
"updated": "2026-09-07T09:22:52Z",
"expires": "2028-10-09T18:20:50Z",
"status": [
"clientDeleteProhibited",
"clientTransferProhibited",
"clientUpdateProhibited"
],
"dnssec": false
}

Pricing

Pay per event: $0.002 per domain, all checks included (1,000 domains = $2.00). Not charged: invalid inputs, duplicates, and rows where every check failed. Details in PRICING.md.

Performance (measured)

26 domains with all five checks, concurrency 10, from a local machine: 30 s end to end. Domains on .io and .com.tr, which need a WHOIS round trip, are the slow ones. Your numbers will vary with region and registry rate limits.

Limits

  • "likely available" is a strong signal, not a registrar guarantee: reserved, premium or blocked names may still be unregisterable.
  • Registries rate-limit. Requests per registry host are capped and retried with backoff; a persistent refusal is reported in errors, not hidden.
  • WHOIS formats differ by TLD; the parser handles the common fields and leaves the rest empty rather than guessing.
  • Contact data (name, e-mail, phone) is never returned. Registrant organisation and country appear only if the registry publishes them unredacted.
  • SSL is read from the apex (then www); a site serving TLS only on another host name reports ssl_valid: null.

FAQ

What limits the output? The maxItems input caps output rows; its schema maximum is 100,000. Source availability and errors may yield fewer rows.

Does it need a proxy, login, or API key? The actor queries public registry, DNS, TLS, and HTTP services without an API key or proxy input.

How is it priced? PRICING.md proposes $0.002 for each domain row with usable data. Invalid, duplicate, and wholly failed rows have no domain event; platform charges may apply.

What happens on rate limits? Registry and WHOIS checks limit parallel requests and retry or report throttling. Upstream services may still return unknown.

How fresh is the data? Registry, DNS, TLS, and HTTP fields are checked during the run; checked_at records the check time and sources can change.

Does likely available guarantee registration? No. It is a signal based on registry and DNS evidence, and must be checked with a registrar.

Use with AI agents / MCP

Every row is flat JSON with stable field names, so agents can run the actor through the Apify MCP server (https://mcp.apify.com) or the Apify API and filter directly: "domains with days_to_expiry below 30", "rows where availability is likely_available", "certificates with ssl_days_left below 14", "domains without dns_dmarc". Input is one JSON object; for small lists use the run-sync-get-dataset-items endpoint.