Provide current and historical ownership information on domains / IPs. Identify all connections between domains, registrants, registrars, and DNS servers.
Look into all current and historical DNS / IP connections between domains and A, MX, NS, and other records. Monitor suspicious changes to DNS records.
Get detailed context on an IP address, including its user’s geolocation, time zone, connected domains, connection type, IP range, ASN, and other network ownership details.
Access our web-based solution to dig into and monitor all domain events of interest.
Get access to a web-based enterprise-grade solution to search and monitor domain registrations and ownership details for branded terms, fuzzy matches, registrants of interest, and more.
Independent, evidence-based DNS and abuse intelligence for applicants, advisors, governments, and counsel participating in the ICANN 2026 New gTLD Program.
Predictive threat intelligence is your best first line of defense. Subscribe to the feeds to strengthen your cybersecurity posture. Contact us today for more information.
Unlock integrated intelligence on Internet properties and their ownership, infrastructure, and other attributes.
Our complete set of domain, IP, and DNS intelligence available via API calls as an annual subscription with predictable pricing.
Offers complete access to WHOIS, IP, DNS, and subdomain data for product enrichment, threat hunting and more.
Uncover entire attack surfaces with this API to embed asset discovery, vulnerability scanning, and technology metadata into your platform. Now in early access.
Talk to our APIs using LLMs. Connect your preferred LLM to WhoisXML API and simply chat about WHOIS, DNS, threat intelligence, and more.
I’m your Domain Intelligence Assistant. I make it easy to explore WHOIS, DNS, and threat data from WhoisXML API — I’m cloud-based, fast, and always ready to help.
A custom GPT for WHOIS, DNS, IP, and threat intelligence research. Connects ChatGPT directly to WhoisXML API to enable fast, conversational investigations and domain insights.
One Universal API Credit Pool
Simplify API credit purchasing and usage with one balance that works across our product portfolio.
No existing subscription changes price mid-term, and renewals on or after 23 January 2027 are at the current price list. Your current credits keep their value, and renewals before that date stay at your current price.
New purchases follow the price list on the pricing page. You can buy one-time credit packs, which never expire, or a monthly or yearly plan; a yearly plan costs ten times the monthly price. Larger packs and plans cost less per credit. The free tier is 500 credits. For more than the largest pack or plan (250,000 credits), contact [email protected]. There is no separate onboarding fee.
Website Categorization sells through the WhoisXML platform: you authenticate with your existing WhoisXML API key, and each billable call draws credits from your account balance. There is no separate Website Categorization subscription or dashboard.
| Call | Cost |
|---|---|
POST /api/v4/categorize |
1 credit per successful result |
POST /api/v4/categorize/bulk |
1 credit per domain that returns a result |
POST /api/v4/categorize/batch/async |
1 credit per domain that returns a result |
GET /api/v4/jobs, GET /api/v4/jobs/{id} |
0 credits |
GET /api/v4/taxonomy |
0 credits — reference data |
Opt-in blocks are free. Requesting include=policy, include=safety, include=content_purpose, include_status=true, output_format=openrtb or output_mode=set never changes what a call costs. They are projections of a classification you already paid for.
You are not charged when there is nothing useful to bill for:
categories: [] is not billed. That includes parked and inactive domains, and a site we tried to read today and could not (domain_status blocked, unreachable or error). A result flagged abstain.is_abstain: true that still carries a category is billed.429) and rejected (503) requests. Never billed.A domain answered from our curated list, a domain-name rule or the cache keeps its category and bills normally, even if the site blocks us today.
A repeat classification of the same domain within the cache window still returns a result and is billed the same as a fresh one. The credit price does not change based on whether your particular request happened to hit the cache.
Send an Idempotency-Key request header. A retry carrying the same key within a 24-hour window is processed again (usually from the cache) but normally charges credits_charged: 0 if an earlier request with that key was already billed; a retry after a 429 or 503 bills normally. On the bulk endpoint the key covers the whole batch. On async submission a retry with the same key returns the original job; the job is charged once, when it completes.
Use a stable key per logical request, not a fresh one per attempt.
Every categorization response carries credits_charged, and an async job reports it once it completes. Read it rather than counting your own requests — it is the authoritative record, and several situations return a result while charging nothing.
Bulk responses carry a batch total; a completed async job carries the job total.
Requests are limited per API key, using a token bucket. The defaults are 600 requests per minute sustained with a burst capacity of 100.
Your account's configured limits may differ — check your dashboard or ask support for your tier.
Exceeding a limit returns 429 with a Retry-After header giving the seconds to wait. Honour it; do not retry in a tight loop. A second, independent throttle exists on the billing side and behaves the same way. Neither charges you.
| Limit | Value |
|---|---|
| Domains per bulk request | 100 |
| Domains per async batch job | 10,000 |
domain length |
253 characters |
url length |
2,048 characters |
title length |
2,048 characters |
description length |
4,096 characters |
body_text length |
20,000 characters |
| Async job retention | At least 24 hours after submission |
| Classification cache window | Up to 30 days (3–7 days for event-driven and entertainment categories) |
Exceeding a size limit returns 422.
POST /api/v4/categorize on a cache-miss request, measured end to end from request receipt to response.A cache miss means a live fetch and classification of a site we have not seen recently, which is why the commitment is measured in seconds rather than milliseconds. Cached results return far faster, and supplying your own title, description and body_text removes the fetch from the path entirely.
| Severity | Response |
|---|---|
| Critical — API unreachable, or erroring for all or nearly all requests | Within 1 business day |
| Degraded — elevated error rate or latency affecting some requests | Within 2 business days |
| General — questions, feature requests, non-urgent issues | Within 3 business days |
Business days are Monday to Friday, excluding public holidays observed by WhoisXML.
If monthly uptime falls below the commitment:
| Monthly uptime | Service credit |
|---|---|
| 98.0% – 98.99% | 5% of monthly fees |
| 95.0% – 97.99% | 10% of monthly fees |
| Below 95.0% | 25% of monthly fees |
Request a service credit within 30 days of the end of the affected billing period; confirmed credits are applied within 10 business days.
Talk to us before you provision at volume if either of these describes your traffic:
Both cases change how the service behaves for you, and both are easier to size in advance than to fix afterwards.
403, 429 and 503 contracts.We are here to listen. For a quick response, please select your request type. By submitting a request, you agree to our Terms of Service and Privacy Policy.