{
  "slug": "vercel-domains-buy-and-renew-support-nonterminal-approval-flows-e667f781490e",
  "title": "vercel domains buy and renew support nonterminal approval flows",
  "tools": [
    "vercel"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-10-08T07:20:33.216Z",
  "announced_at": "2026-10-08T07:20:33.216Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "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.",
    "examples": [
      "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"
    ],
    "gotchas": [
      "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."
    ]
  },
  "why_it_matters": "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.",
  "sources": [
    "https://vercel.com/docs/cli/release-notes#vercel@63.1.0",
    "https://vercel.com/docs/cli/domains"
  ],
  "rank": 0.97026,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "daily-20261013",
    "verdict_id": "daily-20261013:daily-20261013-18839fba06f135c9-0:gate",
    "evidence_hash": "d0b6963a7efc09fa3252149833e01c03851c4469e3e10d4a7be36387a35e9079"
  },
  "review": {
    "draft_hash": "545e9e5aebed0fba1a136b530ec7c70d02b6e3298833c25cdd177eb8074e1c9a",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-08T07:20:33.216Z",
    "decision": "daily-20261013:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.77 (>= 0.6 needed)."
  }
}
