Introduction
WhoisXML API is the default choice for many developers — it has been around long enough that it shows up first in search results, is cited in StackOverflow threads, and is integrated into dozens of security and domain intelligence tools. That inertia is real and legitimate.
But when the project moves past the prototype stage, the friction starts to accumulate: a credit system that is difficult to predict, separate subscriptions for DNS, SSL, and WHOIS data, verbose JSON responses that require different parsing logic per TLD, and a free tier that is too limited to develop against properly.
This article is a direct, honest comparison between WhoisXML API and WhoisJSON. We cover pricing, feature inclusion, response quality, and what WhoisXML genuinely does better — because any comparison that pretends otherwise is not useful. If you are evaluating alternatives or planning a migration, this is the article to read.
Why Developers Start Looking for an Alternative
Developer feedback about WhoisXML API tends to cluster around a small set of recurring complaints. None of them are dealbreakers on their own — but together they create enough friction that teams start evaluating alternatives.
- Opaque, credit-based pricing: WhoisXML sells credits rather than request quotas. Credits are consumed at different rates depending on the endpoint and data freshness. Predicting monthly costs requires understanding a multi-variable consumption model — not straightforward when you're estimating budget for a new feature.
- Separate products for each data type: WHOIS lookup, DNS data, SSL certificate data, subdomain discovery, and domain availability are separate products with separate subscriptions. A developer who needs all five to build a domain intelligence dashboard is looking at five distinct billing lines.
- Verbose, inconsistent JSON: The WhoisXML response nests registration data under a
WhoisRecordroot object, duplicates fields betweenregistryDataand the top level, and returns many null or empty fields depending on the TLD. Client-side parsing requires defensive guards that differ across registrars. - No usable free tier for development: The trial allocation is small enough that it runs out before a real integration is complete. Testing edge cases — RDAP vs WHOIS responses, privacy-shielded records, ccTLD variations — requires burning through the entire trial budget.
- Dense onboarding: The WhoisXML product catalogue is extensive, which is a strength at enterprise scale but a barrier for a developer who just needs WHOIS and DNS data and wants to be productive in under an hour.
WhoisXML vs WhoisJSON — Feature Comparison
| Feature | WhoisXML API | WhoisJSON |
|---|---|---|
| WHOIS lookup | ✓ Included | ✓ Included |
| DNS lookup | Separate product | ✓ Included |
| SSL certificate check | Separate product | ✓ Included |
| Domain availability | Separate product | ✓ Included |
| Subdomain discovery | Separate product | ✓ Included |
| RDAP support | Partial | ✓ Native |
| Free tier | ~500 req (trial) | 1,000 req/month — no expiry |
| Credit card for free plan | Required | Not required |
| Pricing model | Credits + multiple subscriptions | Single subscription, all endpoints |
| JSON response format | Verbose, nested, variable per TLD | Normalised, consistent across TLDs |
| DMARC / BIMI / MTA-STS in DNS | Separate or absent | ✓ Included in DNS response |
| Historical WHOIS database | ✓ Very large | Limited |
| Reverse WHOIS (by email / org) | ✓ Available | ✗ Not available |
| Enterprise SLA | ✓ Available | On high-tier plans |
Pricing Comparison
WhoisXML API is built around a credit system. Credits are purchased in bundles or consumed via subscription tiers, and the consumption rate varies by endpoint, data type, and whether the result is served from cache. Each major product — WHOIS, DNS Intelligence, SSL Certificates, Brand Monitor — is a separate subscription. A developer building an application that uses three of these products signs up and pays for three distinct plans.
WhoisJSON is a single subscription that covers all six endpoints: WHOIS lookup, DNS lookup (all record types including DMARC, BIMI, MTA-STS, TLSRPT), SSL certificate check, domain availability, subdomain discovery, and domain monitoring. One plan, one invoice, one API key.
| WhoisJSON Plan | Monthly price | Rate limit | Monthly quota | Endpoints |
|---|---|---|---|---|
| Basic | Free | 20 RPM | 1,000 | All 6 |
| Pro | $10 | 40 RPM | 30,000 | All 6 |
| Ultra | $30 | 60 RPM | 150,000 | All 6 |
| Mega | $80 | 80 RPM | Unlimited | All 6 |
| Giga | $120 | 200 RPM | Unlimited | All 6 |
| Tera | $200 | 300 RPM | Unlimited | All 6 |
| Atlas | $600 | 900 RPM | Unlimited | All 6 |
Full details on the pricing page. No credit card is required to activate the free plan.
API Response Quality
The shape of an API response determines how much defensive code you write. Deeply nested structures with variable field presence force you to guard every property access. A flat, normalised schema lets you write predictable parsing logic once and reuse it across every TLD.
WhoisXML API returns WHOIS data under a nested root object. A typical response looks like this:
{
"WhoisRecord": {
"domainName": "example.com",
"createdDate": "1995-08-14T04:00:00Z",
"updatedDate": "2023-08-14T07:01:31Z",
"expiresDate": "2024-08-13T04:00:00Z",
"registrarName": "RESERVED-Internet Assigned Numbers Authority",
"parseCode": 3948,
"audit": {
"createdDate": "2023-01-01 00:00:00 UTC",
"updatedDate": "2023-08-14 07:01:38 UTC"
},
"registryData": {
"domainName": "EXAMPLE.COM",
"createdDate": "1995-08-14T04:00:00Z",
"updatedDate": "2023-08-14T07:01:31Z",
"expiresDate": "2024-08-13T04:00:00Z",
"registrarName": "RESERVED-Internet Assigned Numbers...",
"nameServers": {
"rawText": "A.IANA-SERVERS.NET\nB.IANA-SERVERS.NET",
"hostNames": ["a.iana-servers.net", "b.iana-servers.net"],
"ips": []
},
"rawText": "..."
},
"nameServers": {
"rawText": "A.IANA-SERVERS.NET\nB.IANA-SERVERS.NET",
"hostNames": ["a.iana-servers.net", "b.iana-servers.net"]
},
"status": "clientDeleteProhibited...",
"rawText": "..."
}
}The equivalent WhoisJSON response for the same domain:
{
"name": "example.com",
"registered": true,
"source": "rdap",
"created": "1995-08-14 04:00:00",
"changed": "2023-08-14 07:01:31",
"expires": "2024-08-13 04:00:00",
"age": {
"days": 10440,
"years": 28,
"isNewlyRegistered": false,
"isYoung": false
},
"expiration": {
"daysLeft": -273,
"isExpired": true,
"isExpiringSoon": false
},
"registrar": {
"name": "RESERVED-Internet Assigned Numbers Authority",
"url": "https://www.iana.org"
},
"nameserver": ["a.iana-servers.net", "b.iana-servers.net"],
"status": ["clientDeleteProhibited"],
"dnssec": "signedDelegation"
} WhoisRecord wrapper, no duplicated fields between registryData and the root level, dates in a consistent format, nameservers as a flat array, and pre-computed enrichment fields ( age, expiration) when RDAP is the source.What WhoisXML Does Better
An honest comparison has to include this section. WhoisXML API has real strengths that matter for specific use cases.
- Historical WHOIS database: WhoisXML has been collecting WHOIS snapshots since 2010 and maintains one of the largest historical domain registration databases available commercially. If your use case requires querying who owned a domain three years ago, or tracking registrant changes over time, WhoisXML has infrastructure for this that WhoisJSON does not offer.
- Reverse WHOIS: the ability to search domains by registrant email address, organisation name, or phone number is a feature unique to WhoisXML among mass-market APIs. It is a core tool for threat intelligence (finding all domains registered by a specific actor) and brand protection (finding registrations using your company name). WhoisJSON does not have this endpoint.
- Broader enterprise product suite: WhoisXML offers products that go beyond domain data — IP geolocation, threat intelligence feeds, brand monitoring, and OSINT tooling. For a large security team that wants a single vendor for multiple intelligence types, that breadth is a genuine advantage.
- Established enterprise contracts: WhoisXML has been operating long enough to have formal enterprise agreements, dedicated account management, and compliance documentation that some procurement processes require.
Who Should Switch to WhoisJSON
WhoisJSON is the right choice if your requirements fit the following profile.
- You need WHOIS + DNS + SSL in a single plan: if your application queries more than one data type, WhoisJSON's all-inclusive model is structurally cheaper than assembling the equivalent from separate WhoisXML subscriptions.
- You want a usable free tier: 1,000 requests per month with no credit card and no expiry is enough to build a complete integration, test edge cases across TLDs, and validate your parsing logic before committing to a paid plan.
- You want predictable, normalised JSON: if you have spent time writing defensive parsing code to handle WhoisXML's response variations across TLDs, the WhoisJSON normalised schema is a concrete improvement in developer experience.
- You do not need reverse WHOIS or historical data: if your use case is current domain registration data, DNS records, SSL certificates, and domain availability — and you do not need to query historical snapshots or search by registrant — WhoisJSON covers the full requirements.
- You are an independent developer or startup: transparent per-request pricing with a single subscription, clear documentation, and a free tier that works are more important than enterprise SLA commitments and account management.
Migration Guide: From WhoisXML to WhoisJSON in 10 Minutes
The migration reduces to three changes: base URL, authentication header, and JSON field paths.
Step 1 — Update the base URL and authentication
// ── Before (WhoisXML API) ──────────────────────────────────────
const url = `https://www.whoisxmlapi.com/whoisserver/WhoisService`
+ `?apiKey=YOUR_WHOISXML_KEY`
+ `&domainName=${domain}`
+ `&outputFormat=JSON`;
const res = await fetch(url);
const data = await res.json();
// ── After (WhoisJSON API) ──────────────────────────────────────
const url = `https://whoisjson.com/api/v1/whois?domain=${encodeURIComponent(domain)}`;
const res = await fetch(url, {
headers: { Authorization: 'TOKEN=YOUR_WHOISJSON_KEY' }
});
const data = await res.json();
Step 2 — Update your field paths
// ── Before (WhoisXML — nested, duplicated fields) ─────────────
const registrar = data.WhoisRecord?.registrarName;
const created = data.WhoisRecord?.createdDate;
const expires = data.WhoisRecord?.expiresDate;
const nameservers = data.WhoisRecord?.nameServers?.hostNames ?? [];
const status = data.WhoisRecord?.status ?? ''; // raw string
// ── After (WhoisJSON — flat, normalised) ──────────────────────
const registrar = data.registrar?.name;
const created = data.created; // "YYYY-MM-DD HH:MM:SS"
const expires = data.expires;
const nameservers = data.nameserver ?? []; // string[]
const status = data.status ?? []; // string[]
// Bonus: pre-computed enrichment fields (RDAP source only)
const isNew = data.age?.isNewlyRegistered ?? false;
const daysLeft = data.expiration?.daysLeft ?? null;
Step 3 — Replace DNS and SSL calls
If you were querying WhoisXML's DNS Intelligence or SSL Certificate products separately, replace them with the /nslookup and /ssl-cert-check endpoints — same API key, same base URL, no additional subscription.
const API_KEY = 'YOUR_WHOISJSON_KEY';
const HEADERS = { Authorization: `TOKEN=${API_KEY}` };
const BASE = 'https://whoisjson.com/api/v1';
// DNS — all record types in one call (A, MX, TXT, DMARC, BIMI …)
const dns = await fetch(`${BASE}/nslookup?domain=${domain}`, { headers: HEADERS })
.then(r => r.json());
// SSL certificate check
const ssl = await fetch(`${BASE}/ssl-cert-check?domain=${domain}`, { headers: HEADERS })
.then(r => r.json());
// Domain availability
const avail = await fetch(`${BASE}/domain-availability?domain=${domain}`, { headers: HEADERS })
.then(r => r.json());
// same key, same plan, no extra subscriptions
Conclusion
WhoisXML API is a mature product with a deep historical database and a reverse WHOIS capability that no mass-market alternative matches. If those two features are central to your use case, it remains the right choice.
For everything else — current WHOIS data, DNS records, SSL certificates, domain availability, and subdomain discovery — WhoisJSON delivers the same data with a simpler API, normalised JSON, and a pricing model that does not require assembling multiple subscriptions. The free tier is generous enough to complete a real integration before spending anything.
Try WhoisJSON for Free
1,000 requests/month — no credit card. All six endpoints from day one.
Get Your Free API Key