Domain registration facts (RDAP whois) API
Registration facts for a domain from its registry's RDAP server, located through the IANA bootstrap file: registrar name, IANA ID and abuse contact, created, updated and expiry dates, age and days to expiry, EPP status codes, transfer lock, nameservers, DNSSEC delegation flag, and the registry RDAP URL and terms link. No registrant contact data. Registries whose terms bar reuse (Nominet, CentralNic, Google Registry) are not queried.
$0.003 per call USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.
Endpoint
GET https://api.kit-rx.com/v1/domain/whois
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | yes | Bare domain, hostname, email address or URL. Scheme, path, port and credentials are stripped and IDNs are converted to punycode. IP addresses and private names are rejected. Facts describe the registrable domain (eTLD+1). e.g. github.com |
Example request
https://api.kit-rx.com/v1/domain/whois?domain=github.com
Without payment the server answers 402 Payment Required with the price (3000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.
curl -i "https://api.kit-rx.com/v1/domain/whois?domain=github.com"
Pay from an agent
AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://api.kit-rx.com/mcp. Code:
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://api.kit-rx.com/v1/domain/whois?domain=github.com");
console.log(await res.json());
Example response
{
"query": {
"domain": "github.com"
},
"result": {
"domain": "github.com",
"domain_unicode": null,
"host": "github.com",
"public_suffix": "com",
"registered": true,
"registrar": "MarkMonitor Inc.",
"registrar_iana_id": "292",
"registrar_abuse": {
"email": "abusecomplaints@markmonitor.com",
"phone": "+1.2086851750"
},
"created": "2007-10-09T18:20:50.000Z",
"updated": "2026-09-07T09:22:52.000Z",
"expires": "2028-10-09T18:20:50.000Z",
"age_days": 6976,
"days_to_expiry": 694,
"status": [
"client delete prohibited",
"client transfer prohibited",
"client update prohibited"
],
"transfer_locked": true,
"nameservers": [
"dns1.p08.nsone.net",
"dns2.p08.nsone.net",
"dns3.p08.nsone.net",
"ns-1283.awsdns-32.org"
],
"dnssec": false,
"registry": {
"rdap_server": "rdap.verisign.com",
"rdap_url": "https://rdap.verisign.com/com/v1/domain/github.com",
"terms": {
"title": "Terms of Service",
"link": "https://www.verisign.com/domain-names/registration-data-access-protocol/terms-service/index.xhtml"
}
}
},
"sources": [
{
"name": "IANA RDAP bootstrap",
"url": "https://data.iana.org/rdap/dns.json"
},
{
"name": "Registry RDAP (rdap.verisign.com)",
"url": "https://rdap.verisign.com/com/v1/domain/github.com"
}
],
"attribution": [
"Registration data from the domain's registry via RDAP, …"
],
"generated_at": "2026-11-14T21:44:01.859Z"
}
Kit Rx: Composed public-data reports for AI agents, paid per call in USDC over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.