LIVE
x402 WHOIS
WHOIS Intelligence
whois MCP for agents. Pay-per-request WHOIS lookup on Base USDC. Not @x402/fetch.
When to use
WHOIS lookup via RDAP (registrar, status, dates, nameservers, DNSSEC). Use when you need live registry data and must not guess. Unregistered names return not_found.
Try
Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.
/v1/tools/whois?domain=example.com
Full URL: https://api.fetchx402.com/v1/tools/whois?domain=example.com
Request
GET
/v1/tools/whois · x402 V2 · USDC on Base · $0.005 USDC
x402 V2 curl
Expect HTTP 402 and a PAYMENT-REQUIRED
header until you retry with PAYMENT-SIGNATURE.
curl -i -H "Accept: application/json" "https://api.fetchx402.com/v1/tools/whois?domain=example.com"
Cursor mcp.json
Intended config for @fetchx402/mcp. This is not npm @x402/fetch
(a payment fetch wrapper).
{
"mcpServers": {
"fetchx402": {
"args": [
"-y",
"@fetchx402/mcp"
],
"command": "npx",
"env": {
"X402_PRIVATE_KEY": "0xYOUR_SPENDING_KEY"
}
}
}
}
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain |
string | required | Public fully-qualified domain name to look up, such as example.com. IPs, localhost, and internal/mDNS names are rejected. |
Success fields
| Field | Type | Description |
|---|---|---|
domain |
string | Normalized FQDN that was queried |
source |
string | Always rdap in v1 |
rdap_server |
string | RDAP base URL selected from the IANA bootstrap |
handle |
string | null | Registry object handle, if published |
status |
array | Registry status strings as published |
registrar |
object | null | Registrar name and IANA ID when present; null if RDAP omitted them |
created_at |
string | null | Registration event (ISO-8601 UTC) |
updated_at |
string | null | Last-changed event (ISO-8601 UTC) |
expires_at |
string | null | Expiration event (ISO-8601 UTC) |
nameservers |
array | LDH nameserver hostnames, lowercase, no trailing dot |
dnssec |
boolean | True when secureDNS.delegationSigned is true |
Example
Frozen fixture. Not a live lookup.
{
"created_at": "1995-08-14T04:00:00Z",
"dnssec": true,
"domain": "example.com",
"expires_at": "2025-08-13T04:00:00Z",
"handle": "2336799_DOMAIN_COM-VRSN",
"nameservers": [
"a.iana-servers.net",
"b.iana-servers.net"
],
"rdap_server": "https://rdap.verisign.com/com/v1/",
"registrar": {
"iana_id": "376",
"name": "RESERVED-Internet Assigned Numbers Authority"
},
"source": "rdap",
"status": [
"client delete prohibited",
"client transfer prohibited",
"client update prohibited"
],
"updated_at": "2024-08-14T07:01:39Z"
}
Payment
Unpaid requests return HTTP 402 with a base64 PAYMENT-REQUIRED
header. Retry the same URL with PAYMENT-SIGNATURE. Settlement completes before the
tool runs. Full handshake and shared payment errors: Payments.
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_domain |
Domain is missing, malformed, an IP address, or a blocked/internal name |
| 402 | payment_required |
Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header |
| 404 | rdap_unavailable |
This TLD has no RDAP server in the IANA bootstrap |
| 404 | not_found |
RDAP has no registration object for this domain |
| 502 | rdap_upstream |
RDAP server returned an unusable response |
| 503 | bootstrap_unavailable |
IANA RDAP bootstrap could not be loaded |
| 503 | overloaded |
Tool concurrency cap reached; retry shortly |
| 504 | whois_timeout |
RDAP lookup timed out |
| 409 | payment_in_progress |
The same authorization nonce is already being settled; retry shortly |
| 429 | rate_limited |
Too many requests from this client |
| 503 | settlement_uncertain |
Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE |
| 503 | facilitator_unavailable |
Payment facilitator unavailable |
| 503 | facilitator_misconfigured |
Payment facilitator is not configured |
| 503 | facilitator_unauthorized |
Payment facilitator rejected credentials |
| 503 | ledger_unavailable |
Payment ledger unavailable |
| 503 | payment_unavailable |
Payment processing unavailable |
Guarantees
- Settlement finishes before the tool executes. Uncertain settlement fails closed (HTTP 503).
- Lookups run on our nodes — no third-party data API wrappers.
- Localhost, IP literals, and metadata hostnames are rejected.
- Execution is timeout-bounded and concurrency-capped.