Primitive/domain2 min read

Introducing /domain: Buy domains and configure DNS programmatically

Connect, verify, purchase, and manage domains for a Company — including DNS on the live Vercel zone and Resend email records — per the published Domain Management guide.

Primitive/domain
TL;DR
  • /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

  1. DiscoverGET /v1/domains or naive domains to see system and custom domains and their status / app_connect_status.
  2. Connect or purchasePOST /v1/domains/connect for BYOD (records returned for your registrar) or POST /v1/domains/purchase with checkout for new domains — per the guide.
  3. Verify email DNS — add records, then POST /v1/domains/:id/verify (or naive domains verify).
  4. Zone operations (delegated zone)GET/POST/DELETE .../zone-records maps to naive domains zone-records, set-record, delete-record for 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

Frequently Asked Questions
What is /domain?+
/domain is the Naïve primitive for domain identity: system domains on registration, connecting a custom domain (BYOD), purchasing a domain through checkout, DNS verification for email, and (when delegated) reading and editing records on the live Vercel zone — all described in https://usenaive.ai/docs/getting-started/domains .
How does /domain work?+
Use the CLI (naive domains) or REST: list domains, connect a domain you already own, fetch Resend setup records, verify DNS, search/purchase domains, then list or mutate zone records on the Vercel zone when enabled. Compose with /email once status is active.
Where does DNS run?+
The published guide documents a live zone on Vercel for connected or purchased domains, with MX/SPF/DKIM records aligned to the email provider. BYOD domains require adding the returned records at your registrar until verification succeeds.
Can I bring an existing domain?+
Yes. POST /v1/domains/connect (or naive domains connect) with a domain you control, add the returned DNS records at your registrar, then POST /v1/domains/:id/verify when propagation completes — see the Domain Management guide.
How much does /domain cost?+
Purchased domains are priced via the search/purchase API (checkout URL in the response). See the pricing page and the domains guide for current behavior and limits (e.g. purchased domain caps documented there).
What about transfers and renewals?+
Follow standard registrar and ICANN rules for transfers and renewals. Naïve documents connect, verify, and zone editing; outbound transfer mechanics depend on your registrar.
How do I get started with /domain?+
Run naive domains, naive domains connect example.com, naive domains verify <domain-id>, or use search/purchase flows from the quickstart and domains guide. Quickstart: usenaive.ai/docs/getting-started/quickstart .
DZ
Dennis ZaxCTO

CTO of Naïve. Building the open-source agent runtime.

@denniszax