vercel domains buy and renew support nonterminal approval flows
Introduced 2026-10-08 · score 0.97
HOW TO USE IT
When buying or renewing a domain without an interactive terminal, explicitly select the paying team and first request the price without `--amount`. After a person approves the price and terms, run the returned command with the approved amount; for purchases, also provide required registrant details and choose auto-renewal.
vercel domains buy <domain> --scope <team> --jsonvercel domains buy <domain> --scope <team> --amount <approved-price-in-USD> --first-name <text> --last-name <text> --email <text> --phone <+countrycode-and-number> --address <text> --city <text> --state <text> --zip <text> --country <two-letter-code> --auto-renew --jsonvercel domains renew <domain> --scope <team> --jsonWHY THIS HELPS
When buying or renewing a domain from a script without a terminal, retrieve the price and renewal terms or submit the approved charge with the required team scope.
REQUIREMENTS AND LIMITATIONS
- Version: 63.1.0
- <domain> (required): Domain to buy or renew.
- --scope <team> (required): Select the paying team for a non-interactive charge; saved team selection or `vercel.json` scope alone is insufficient.
- VERCEL_ORG_ID: Alternative to `--scope`: set to the ID of the paying team for a non-interactive charge.
- --amount <USD> (required): Required to charge; must equal the current price approved by a person. Omit to request price and approval instructions without charging.
- --first-name <TEXT> (required): Registrant's first name.
- --last-name <TEXT> (required): Registrant's last name.
- --email <TEXT>: Registrant email; required unless supplied by approved billing details.
- --phone <TEXT> (required): Registrant phone, starting with `+` and containing 10–15 digits including country code.
- --address <TEXT>: Street address; required unless supplied by approved billing details. Quote values containing spaces.
- --city <TEXT>: Registrant city; required unless supplied by approved billing details.
- --state <TEXT>: State or province; required unless supplied by approved billing details. Required for every country when specified as a contact field.
- --zip <TEXT>: Postal or ZIP code; required unless supplied by approved billing details. Required for every country when specified as a contact field.
- --country <CODE>: Two-letter country code; required unless supplied by approved billing details.
- --company <TEXT>: Registrant company name.
- --use-billing-details: Use available team billing email and address fields for registrant details; does not supply first name, last name, or phone. Contact flags override billing details.
- --auto-renew (required): Allow recurring renewal charges at the end of each term. Provide exactly one of this flag and `--no-auto-renew`; neither takes a value.
- --no-auto-renew (required): Turn automatic renewal off. Provide exactly one of this flag and `--auto-renew`; neither takes a value.
- --json: Return structured output without prompts; equivalent documented option: `--format json`.
- Prerequisite: Use Vercel CLI 63.1.0 or later for prompt-free buy/renew commands.
- Prerequisite: Before a non-interactive charge, specify the paying team with `--scope <team>` or `VERCEL_ORG_ID` set to that team's ID.
- Prerequisite: For a purchase, supply required registrant fields and exactly one auto-renew choice; approved billing details can supply available email and address fields.
- Without a terminal, the team must be named with `--scope` or `VERCEL_ORG_ID`.
- Without `--amount`, no charge is made; the command returns the price, paying team, renewal terms, and exact command to run after a person approves the price.
- A failed or unconfirmed charge returns a JSON error, and the charge request is never retried.
- Without a terminal, `domains buy` requires `--auto-renew` or `--no-auto-renew`; auto-renew has no default there because it starts a recurring charge.
FIRST-PARTY EVIDENCE
Check the installed version and the source before using it. Entry JSON