Domains for AI Agents

A dead simple API for registering domains. Built for bots. Pay in stablecoins, get a key, register domains.

How it works · Credits · Payment · Pricing · API Reference · Errors · Rate Limits

How it works

Send USDT, USDC, or USD1 on Solana to your unique deposit address. Credits load 1:1 on confirmation. Use credits to check and register domains via the API. No account creation. No email. No browser required.

1. Call POST /v1/wallet/new — get a deposit address and API key.
2. Send stablecoins to your address. $1 = $1.00 in credits.
3. Use your API key to check availability and register domains.


Credits

ActionCost
Domain availability check$0.01 per domain
Domain registrationDomain cost + $1.00 flat fee
DNS record updateFree
List domains / wallet balanceFree

Credits never expire. Check costs are deducted to prevent abuse, not to make money.


Payment

Accepted tokens on Solana mainnet:

USDT USDC USD1

Each API key is tied to a unique Solana wallet address. Send any supported token to that address to top up. Credits appear after 1 block confirmation (~400ms).

Minimum deposit: $5.00. Deposits below this are ignored. Send only supported tokens — other tokens sent to your address cannot be recovered.

Pricing

Domain costs are passed through from Namecheap at cost, plus a $1.00 flat service fee. Call /v1/check to get the exact price before registering.

TLDApprox. domain costService feeApprox. total
.com$9.98$1.00$10.98
.ai$79.98$1.00$80.98
.io$39.98$1.00$40.98
.xyz$1.18$1.00$2.18
.net$12.98$1.00$13.98

Prices vary by TLD and promotional period. Always check first.


API Reference

Base URL: https://api.domainsforagents.com

All authenticated requests must include:

Authorization: Bearer YOUR_API_KEY

All responses are application/json.

POST/v1/wallet/new

Generate a new Solana deposit wallet and API key. No authentication required. Rate limited: 5 requests per IP per hour.

No request body needed.

Response:

{
  "api_key":  "sk_live_4xKj9mR...",
  "wallet":   "7fG3mQpVbN2eKs9TxYwZ1uLoDaHrCvJpW8iE5nA",
  "network":  "solana",
  "accepted": ["USDT", "USDC", "USD1"],
  "credits":  0.00
}
Save your API key. It is not stored in recoverable form. Your deposit address is permanent — you can always send more funds to it.

GET/v1/wallet

Get your deposit address and current credit balance.

Response:

{
  "wallet":  "7fG3mQpVbN2eKs9TxYwZ1uLoDaHrCvJpW8iE5nA",
  "network": "solana",
  "credits": 24.37
}

POST/v1/registrant

Set registrant contact info. Required before you can call /v1/register. Must be a real legal person or organization per ICANN policy. Only needs to be set once.

Request:

{
  "first_name":   "Jane",
  "last_name":    "Smith",
  "email":        "[email protected]",
  "phone":        "+1.5555550100",
  "address":      "123 Main St",
  "city":         "San Francisco",
  "state":        "CA",
  "postal_code":  "94105",
  "country":      "US",
  "organization": "Acme Corp"
}

Response:

{
  "saved":         true,
  "whois_privacy": true
}

WHOIS privacy is enabled by default at no extra cost.

POST/v1/check

Check domain availability and get the current registration price. Deducts $0.01 per domain checked.

Single domain:

{
  "domain": "myagent.ai"
}

Multiple domains (batch):

{
  "domains": ["myagent.ai", "myagent.com", "myagent.xyz"]
}

Response:

{
  "results": [
    {
      "domain":    "myagent.ai",
      "available": true,
      "price": {
        "domain_cost": 79.98,
        "service_fee": 1.00,
        "total":       80.98,
        "currency":    "USD"
      }
    },
    {
      "domain":    "myagent.com",
      "available": false,
      "price":     null
    }
  ],
  "credits_deducted":  0.03,
  "credits_remaining": 24.34
}

POST/v1/register

Register a domain. Credits are deducted immediately. Requires registrant info to be set via /v1/registrant first.

Request:

{
  "domain":      "myagent.ai",
  "years":       1,
  "auto_renew":  false,
  "nameservers": ["ns1.example.com", "ns2.example.com"]
}

nameservers is optional. Defaults to Namecheap's DNS if omitted.

Response:

{
  "domain":             "myagent.ai",
  "registered":         true,
  "expires_at":         "2027-02-19T00:00:00Z",
  "nameservers":        ["ns1.example.com", "ns2.example.com"],
  "credits_deducted":   80.98,
  "credits_remaining":  0.00
}

POST/v1/dns

Set DNS records for a domain registered through this API. Free. Overwrites existing records.

Request:

{
  "domain": "myagent.ai",
  "records": [
    { "type": "A",     "host": "@",   "value": "76.76.21.21",             "ttl": 300 },
    { "type": "CNAME", "host": "www", "value": "myagent.ai",              "ttl": 300 },
    { "type": "TXT",   "host": "@",   "value": "v=spf1 include:mx ~all",  "ttl": 300 },
    { "type": "MX",    "host": "@",   "value": "mail.example.com",        "ttl": 300, "priority": 10 }
  ]
}

Response:

{
  "domain":  "myagent.ai",
  "updated": true
}

GET/v1/domains

List all domains registered under this API key. Free.

Response:

{
  "domains": [
    {
      "domain":      "myagent.ai",
      "registered_at": "2026-02-19T10:00:00Z",
      "expires_at":    "2027-02-19T00:00:00Z",
      "auto_renew":    false,
      "nameservers":   ["dns1.registrar-servers.com", "dns2.registrar-servers.com"]
    }
  ],
  "total": 1
}

Errors

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_creditsNot enough credits. Top up your wallet.
404domain_not_foundDomain not registered under this key.
409domain_unavailableDomain is already taken.
422invalid_domainMalformed domain name.
422missing_registrantSet registrant info via /v1/registrant first.
429rate_limitedToo many requests. See rate limits.
500registrar_errorNamecheap returned an error. Credits not deducted.

All errors follow this shape:

{
  "error":             "insufficient_credits",
  "message":           "You have $0.36. This registration costs $80.98.",
  "credits_remaining": 0.36
}

Rate Limits

EndpointLimit
POST /v1/wallet/new5 / IP / hour
POST /v1/check60 / minute / key
POST /v1/register10 / minute / key
POST /v1/dns30 / minute / key
All others120 / minute / key

Rate limit state is included on every response:

X-RateLimit-Limit:     60
X-RateLimit-Remaining: 47
X-RateLimit-Reset:     1708344120

When limited, you'll receive a 429 with a Retry-After header.


Domains for AI Agents &mdash