Domain research, priced per query
Search domain suggestions or check availability for fractions of a cent. No API keys. No subscriptions. Pay USDC and go.
curl https://finddomain.io/skill.md
Settled on Base via x402
Give your agent domain lookup without another API key to manage. Or drop availability checks into your SaaS for $0.002 per call.
How It Works
-
1 — Send a request
Send a GET request to any endpoint. No auth header needed. The server responds with HTTP 402 and a
PAYMENT-REQUIREDheader describing the exact price and destination. -
2 — Sign a micropayment
Your wallet (or agent) signs an EIP-3009 USDC authorization for the exact amount. Nothing broadcasts yet — it’s an off-chain signature. No gas required.
-
3 — Get your data
Retry the same request with your
PAYMENT-SIGNATUREheader. The server verifies, settles on-chain, and returns the data.
Pricing
| Endpoint | Price | What you get |
|---|---|---|
GET /suggest?query=… |
$0.002 | Algorithmic domain name suggestions (stemming, IDN normalization) |
GET /status?domain=…&scope=estimate |
$0.003 | Estimated domain availability (DNS-based, no registry lookup) |
GET /status?domain=… |
$0.010 | Precise registry-level availability check |
Prices in USDC on Base mainnet (ERC-20, eip155:8453). $0.002 = 2,000 atomic units.
GET /suggest?query=coffee
{
"suggestions": [
{ "domain": "coffee.io", "available": true },
{ "domain": "getcoffee.com", "available": true },
{ "domain": "coffeetime.co", "available": false },
{ "domain": "mycoffee.app", "available": true }
]
}
GET /status?domain=coffee.com
{
"domain": "coffee.com",
"available": false,
"status": "registered",
"scope": "precise"
}
Response shape is determined by the upstream API and may vary.
Quickstart
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, {
signer: privateKeyToAccount(process.env.PRIVATE_KEY),
});
const fetch = wrapFetchWithPayment(globalThis.fetch, client);
// Domain suggestions
const suggestions = await fetch("https://finddomain.io/suggest?query=coffee");
console.log(await suggestions.json());
// Precise availability
const status = await fetch("https://finddomain.io/status?domain=coffee.com");
console.log(await status.json());
@x402/fetch handles the 402 → sign → retry flow automatically. Install: npm install @x402/fetch @x402/evm viem
import os
from x402.client import Client
from eth_account import Account
account = Account.from_key(os.environ["PRIVATE_KEY"])
client = Client(account)
# Domain suggestions
suggestions = client.get("https://finddomain.io/suggest", params={"query": "coffee"})
print(suggestions.json())
# Precise availability
status = client.get("https://finddomain.io/status", params={"domain": "coffee.com"})
print(status.json())
The x402 Python SDK handles payments automatically. Install: pip install x402
Agent Integration
finddomain.io is built for AI agents. Any agent with an x402-compatible wallet and USDC on Base can call the API autonomously — no user interaction required, no API key to manage.
curl https://finddomain.io/skill.md
The skill file documents all endpoints, the x402 payment flow, example responses, and error handling.
What is x402?
x402 is an open HTTP payment protocol built on the 402 Payment Required status code. When a client calls a protected endpoint, the server responds with a machine-readable PAYMENT-REQUIRED header describing the price and payment address. The client signs a USDC authorization (EIP-3009, gasless) and retries. The server verifies and settles on-chain, then serves the resource. No accounts, no API keys — payment is the authentication.