Free Domain API Documentation

Free RESTful APIs for domain research. Access WHOIS data, DNS records, domain scoring, and more programmatically.

Free Domain Lookup API — No Key Required

Whose.Domains provides a free, open REST API for domain research and network intelligence. Whether you are building a domain monitoring tool, running automated WHOIS lookups, screening expiring domains at scale, or investigating phishing infrastructure — our API gives you programmatic access to the same data powering this site, with no registration or API key required for standard usage.

All endpoints return structured JSON, making integration straightforward in any language or platform. Use it from Python scripts, Node.js services, shell pipelines, browser extensions, or security automation workflows.

Developers

Automate domain availability checks, enrich user-submitted domains with WHOIS data, monitor DNS changes, or validate email addresses against live MX records.

Security Researchers

Investigate phishing domains, pivot from an IP to all hosted domains via reverse IP lookup, compare WHOIS snapshots to detect registrant changes, and assess domain health scores.

Domain Investors

Batch-screen expiring domain lists, pull WHOIS history for due diligence, estimate domain valuation, and export full domain reports as JSON for offline analysis.

No API key required for basic usage
100% free — no billing, no trial limits
JSON responses across all endpoints
CORS-enabled for browser-based clients
Rate limit: 5–10 requests/min per IP
Base URL: https://whose.domains

Domain Lookup

POST /domain/{domainName}/search

Looks up domain WHOIS information. Triggers a fresh WHOIS query if data is not cached. Returns RDAP URL if applicable.

Path Parameter: domainName - Full domain name (e.g., example.com)
Response: {"code":0, "data": {"rdapUrl": "..."}} on success

Domain Health Score

GET /api/tools/score/{domainName}

Comprehensive domain health scoring (0-100) with grade (A+ to F). Evaluates SSL, DNS, email security (SPF/DKIM/DMARC), security headers, and domain age.

Response fields: totalScore, grade, categories (each with score and recommendations)

WHOIS Compare

GET /api/tools/compare?domain1={d1}&domain2={d2}

Compare two domains side by side — registration data, DNS, ownership. Includes a similarity score (0-100) indicating likelihood of same ownership.

Parameters: domain1, domain2
Response: Profiles for both domains, field-by-field differences, similarity score

DNS Analysis

GET /api/tools/dns-analyze/{domainName}

Deep DNS analysis: NS, A, AAAA, MX, TXT, SOA, CNAME records. Also checks SPF, DMARC, DKIM and detects configuration issues.

Domain Analysis

GET /api/tools/analyze/{domainName}

Full domain analysis including technical metrics (response time, SSL, server software, open ports), SEO analysis (title, meta, headings, links, Open Graph), and security assessment (security headers, security.txt, SSL details).

WHOIS History & Diff

GET /api/domain-history/snapshots/{domainName}

List all WHOIS snapshots for a domain.

GET /api/domain-history/diff?id1={id1}&id2={id2}

Compare two WHOIS snapshots and see field-by-field changes.

GET /api/domain-history/latest-diff/{domainName}

Automatically compare the two most recent snapshots of a domain.

Domain Report Export

GET /api/domain-report/{domainName}

Download a comprehensive JSON report including WHOIS, registrant, DNS records, subdomains, and WHOIS history snapshots. Response has Content-Disposition: attachment header.

Expiring Domains

GET /api/expiring-domains?days={days}&page={page}&tld={tld}

List domains expiring within a specified number of days. Supports TLD filtering and pagination.

Parameters: days (1-365, default 30), page (default 1), tld (optional, e.g. "com")

Reverse IP Lookup

GET /api/tools/reverse-ip/{ip}?page={page}

Find all domains hosted on a given IPv4 address. Includes GeoIP and ASN information.

Response Format

All API responses follow this structure:

{ "code": 0, // 0 = success, 400 = error "msg": "...", // Error message (if any) "data": { ... } // Response payload }