Conway

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

ParameterTypeRequiredDescription
domainstringYesFull domain name (e.g. mysite.io)
yearsintegerNoRegistration period, 1-10 (default: 1)
privacybooleanNoWHOIS privacy (default: true)
nameserversstring[]NoCustom 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.