80trust / 100

Domain Availability

by Tanod dnspeek in Developer tools

x402 APIPassing, checked 3 h ago

dnspeek (Tanod) domain availability: registry RDAP and DNS NS evidence for each name, inferred and not a registrar quote. USD 0.0005 per name, at least USD 0.002 per call (1-50 names per call: USD 0.002-0.025). This call: 3 names. Use when an agent must check whether domain names are free to register before suggesting or buying them.

POST https://tanod.dev/v1/domain/availability

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
295 ms typical, 1.1 s slowest 5%
Last check
3 h ago
Next check
any minute now

How to call it

# bash or zsh: see the payment challenge (nothing is charged)
curl -g -i -X POST 'https://tanod.dev/v1/domain/availability' \
  -H 'content-type: application/json' \
  --data-raw '{"names":["example.com","tanod-not-a-real-name-12345.com","b\u00fccher.de"]}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ftanod.dev%2Fv1%2Fdomain%2Favailability
const res = await pay("https://tanod.dev/v1/domain/availability", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: "{\"names\":[\"example.com\",\"tanod-not-a-real-name-12345.com\",\"b\u00fccher.de\"]}",
});
console.log(await res.json());

Example input

{
  "names": [
    "example.com",
    "tanod-not-a-real-name-12345.com",
    "bücher.de"
  ]
}

Example output

{
  "available": 1,
  "checked_at": "2026-10-10T08:00:00Z",
  "count": 3,
  "disclaimer": "Availability is inferred from the registry's public RDAP answer and DNS, not from a registrar. Premium, reserved, blocked or not-yet-released names can look available and still not be registrable, and a name can be taken between this check and a purchase. Only a registrar can confirm that a name can be bought.",
  "registered": 2,
  "results": [
    {
      "evidence": {
        "ns_found": null,
        "rdap_error": null,
        "rdap_status": 200
      },
      "name": "example.com",
      "note": "The registry's RDAP server has a record for this name.",
      "status": "registered"
    },
    {
      "evidence": {
        "ns_found": false,
        "rdap_error": null,
        "rdap_status": 404
      },
      "name": "tanod-not-a-real-name-12345.com",
      "note": "No RDAP record and no NS records. Likely available; premium or reserved names can look the same, so confirm with a registrar.",
      "status": "available"
    },
    {
      "evidence": {
        "ns_found": true,
        "rdap_error": "no_rdap_server",
        "rdap_status": null
      },
      "input": "bücher.de",
      "name": "xn--bcher-kva.de",
      "note": "RDAP could not decide, and the name has NS records in DNS.",
      "status": "registered"
    }
  ],
  "unknown": 0
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed4021.2 s$0.002
7 h agoPassed4021.0 s$0.002
11 h agoPassed402257 ms$0.002
15 h agoPassed402293 ms$0.002
19 h agoPassed4021.1 s$0.002
22 h agoPassed402383 ms$0.002
26 h agoPassed402871 ms$0.002
29 h agoPassed402914 ms$0.002
33 h agoPassed402271 ms$0.002
37 h agoPassed402279 ms$0.002
40 h agoPassed402284 ms$0.002
44 h agoPassed402298 ms$0.002
2 days agoPassed402277 ms$0.002
2 days agoPassed402821 ms$0.002
2 days agoPassed402826 ms$0.002