Pricing
Simple, transparent pricing. Free endpoints for everyone. Pay-per-request for premium APIs via x402 or MPP.
── Free Endpoints ──
No API key required. Rate limited to 60 requests/minute per IP address.
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ Endpoint Rate Limit Price │
│ ──────── ────────── ───── │
│ /v1/check 60 req/min Free │
│ /v1/whois 60 req/min Free │
│ /v1/tlds 60 req/min Free │
│ /v1/register 60 req/min Free │
│ /v1/auctions 60 req/min Free │
│ /v1/aftermarket/{domain} 60 req/min Free │
│ /v1/ens/check 60 req/min Free │
│ /v1/ens/metadata 60 req/min Free │
│ /health 60 req/min Free │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐
│ │
│ Free Endpoints (60 req/min) │
│ ──────────────────────── │
│ ▸ /v1/check │
│ ▸ /v1/whois │
│ ▸ /v1/tlds │
│ ▸ /v1/register │
│ ▸ /v1/auctions │
│ ▸ /v1/aftermarket/{domain} │
│ ▸ /v1/ens/check │
│ ▸ /v1/ens/metadata │
│ ▸ /health │
│ │
└──────────────────────────────────┘
── Paid Endpoints ──
Pay per request with USDC on Base (x402) or USDC.e on Tempo (MPP). No API key. No subscription. No rate limits.
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ Endpoint Price per Request │
│ ──────── ───────────────── │
│ /v1/valuation/{domain}?tier=quick $0.02 │
│ /v1/valuation/{domain}?tier=full $0.08 │
│ /v1/name-search-presence $0.02 │
│ /v1/intel $0.05 │
│ │
│ Payment: USDC on Base (x402) or USDC.e on Tempo (MPP) │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ Paid via x402 or MPP │ │ ──────────────────────── │ │ ▸ /v1/valuation (quick) $0.02 │ │ ▸ /v1/valuation (full) $0.08 │ │ ▸ /v1/name-search-presence $0.02│ │ ▸ /v1/intel $0.05 │ │ │ └──────────────────────────────────┘
── What is x402? ──
x402 is an open protocol for HTTP-native payments. It uses the 402 Payment Required status code — the same one the HTTP spec reserved for digital payments back in 1999.
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ How x402 Works │
│ ────────────── │
│ │
│ 1. Client sends request to paid endpoint │
│ GET /v1/valuation/example.com │
│ │
│ 2. Server responds with 402 + payment details │
│ 402 Payment Required │
│ { amount, recipient, network, token } │
│ │
│ 3. Client signs USDC payment on Base │
│ (handled automatically by x402 SDK) │
│ │
│ 4. Client retries with payment header │
│ X-PAYMENT: │
│ │
│ 5. Server verifies payment, returns data │
│ 200 OK + valuation response │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ How x402 Works │ │ ────────────── │ │ │ │ 1. Request paid endpoint │ │ 2. Get 402 + payment details │ │ 3. Sign USDC payment on Base │ │ 4. Retry with payment header │ │ 5. Get your data │ │ │ │ SDK handles steps 2-4 │ │ automatically! │ │ │ └──────────────────────────────────┘
── Quick Start ──
Use the Coinbase x402 client SDK to make paid requests automatically.
import { paymentMiddleware } from "x402-axios";
import axios from "axios";
// Create client with x402 payment middleware
const client = axios.create();
client.use(paymentMiddleware("YOUR_WALLET_PRIVATE_KEY"));
// Payment is handled automatically on 402
const response = await client.get(
"https://api.robotdomainsearch.com/v1/valuation/example.com?tier=full"
);
console.log(response.data);
from x402_python import x402_requests
# Create session with x402 payment handling
session = x402_requests.Session(
wallet_private_key="YOUR_WALLET_PRIVATE_KEY"
)
# Payment is handled automatically on 402
response = session.get(
"https://api.robotdomainsearch.com/v1/valuation/example.com",
params={"tier": "full"}
)
print(response.json())
import "github.com/coinbase/x402-go"
// Create x402-enabled HTTP client
client := x402.NewClient("YOUR_WALLET_PRIVATE_KEY")
// Payment is handled automatically on 402
resp, err := client.Get(
"https://api.robotdomainsearch.com/v1/valuation/example.com?tier=full",
)
→ Coinbase x402 Buyer Quickstart · x402 Protocol Spec
→ MPP IETF Draft · Tempo Documentation · Payments Documentation
── What is MPP? ──
MPP (Machine Payment Protocol) uses standard HTTP Authentication (WWW-Authenticate / Authorization) — the same mechanism as Basic and Bearer auth. Settles on the Tempo blockchain with USDC.e. Formally specified as the "Payment" HTTP Authentication Scheme in draft-ryan-httpauth-payment.
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ How MPP Works │ │ ───────────── │ │ │ │ 1. Client sends request to paid endpoint │ │ GET /v1/valuation/example.com │ │ │ │ 2. Server responds with 402 + WWW-Authenticate challenge │ │ 402 Payment Required │ │ WWW-Authenticate: Payment id="...", method="tempo", request="..." │ │ │ │ 3. Client decodes challenge, creates USDC.e transfer on Tempo │ │ (chain ID 4217, EVM-compatible) │ │ │ │ 4. Client retries with Authorization header │ │ Authorization: Payment│ │ │ │ 5. Server verifies HMAC + on-chain payment, returns data │ │ 200 OK + Payment-Receipt header │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ How MPP Works │ │ ───────────── │ │ │ │ 1. Request paid endpoint │ │ 2. Get 402 + WWW-Authenticate │ │ 3. Pay USDC.e on Tempo │ │ 4. Retry with Authorization │ │ 5. Get data + Payment-Receipt │ │ │ │ Standard HTTP Auth — │ │ same as Basic/Bearer │ │ │ └──────────────────────────────────┘
── Dual Protocol ──
Every 402 response includes challenges for both protocols simultaneously. Your agent picks whichever it supports — same price regardless of protocol.
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ 402 Payment Required │ │ ──────────────────── │ │ │ │ WWW-Authenticate: Payment id="...", method="tempo", request="..." │ │ ↑ MPP challenge (USDC.e on Tempo) │ │ │ │ X-PAYMENT-REQUIREMENTS: eyJwcmljZSI6IjAuMDIi... │ │ ↑ x402 challenge (USDC on Base) │ │ │ │ Agent picks whichever protocol it supports. │ │ Same endpoint. Same price. Two independent payment rails. │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ 402 Response includes: │ │ ───────────────────── │ │ │ │ WWW-Authenticate: Payment ... │ │ → MPP (Tempo) │ │ │ │ X-PAYMENT-REQUIREMENTS: ... │ │ → x402 (Base) │ │ │ │ Same price, two rails. │ │ │ └──────────────────────────────────┘
→ See Payments documentation for full integration details.
── Rate Limit Headers ──
Free endpoints include rate limit headers in every response.
┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ Header Description │ │ ────── ─────────── │ │ X-RateLimit-Limit Maximum requests per minute (60) │ │ X-RateLimit-Remaining Requests remaining in current window │ │ X-RateLimit-Reset Unix timestamp when the limit resets │ │ │ │ When exceeded → 429 Too Many Requests + Retry-After header │ │ │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────┐ │ │ │ X-RateLimit-Limit: 60 │ │ X-RateLimit-Remaining: 55 │ │ X-RateLimit-Reset: 170406... │ │ │ │ Exceeded → 429 + Retry-After │ │ │ └──────────────────────────────────┘
→ See Rate Limits documentation for best practices and code examples.
── Why Pay-Per-Request? ──
- No API keys — No registration, no tokens to manage. Just pay and use.
- No subscriptions — Pay only for what you use. No monthly minimums.
- Instant access — Start making paid requests immediately with a funded wallet.
- Transparent — Pricing is embedded in the protocol. The 402 response tells you exactly what a request costs.
- AI-native — AI agents can discover pricing and pay autonomously. No human-in-the-loop needed.