Skip to content

Domains API

Search, price, and register domains. Registered domains can then be attached to projects through the Projects API. All endpoints require auth.

Search & quote

GET /v1/domains/search

Check availability for a domain (and typically suggested alternatives).

Requires read.

FieldTypeDescription
qstringThe domain or keyword to search
curl "https://api.cantila.app/v1/domains/search?q=example.com" \
  -H "Authorization: Bearer sk_live_xxxx"
{
  "query": "example.com",
  "results": [
    { "domain": "example.com", "available": false },
    { "domain": "example.app", "available": true }
  ]
}
Response shapes on this page are representative.

POST /v1/domains/quote

Get a registration price quote for one or more domains before committing.

Requires read.

FieldTypeDescription
domainstringThe domain to quote
yearsnumberOptional registration term
curl -X POST https://api.cantila.app/v1/domains/quote \
  -H "Authorization: Bearer sk_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "example.app", "years": 1 }'
{ "domain": "example.app", "currency": "USD", "price": "14.00", "years": 1 }

Registrations

GET /v1/domains/registrations

List the domains registered in the current account.

Requires read.

curl https://api.cantila.app/v1/domains/registrations \
  -H "Authorization: Bearer sk_live_xxxx"

POST /v1/domains/registrations

Register a domain. The charge lands on your single Cantila invoice — see Billing.

Requires admin.

FieldTypeDescription
domainstringThe domain to register
yearsnumberOptional registration term
curl -X POST https://api.cantila.app/v1/domains/registrations \
  -H "Authorization: Bearer sk_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "example.app", "years": 1 }'
{ "domain": "example.app", "status": "registered", "expiresAt": "2027-05-28" }