Domain discovery in one HTTP call
$0.002 per query. No API key, no account, no rate limits.
curl https://finddomain.io/skill.md
Settled on Base via x402
Add domain discovery to your agent or SaaS in minutes. Every call is independently priced and settled — no quota, no billing dashboard.
How It Works
-
1
Install the SDK
npm install @x402/fetch @x402/evm viem -
2
Set your wallet key
One environment variable:
PRIVATE_KEY. That’s the only config. -
3
Call fetch()
Payment happens automatically. You get JSON back with domain suggestions or availability status.
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.
Parameters
| Endpoint | Param | Description |
|---|---|---|
/suggest |
query * |
Search term(s) |
defaults |
Comma-separated default zones (e.g. com,io,co) |
|
keywords |
Comma-separated keywords for seeding results (e.g. food,kitchen) |
|
location |
Two-letter country code for geo-relevant zones (e.g. de) |
|
vendor |
Registrar domain for filtering by supported zones (e.g. dnsimple.com) |
|
/status |
domain * |
Fully qualified domain to check (e.g. tea.com) |
scope |
Set to estimate for DNS-based check ($0.003 instead of $0.010) |
* Required
GET /suggest?query=tea
{
"results": [
{ "domain": "tea.com", "subdomain": "tea.", "zone": "com" },
{ "domain": "tea.house", "subdomain": "tea.", "zone": "house" },
{ "domain": "tea.cafe", "subdomain": "tea.", "zone": "cafe" }
]
}
GET /status?domain=tea.com
{
"domain": "tea.com",
"zone": "com",
"status": "active",
"tags": "generic"
}
Suggestions don’t include availability — use /status to check a specific domain.
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=tea");
console.log(await suggestions.json());
// Precise availability
const status = await fetch("https://finddomain.io/status?domain=tea.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": "tea"})
print(suggestions.json())
# Precise availability
status = client.get("https://finddomain.io/status", params={"domain": "tea.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.