Registration
Search, register, and renew domains with USDC payments via x402.
Search Domains
Search for available domains across multiple TLDs. This endpoint is public -- no authentication required.
curl "https://domain.conway.tech/domains/search?q=mysite&tlds=com,io,ai"{
"query": "mysite",
"results": [
{
"domain": "mysite.com",
"available": false,
"premium": false
},
{
"domain": "mysite.io",
"available": true,
"premium": false,
"pricing": {
"registration": 43.75,
"renewal": 43.75,
"currency": "USD"
}
},
{
"domain": "mysite.ai",
"available": true,
"premium": false,
"pricing": {
"registration": 87.50,
"renewal": 87.50,
"currency": "USD"
}
}
]
}Default TLDs if none specified: com, io, ai, xyz, net, org, dev.
Check Availability
Check specific domain names directly. Also public.
curl "https://domain.conway.tech/domains/check?domains=mysite.com,mysite.io"{
"domains": [
{ "domain": "mysite.com", "available": false, "premium": false },
{ "domain": "mysite.io", "available": true, "premium": false, "price": 35.00 }
]
}Accepts up to 200 domains per request.
Get Pricing
Get registration, renewal, and transfer costs for specific TLDs. Public.
curl "https://domain.conway.tech/domains/pricing?tlds=com,io,ai,xyz"{
"pricing": [
{ "tld": "com", "registration": 12.50, "renewal": 12.50, "transfer": 12.50 },
{ "tld": "io", "registration": 43.75, "renewal": 43.75, "transfer": 43.75 },
{ "tld": "ai", "registration": 87.50, "renewal": 87.50, "transfer": 87.50 },
{ "tld": "xyz", "registration": 3.75, "renewal": 13.75, "transfer": 3.75 }
]
}Prices are in USD. x402 payments are made in the equivalent USDC amount.
Register a Domain
Requires authentication. Uses x402 for payment.
Step 1 -- Send the registration request (no payment header):
curl -X POST https://domain.conway.tech/domains/register \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{
"domain": "mysite.io",
"years": 1,
"privacy": true
}'The API returns HTTP 402 with the payment requirements:
{
"x402Version": 2,
"error": "X-PAYMENT header is required",
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "43750000",
"payTo": "0x...",
"maxTimeoutSeconds": 300
}
]
}Step 2 -- Sign the payment and resubmit with the X-PAYMENT header:
curl -X POST https://domain.conway.tech/domains/register \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-H "X-PAYMENT: <base64-encoded-payment>" \
-d '{
"domain": "mysite.io",
"years": 1,
"privacy": true
}'On success:
{
"domain": {
"domain": "mysite.io",
"orderId": "abc123",
"status": "Active",
"expiresAt": "2027-02-13T00:00:00Z"
},
"transactionId": "txn_xyz789"
}If the registrar is temporarily unavailable, you'll receive HTTP 202 -- payment is captured and the domain will be provisioned within 24 hours.
Registration Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Full domain name (e.g. mysite.io) |
years | integer | No | Registration period, 1-10 (default: 1) |
privacy | boolean | No | WHOIS privacy (default: true) |
nameservers | string[] | No | Custom nameservers (2-13 entries) |
Renew a Domain
Same x402 payment flow as registration. Requires authentication and domain ownership.
curl -X POST https://domain.conway.tech/domains/mysite.io/renew \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{ "years": 1 }'First call returns 402 with the renewal price. Resubmit with X-PAYMENT to complete.
List Your Domains
curl https://domain.conway.tech/domains \
-H "Authorization: Bearer eyJ..."{
"domains": [
{
"id": "dom_abc123",
"domain": "mysite.io",
"status": "Active",
"registeredAt": "2026-02-13T00:00:00Z",
"expiresAt": "2027-02-13T00:00:00Z",
"privacyEnabled": true,
"nameservers": []
}
]
}Get Domain Info
curl https://domain.conway.tech/domains/mysite.io \
-H "Authorization: Bearer eyJ..."Returns cached domain info, with background refresh from the registrar when data is older than 5 minutes.
Toggle WHOIS Privacy
curl -X PUT https://domain.conway.tech/domains/mysite.io/privacy \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{ "enabled": true }'Update Nameservers
curl -X PUT https://domain.conway.tech/domains/mysite.io/nameservers \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{ "nameservers": ["ns1.cloudflare.com", "ns2.cloudflare.com"] }'Accepts 2-13 nameserver entries.