HTTP API

API

Versioned REST API for normalized WHOIS, RDAP, DNS and IP lookups. Partial provider failures return HTTP 200 with structured errors.

Base URL

https://whois.dc5.tech

Lookup

Primary endpoint. Query parameters handle IPv6 and URLs cleanly.

GET /api/v1/lookup?query=example.com
GET /api/v1/lookup?query=8.8.8.8
GET /api/v1/lookup?query=2001:4860:4860::8888&raw=true

Parameters

Specialized endpoints

GET /api/v1/domain?query=example.com
GET /api/v1/ip?query=8.8.8.8
GET /api/v1/dns?query=example.com
GET /api/v1/reverse?query=8.8.8.8
GET /api/v1/history?query=example.com
GET /api/v1/history/diff?query=example.com
GET /api/v1/version
GET /healthz
GET /readyz
GET /metrics
GET /openapi.yaml

History

Optional snapshot history. Disabled APIs return HTTP 404 HISTORY_DISABLED when a query is supplied. Omit query to check whether persistence is enabled. Snapshots store comparable registration and DNS fields only (no raw WHOIS or emails).

GET /api/v1/history
GET /api/v1/history?query=example.com
GET /api/v1/history/diff?query=example.com
GET /api/v1/history/diff?query=2001:4860:4860::8888

curl

curl "https://whois.dc5.tech/api/v1/lookup?query=example.com"
curl "https://whois.dc5.tech/api/v1/lookup?query=8.8.8.8&raw=true"
curl "https://whois.dc5.tech/api/v1/history?query=example.com"
curl "https://whois.dc5.tech/api/v1/dns?query=cloudflare.com"

Errors

{
  "error": {
    "code": "INVALID_QUERY",
    "message": "The supplied value is not a valid domain or IP address."
  }
}

Codes: INVALID_QUERY, QUERY_TOO_LONG, TYPE_MISMATCH, RATE_LIMITED (HTTP 429), NOT_READY, HISTORY_DISABLED, INTERNAL.

API v2

CIDR, ASN and Web3 names, plus local reputation and dataset status. /api/v1 is unchanged. GET /api/v2/datasets also returns web3 resolver coverage for this instance.

GET /api/v2/lookup?query=example.com
GET /api/v2/lookup?query=8.8.8.0/24
GET /api/v2/lookup?query=AS15169
GET /api/v2/lookup?query=vitalik.eth
GET /api/v2/web3?query=vitalik.eth
GET /api/v2/reputation?query=evil.example
GET /api/v2/datasets

MCP for AI agents

A Model Context Protocol server (streamable HTTP, no sign-up) at https://whois.dc5.tech/mcp. Tools: lookup_target (domain, IP, CIDR, ASN or Web3 name — a compact summary with a link to the full page), check_mail_security, check_lookalike and list_data_sources. Same rate limit as the API.

# Claude Code
claude mcp add --transport http dc5-whois https://whois.dc5.tech/mcp

# Any MCP client (JSON config)
{ "mcpServers": { "dc5-whois": { "type": "http", "url": "https://whois.dc5.tech/mcp" } } }

Rate limiting

IP-based token bucket. Configure with RATE_LIMIT_ENABLED, RATE_LIMIT_REQUESTS, and RATE_LIMIT_WINDOW.

Machine-readable spec: https://whois.dc5.tech/openapi.yaml. Web UI: https://whois.dc5.tech.