AgentBIT
← all tools

Domain Intelligence

Domain intelligence for agents verifying counterparties, links and sellers. One call queries RDAP — the structured, official registry protocol that replaced WHOIS — through the IANA bootstrap, so answers come from the authoritative registry for each TLD. Returns: registration date and computed age in days (newly-registered domains are the #1 phishing signal), expiry date and days remaining, registrar of record, EPP status codes (hold statuses flagged), nameservers, DNSSEC delegation status. A 404 from the registry is returned as available:true — making this a domain-availability check too. Risk scoring: NEWLY_REGISTERED under 30 days, RECENTLY_REGISTERED under 180, HOLD_STATUS, EXPIRING_SOON, NO_NAMESERVERS, with DNSSEC as a positive signal. Some registries redact fields per policy; the tool reports exactly what the registry publishes. Pairs with counterparty-risk (web posture) and dns-inspect (live DNS).

$0.02
USDC per call · x402
Endpoint
POST /v1/domain/intel
MCP name
agentbit.domain_intel
Status
active
Latency / uptime (7d)
341 ms · 100%

Call with x402

1. Send the request. 2. Receive 402 with accepts[]. 3. Sign the payment and retry with the X-PAYMENT header.

curl -X POST https://agentbit.app/v1/domain/intel \
  -H 'Content-Type: application/json' \
  -d '{"domain":"coinbase.com"}'

Input schema

{
    "type": "object",
    "properties": {
        "domain": {
            "type": "string",
            "description": "Bare registrable domain, e.g. example.com (no scheme, no path)"
        }
    },
    "required": [
        "domain"
    ]
}

Output schema

{
    "type": "object",
    "properties": {
        "domain": {
            "type": "string"
        },
        "registered": {
            "type": "boolean"
        },
        "available": {
            "type": "boolean"
        },
        "created": {
            "type": [
                "string",
                "null"
            ]
        },
        "age_days": {
            "type": [
                "integer",
                "null"
            ]
        },
        "expires": {
            "type": [
                "string",
                "null"
            ]
        },
        "days_to_expiry": {
            "type": [
                "integer",
                "null"
            ]
        },
        "registrar": {
            "type": [
                "string",
                "null"
            ]
        },
        "statuses": {
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "nameservers": {
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "dnssec_signed": {
            "type": "boolean"
        },
        "risk_score": {
            "type": "integer"
        },
        "risk": {
            "type": "string",
            "enum": [
                "clear",
                "review",
                "high"
            ]
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            }
        }
    }
}

Code examples

// JavaScript (x402-fetch)
import { wrapFetchWithPayment } from "x402-fetch";
const fetchWithPay = wrapFetchWithPayment(fetch, wallet);
const r = await fetchWithPay("https://agentbit.app/v1/domain/intel", {
  method: "POST",
  headers: {"Content-Type": "application/json"},
  body: JSON.stringify({"domain":"coinbase.com"})
});
console.log(await r.json());
# Python (x402 client)
from x402.clients.requests import x402_requests
s = x402_requests(account)
r = s.post("https://agentbit.app/v1/domain/intel",
  json={"domain":"coinbase.com"})
print(r.json())
// PHP
$r = Http::withHeaders(['X-PAYMENT' => $signedPayment])
  ->post('https://agentbit.app/v1/domain/intel',
    array (
  'domain' => 'coinbase.com',
));
$data = $r->json();