DNS records for a domain API
Current DNS records for a hostname from Cloudflare DNS over HTTPS: A, AAAA, CNAME chain, MX with priority and null-MX flag, NS, TXT (up to 25 records of at most 400 characters, email addresses redacted), CAA as flag, tag and value, and SOA primary nameserver, serial and timers, each with its minimum TTL. An optional type parameter limits the answer to one record type. For subdomains without their own zone, NS and SOA come from the registrable domain.
$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://domain.kit-rx.com/v1/domain/dns
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. e.g. github.com |
type | string: A, AAAA, CNAME, MX, NS, TXT, CAA, SOA | no | One record type to return instead of all of them (case-insensitive). e.g. MX |
Example request
https://domain.kit-rx.com/v1/domain/dns?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://domain.kit-rx.com/v1/domain/dns?domain=github.com"
Pay from an agent
AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://domain.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://domain.kit-rx.com/v1/domain/dns?domain=github.com");
console.log(await res.json());
Example response
{
"query": {
"domain": "github.com"
},
"result": {
"host": "github.com",
"host_unicode": null,
"registrable_domain": "github.com",
"type": "ALL",
"rcode": "NOERROR",
"records": {
"cname": [],
"a": [
"140.82.114.3"
],
"aaaa": [],
"mx": [
{
"priority": 0,
"host": "github-com.mail.protection.outlook.com"
}
],
"null_mx": false,
"ns": [
"dns1.p08.nsone.net",
"dns2.p08.nsone.net",
"dns3.p08.nsone.net",
"ns-1283.awsdns-32.org"
],
"ns_zone": "github.com",
"txt": [
"v=spf1 ip4:192.30.252.0/22 include:spf.protection.outlook.com …",
"MS=ms44452932",
"apple-domain-verification=RyQhdzTl6Z6x8ZP4"
],
"txt_count": 24,
"caa": [
{
"flags": 0,
"tag": "issue",
"value": "digicert.com"
},
{
"flags": 0,
"tag": "issuewild",
"value": "letsencrypt.org"
}
],
"soa": {
"zone": "github.com",
"primary_ns": "dns1.p08.nsone.net",
"serial": 1656468023,
"refresh": 43200,
"retry": 7200,
"expire": 1209600,
"minimum_ttl": 3600
}
},
"ttl": {
"cname": null,
"a": 12,
"aaaa": null,
"mx": 112,
"ns": 1330,
"txt": 112,
"caa": 3412,
"soa": 3412
}
},
"sources": [
{
"name": "Cloudflare DNS over HTTPS (JSON API)",
"url": "https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-json/"
}
],
"notes": [
"The SOA contact mailbox (RNAME) is omitted."
],
"attribution": [
"DNS resolved via Cloudflare 1.1.1.1 DNS-over-HTTPS."
],
"generated_at": "2026-11-14T21:47:15.023Z"
}
Kit Rx Domain WHOIS, DNS & Email Security: Domain intelligence for AI agents: WHOIS (RDAP), DNS, SPF/DKIM/DMARC email security, bulk checks and due-diligence scores, paid per call over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.