web), send email (email_sending), and receive email (email_receiving) — search for a name, buy it or connect one you own, and verify.
A freshly built Site lives at https://<subdomain>.crevio.app. The Domains API moves it to https://yourbrand.com. Buy through Crevio and DNS is configured for you automatically — zero records to add. Connect a domain you own and the response tells you exactly which records to add and tracks each one individually.
Domains carry their own resource ID, returned by the purchase and create calls.
The flow at a glance
1
Search for a buyable domain
GET /domains/search returns available names and prices.2
Purchase it — or connect your own
POST /domains/purchase registers the domain and auto-configures every DNS record. POST /domains connects a domain you already own.3
Check what's left
GET /domains/{id} returns per-capability statuses, every DNS record with its own status, and a next_step sentence.4
Verify
POST /domains/{id}/verify confirms DNS and goes live.Worked example: buy a domain and attach it to a site
1. Search for an available domain
2. Purchase it
domain is required.
GET /domains/{id} until the capabilities you care about read active.
GET /domains/{id} carries purchase_status for domains bought through Crevio, and next_step spells the same thing out in a sentence. It’s the answer to “did my payment go through?” — the DNS capabilities stay pending until the registration lands, so read the purchase first:
Domain purchases are platform charges, not storefront orders, so they never appear in
GET /orders.
With no card on file the response carries a
checkout_url instead, and the domain sits at pending_payment until it’s paid. Checkout links expire after a day — call POST /domains/purchase again for the same domain to get a fresh one. A domain that’s already paid for (registering) or already yours (registered) refuses a repeat purchase and says so.3. Assign it to a site
Site assignment is an attribute — setsite_id (or pass it at create time). "site_id": null detaches.
4. Verify
Verification is idempotent and re-checks every enabled capability. Scope it with?capability=web|email_sending|email_receiving to skip the other providers’ checks.
Verification can take time to propagate. If it doesn’t pass immediately, the platform re-checks in the background, so a verify that returns “pending” will often resolve on its own.
Connect a domain you already own
If you registered a domain elsewhere, create it instead of purchasing. The response carries the DNS records to add at your registrar — each with its ownstatus — plus a next_step telling you whose move it is.
GET /domains/{id} is the source of truth while you set up DNS: records[] shows each record as pending or verified, and capabilities shows web / email_sending / email_receiving as pending, active, error, or null (off). Toggle capabilities later with PATCH /domains/{id} { "capabilities": { ... } }.
DNS zone management
For domains purchased through Crevio, the DNS zone itself is manageable — add an MX record, a TXT verification record, or a CNAME for a subdomain. The zone’s ID is on the domain payload aszone_id.
Next steps
Sites
Build the site you’ll attach this domain to.
Send from your own address once email_sending is active.
API reference
Every domain endpoint and parameter.
Usage & credits
How domain registration is billed.

