Send
Authorization: Bearer <token>
and use
for the intended team. Use
Content-Type: application/json
for JSON bodies. Reuse a securely available token; do not ask for one for public discovery.
Use the selected operation in the live schema for purchases, transfers, renewals, automatic renewal, nameservers, and contact verification. Inspect asynchronous results with
GET /v1/registrar/orders/{orderId}
. An empty nameservers array selects Vercel defaults; contact verification is unavailable for the first 30 minutes after purchase.
For purchases, retrieve the contact schema and supply required TLD-specific values through the purchase payload's
contactInformation.additional
field. For transfers, use only contact fields accepted by that operation's live schema; it does not accept the purchase-only
field. Punycode purchases require a supported
; inspect the TLD metadata. Quote the exact operation and term, then use that numeric quote as
. Reassess a price mismatch against the user's authorized spend instead of silently accepting an increase.
Purchases, renewals, and transfers can complete asynchronously. Save the returned order ID, inspect the order and each domain's status, and report pending or failed outcomes accurately. If a submission times out, reconcile its order status before resubmitting a charge. Stop polling when completed or failed; if still pending after a bounded check, return the order ID and next status-check action. Complete any required registrant email verification.
Use
for registrar operations instead of sunset legacy purchase, price, availability, or transfer endpoints. Existing project-domain and DNS APIs serve separate purposes; the registrar API does not replace them.