sincecutoff.com
← all changes

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> --json
vercel 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 --json
vercel domains renew <domain> --scope <team> --json

WHY 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

Report a problem with this card