- ›
/domain— list, connect (BYOD), verify, search, purchase domains and edit DNS on the delegated zone - ›
Live DNS zone on Vercel— zone record list/create/delete via documented endpoints; email verification records via Resend setup flow - ›
Email records— MX/SPF/DKIM from connect/purchase responses; verify with POST /v1/domains/:id/verify per the domains guide - ›
App hosting— apex A/AAAA writes can move app_connect_status toward agent_managed (see Domain Management guide) - ›
Composes with /formation, /email— branded sending needs an active verified domain - ›
BYOD registrars— connect domains you own at Cloudflare, Namecheap, Route53, etc.; add records at the registrar until verified
Today we're launching /domain — the primitive that gives a Naïve Company a real internet identity. System domains ({slug}.usenaive.ai) are auto-provisioned on registration; you can connect a domain you already own, purchase one through checkout, and manage DNS on the delegated Vercel zone as documented. When /email is in play, Resend-oriented MX/SPF/DKIM records are what the verification flow expects — see the Domain Management guide.
The problem: DNS is the slowest blocker for autonomous businesses
Every agent-run business needs a domain. The Company's email lives on it. Customers find the brand through it. Partner integrations route through it. Doing this by hand across registrars and DNS panels is error-prone and agent-hostile.
The status quo:
- Buy at a registrar, manually copy TXT/MX/CNAME rows — breaks whenever the UI changes.
- Raw registrar APIs — you still own propagation, verification, and email alignment yourself.
- Static hosting DNS without a first-class email story — fast pages, weak identity for mail.
Until /domain ties connect → records → verify → zone edits into one documented surface.
How /domain works
- Discover —
GET /v1/domainsornaive domainsto see system and custom domains and theirstatus/app_connect_status. - Connect or purchase —
POST /v1/domains/connectfor BYOD (records returned for your registrar) orPOST /v1/domains/purchasewith checkout for new domains — per the guide. - Verify email DNS — add records, then
POST /v1/domains/:id/verify(ornaive domains verify). - Zone operations (delegated zone) —
GET/POST/DELETE .../zone-recordsmaps tonaive domains zone-records,set-record,delete-recordfor the live Vercel zone, subject to the safety rules and feature flags in the docs.
Two ways to work: CLI or API
CLI
naive domains connect example.com
naive domains verify <domain-id>
naive domains zone-records <domain-id>
Purchasing uses search + purchase flows from the domains guide; checkout completes registration per the API response.
API
const res = await fetch("https://api.usenaive.ai/v1/domains/purchase", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
domain: "lumenletters.com",
}),
});
const domain = await res.json();
// checkout_url, domain_id — follow the domains guide after payment
Email + DNS together
For sending from your own hostname, the guide documents Resend-style records in the connect response and a read-only /dns-records view for per-record verification status. Keep /email in mind: you need an active domain before creating inboxes on it.
Agent-managed apex (apps)
When agents write apex A/AAAA records on a delegated zone, the API can transition app_connect_status toward agent_managed as documented — that is how Naïve represents “this apex points at agent-controlled hosting” without reverting connect sweeps.
What you can build with /domain
Provision identity after formation — Compose /domain with /formation and /email so the Company has DNS, verified mail, and /brand when you add it.
Run isolated domains per Company — Separate zones and reputation per entity.
Point apex and subdomains at real apps — Use documented zone-record tools within allowlists and rate limits.
Get started
- Read the docs: usenaive.ai/docs/getting-started/domains
- Quickstart: usenaive.ai/docs/getting-started/quickstart
- Background reading: RFC 7489 (DMARC) and your registrar's DNS docs.
- Join the community on Discord