# Domain WHOIS, DNS & Tech Stack Intelligence Scraper (`apex-b2b-data/domain-whois-dns-techstack-intel`) Actor

Bulk domain intelligence combining official IANA RDAP registration dates, live DNS records (A, AAAA, MX, TXT, NS, SPF, DMARC via Google DoH), TLS/SSL certificate inspection, and HTTP/HTML tech stack fingerprinting with B2B lead scoring.

- **URL**: https://apify.com/apex-b2b-data/domain-whois-dns-techstack-intel.md
- **Developed by:** [George Barnes](https://apify.com/apex-b2b-data) (community)
- **Categories:** SEO tools, Developer tools, Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.05 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Domain WHOIS, DNS & Tech Stack Intelligence Scraper (`$1.50 / 1K Domains`)

**Bulk domain intelligence engine combining official IANA/RDAP registration dates, live DNS records (A, AAAA, MX, TXT, NS, SPF, DMARC via Google DoH), TLS/SSL certificate inspection, and HTTP/HTML tech stack fingerprinting with automated B2B lead scoring.**

Instead of subscribing to four separate scrapers (WHOIS scraper, DNS lookup tool, SSL certificate monitor, and BuiltWith/Wappalyzer API), this Actor executes complete multi-protocol domain reconnaissance in parallel:

1. **Official IANA RDAP (`rdap.org`)** — Sponsoring registrar name, exact creation/registration date, expiration date, last changed date, RDAP status flags, and domain age calculation.
2. **Live DNS Resolution (Google DoH)** — Resolves `A` (IPv4), `AAAA` (IPv6), `MX` (mail exchange), `TXT`, `NS` (nameservers), plus automatic parsing of `SPF` (`v=spf1`) and `DMARC` (`v=DMARC1`) anti-spoofing policies.
3. **Native TLS/SSL Certificate Inspection** — Connects via native TLS socket with SNI to extract certificate issuer CA (Amazon, Let's Encrypt, DigiCert, Cloudflare), validity start/end timestamps, days until certificate expiration, and Subject Alternative Names (SANs).
4. **Technology Stack Fingerprinting** — Probes HTTP response headers (`Server`, `Via`, `X-Powered-By`, `CF-Ray`) and HTML body signatures to detect 35+ frameworks, CMS engines, CDNs, analytics suites, and marketing automation tools (Next.js, React, Vue, WordPress, Shopify, Webflow, Cloudflare, AWS CloudFront, HubSpot, Google Tag Manager, Stripe).
5. **0–100 B2B Technical Maturity Score** — Weighted algorithmic score evaluating domain longevity, SSL security, DNS configuration, email authentication, and enterprise software adoption.

***

### Why Choose This Domain Intel Actor? (Comparison)

| Capability | This Actor | Dedicated WHOIS Scrapers | BuiltWith / Wappalyzer | DNS Query Scrapers |
| :--- | :--- | :--- | :--- | :--- |
| **Price per 1,000 Domains** | **`$1.50 / 1K` (`$0.0015`/domain)** | `$5.00 – $15.00 / 1K` | `$20.00 – $50.00 / 1K` | `$2.00 – $5.00 / 1K` |
| **Official IANA RDAP Registration & Expiry** | ✅ Included (`creation_date`, `expiration_date`) | ✅ Included | ❌ No WHOIS/RDAP | ❌ No |
| **Live DNS (A, AAAA, MX, TXT, NS)** | ✅ Google DoH (`ip_addresses`, `nameservers`) | ❌ No DNS | ❌ No DNS | ✅ Basic DNS |
| **Email Auth (`SPF` & `DMARC`) Extraction** | ✅ Auto-parsed | ❌ No | ❌ No | ⚠️ Raw TXT dumps |
| **Native TLS/SSL Certificate Validation** | ✅ Issuer, Expiry, Days Remaining, SANs | ❌ No | ❌ No | ❌ No |
| **Framework & CMS Fingerprinting** | ✅ Next.js, React, Vue, WordPress, Shopify | ❌ No | ✅ Paid add-on | ❌ No |
| **B2B Growth & CRM Tool Detection** | ✅ HubSpot, Marketo, Intercom, Segment | ❌ No | ✅ Paid add-on | ❌ No |
| **B2B Tech Maturity Score (0–100)** | ✅ Included (`b2b_tech_score`) | ❌ No | ❌ Proprietary tier | ❌ No |
| **Zero-Config Trial Run (1-Click)** | ✅ Defaults to `apify.com` | ⚠️ Requires API keys | ⚠️ Requires paid key | ⚠️ Often fails |

***

### Transparent Pricing (`$1.50` per 1,000 Domains)

You pay only for domain records successfully inspected (`$0.0015` per domain via Pay-Per-Event pricing):

| Workflow | Domains Scanned | Total Cost |
| :--- | :--- | :--- |
| **Quick Test Run** (zero configuration) | `1` domain (`apify.com`) | **`$0.0015` (< 1 cent)** |
| **Targeted Prospecting Batch** | `100` target domains | **`$0.15` (15 cents)** |
| **B2B Outbound Account Enrichment** | `1,000` domains | **`$1.50`** |
| **High-Volume TAM Audit / DNS Refresh** | `10,000` domains | **`$15.00`** |

***

### High-Intent B2B Playbooks (Copy-Paste Inputs)

#### 1. Default Quick Trial: 1-Click Verification

Inspect `apify.com` across all four layers with standard timeouts:

```json
{
  "domains": [
    "apify.com"
  ],
  "checkWhois": true,
  "checkDns": true,
  "checkSsl": true,
  "checkTechStack": true,
  "maxItems": 10
}
```

#### 2. High-Growth SaaS & E-Commerce Lead Qualification

Identify target enterprise prospects using modern web stacks (Next.js, React), marketing automation (HubSpot), and enterprise CDNs (Cloudflare, AWS):

```json
{
  "domains": [
    "apify.com",
    "github.com",
    "cloudflare.com",
    "stripe.com",
    "shopify.com"
  ],
  "checkWhois": true,
  "checkDns": true,
  "checkSsl": true,
  "checkTechStack": true,
  "concurrency": 5,
  "maxItems": 100
}
```

#### 3. Cybersecurity & Deliverability Audit: SSL Expiry & Email Spoofing Risks

Pinpoint domains with expiring SSL certificates (less than 30 days remaining) or vulnerable email configurations missing SPF or DMARC records:

```json
{
  "domains": [
    "target-domain-1.com",
    "target-domain-2.org",
    "target-domain-3.io"
  ],
  "checkWhois": false,
  "checkDns": true,
  "checkSsl": true,
  "checkTechStack": false,
  "timeoutSec": 10,
  "maxItems": 500
}
```

#### 4. Domain Investment & Expiration Prospecting

Monitor domain registration age and expiration dates via official IANA RDAP:

```json
{
  "domains": [
    "domain-to-track-1.com",
    "domain-to-track-2.net"
  ],
  "checkWhois": true,
  "checkDns": true,
  "checkSsl": false,
  "checkTechStack": false,
  "maxItems": 250
}
```

***

### Sample Enriched Output Record

```json
{
  "domain": "apify.com",
  "registrar": "Amazon Registrar, Inc.",
  "creation_date": "2009-06-02T17:14:10Z",
  "expiration_date": "2035-06-02T17:14:10Z",
  "domain_age_days": 6363,
  "nameservers": [
    "ns-1225.awsdns-25.org",
    "ns-1928.awsdns-49.co.uk",
    "ns-449.awsdns-56.com",
    "ns-839.awsdns-40.net"
  ],
  "ip_addresses": [
    "18.245.162.128",
    "18.245.162.41",
    "18.245.162.50",
    "18.245.162.8"
  ],
  "ssl_issuer": "Amazon",
  "ssl_valid_to": "2027-01-16T23:59:59Z",
  "technologies": [
    "Amazon CloudFront",
    "Bootstrap",
    "Google Tag Manager",
    "HubSpot",
    "Next.js"
  ],
  "b2b_tech_score": 100,
  "inspected_at": "2026-11-04T00:20:08Z",
  "days_until_expiration": 3132,
  "last_changed_date": "2026-05-16T16:53:04Z",
  "rdap_status": [
    "client transfer prohibited"
  ],
  "ipv6_addresses": [
    "2600:9000:26ba:2400:9:a03e:6540:93a1"
  ],
  "mx_records": [
    "1 aspmx.l.google.com.",
    "10 aspmx2.googlemail.com."
  ],
  "spf_record": "v=spf1 a mx include:_spf.google.com include:mailgun.org include:amazonses.com include:19497222.spf05.hubspotemail.net -all",
  "dmarc_record": "v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:dmarc-reports@apify.com; ri=604800",
  "ssl_active": true,
  "ssl_subject": "*.apify.com",
  "ssl_valid_from": "2026-07-03T00:00:00Z",
  "ssl_days_remaining": 73,
  "ssl_san_hostnames": [
    "*.apify.com",
    "apifier.com",
    "apify.com"
  ],
  "http_status": 200,
  "final_url": "https://apify.com",
  "server_header": null,
  "cdn_provider": "Amazon CloudFront",
  "detected_categories": {
    "Frontend Framework": [
      "Next.js"
    ],
    "CSS Framework": [
      "Bootstrap"
    ],
    "Tag Management": [
      "Google Tag Manager"
    ],
    "Marketing & CRM": [
      "HubSpot"
    ],
    "CDN & Hosting": [
      "Amazon CloudFront"
    ]
  },
  "lead_segments": [
    "active_b2b_growth_stack",
    "authenticated_email_infra",
    "enterprise_infrastructure",
    "established_domain",
    "modern_web_stack"
  ]
}
```

***

### Integration Snippets

#### Call via REST API (Clay.com, Make, n8n, cURL)

Synchronously execute the Actor and stream back the dataset JSON directly:

```bash
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~domain-whois-dns-techstack-intel/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "domains": ["apify.com", "stripe.com"],
    "checkWhois": true,
    "checkDns": true,
    "checkSsl": true,
    "checkTechStack": true,
    "maxItems": 10
  }'
```

#### Call via Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("YOUR_USERNAME/domain-whois-dns-techstack-intel").call(
    run_input={
        "domains": ["apify.com", "github.com", "openai.com"],
        "checkWhois": True,
        "checkDns": True,
        "checkSsl": True,
        "checkTechStack": True,
        "maxItems": 10,
    }
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in items:
    print(f"Domain: {item['domain']} | Score: {item['b2b_tech_score']} | Tech: {item['technologies']}")
```

#### AI Agents & Model Context Protocol (MCP)

This Actor connects seamlessly with Apify's MCP server (`mcp.apify.com`):

- Retrieve real-time registration dates and domain age before initiating domain acquisition offers.
- Verify DNS records, MX routing, and SPF/DMARC health before scheduling outbound email sequences.
- Detect target tech stacks (e.g. Next.js, Shopify, HubSpot) to trigger personalized B2B sales automation.

***

### Frequently Asked Questions (FAQ)

**1. Does this Actor require external API keys?**\
No. All queries use open standard protocols: official IANA RDAP (`rdap.org`), Google DNS-over-HTTPS (`dns.google`), native TLS/SSL socket handshakes, and direct HTTP response inspection. Zero API keys and zero third-party subscriptions are needed.

**2. What happens if a domain does not have a website or port 443 is closed?**\
Each inspection layer operates independently. If a domain lacks an active web server or TLS certificate, the Actor still extracts its RDAP registration dates and live DNS records, setting `ssl_active: false` and adjusting the `b2b_tech_score` accordingly.

**3. How is the B2B Tech Score calculated?**\
The 0–100 score weighs technical maturity factors: domain age (>5 yrs = +15, >1 yr = +10), active SSL with >30 days validity (+15), IPv4 and IPv6 resolution (+15), MX records (+5), SPF and DMARC email authentication (+20), live HTTP 200 availability (+10), and adoption of modern frameworks, CDNs, and B2B growth tools (+20).

# Actor input Schema

## `domains` (type: `array`):

List of domain names or website URLs to inspect (e.g. \["apify.com", "github.com", "stripe.com"]).

## `checkWhois` (type: `boolean`):

Fetch official IANA RDAP domain registration, expiration, and registrar details.

## `checkDns` (type: `boolean`):

Resolve live A, AAAA, MX, TXT, and NS records via Google DNS over HTTPS.

## `checkSsl` (type: `boolean`):

Connect via TLS socket to inspect SSL issuer, validity dates, days remaining, and SAN hostnames.

## `checkTechStack` (type: `boolean`):

Perform HTTP request to inspect headers and HTML signatures for CMS, frameworks, CDNs, analytics, and CRM tools.

## `timeoutSec` (type: `integer`):

Maximum seconds allocated for inspecting each individual domain across all protocols.

## `concurrency` (type: `integer`):

Number of domains to inspect concurrently.

## `maxItems` (type: `integer`):

Cap on total domains to inspect in a single run.

## `proxyConfiguration` (type: `object`):

Optional proxy settings for outbound requests.

## Actor input object example

```json
{
  "domains": [
    "apify.com"
  ],
  "checkWhois": true,
  "checkDns": true,
  "checkSsl": true,
  "checkTechStack": true,
  "timeoutSec": 15,
  "concurrency": 5,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Structured JSON records produced by Domain WHOIS, DNS & Tech Stack Intelligence Scraper in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("apex-b2b-data/domain-whois-dns-techstack-intel").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("apex-b2b-data/domain-whois-dns-techstack-intel").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call apex-b2b-data/domain-whois-dns-techstack-intel --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apex-b2b-data/domain-whois-dns-techstack-intel"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ZaOodXOjS6eR6q8jM/builds/PkfKvaIZkrpSVL88z/openapi.json
