/domains
Search, register, connect, transfer, and renew domain names on Vercel using the CLI or Domains Registrar API. Use for domain availability and pricing, custom domains, DNS records, nameservers, ownership verification, and domain orders.
Claude Code
$ npx -y skills add vercel/vercel-plugin --skill domains --agent claude-code
Codex
$ npx skills add vercel/vercel-plugin --skill domains -a codex -y
Cursor
$ npx skills add vercel/vercel-plugin --skill domains -a cursor -y
Gemini CLI
$ npx skills add vercel/vercel-plugin --skill domains -a gemini-cli -y
GitHub Copilot
$ npx skills add vercel/vercel-plugin --skill domains -a github-copilot -y
OpenCode
$ npx skills add vercel/vercel-plugin --skill domains -a opencode -y
Windsurf
$ npx skills add vercel/vercel-plugin --skill domains -a windsurf -y
SKILL.md
domains.SKILL.mdname: domains
description: Search, register, connect, transfer, and renew domain names on Vercel using the CLI or Domains Registrar API. Use for domain availability and pricing, custom domains, DNS records, nameservers, ownership verification, and domain orders.
summary: Search domains without authentication; manage registration, project assignment, DNS, transfers, and renewals with Vercel CLI or API.
metadata:
priority: 7
docs:
- "https://vercel.com/docs/domains/registrar-api"
- "https://vercel.com/docs/cli/domains"
- "https://vercel.com/docs/cli/dns"
- "https://openapi.vercel.sh"
sitemap: "https://vercel.com/sitemap.xml"
pathPatterns: []
bashPatterns:
- '\b(?:vercel|vc)\s+(?:domains?|dns)\b'
- 'https://api\.vercel\.com/v1/registrar/'
importPatterns: []
promptSignals:
phrases:
- "domain name"
- "domain search"
- "domain availability"
- "domain pricing"
- "buy a domain"
- "register a domain"
- "transfer a domain"
- "renew a domain"
- "renew my domain"
- "custom domain"
- "dns record"
- "nameserver"
- "registrar api"
- "vercel domains"
- "vercel dns"
allOf:
- [domain, vercel]
- [domain, register]
- [domain, renew]
- [domain, transfer]
anyOf:
- "availability"
- "pricing"
- "dns"
- "registrar"
minScore: 6Domains
Use the public Registrar API for unauthenticated discovery. Use the installed Vercel CLI for account and project operations, or the REST API for structured automation. `vc` and `vercel` are equivalent.
Registration, Vercel team ownership, project assignment, and authoritative DNS are separate. Connecting an already-owned domain does not require buying it or transferring its registration.
Search before asking for credentials
Start exact-name research with one request returning availability and pricing together:
curl --fail-with-body --silent --show-error \
https://api.vercel.com/v1/registrar/domains/search \
--header 'Content-Type: application/json' \
--data '{"domains":["example.com","example.dev","example.app"]}'Send 1–200 exact domain names per request. The endpoint checks the supplied names; it does not generate suggestions. Generate candidates from the user's naming constraints, then batch them. No Vercel account, token, or project link is needed.
Results preserve input order. Available entries include `domain`, `available`, `years`, `price`, `renewalPrice`, and `premium`; prices are USD for the returned term. Report registration and renewal costs with that term, and flag premium domains. `available: false` means unavailable **or availability could not be confirmed**; it does not prove someone owns the name. Missing prices are unknown, not zero. Availability and quotes can change before purchase.
For keyword/TLD discovery, a recent CLI can generate candidates:
vercel domains search acme --tld com --tld dev --available --json
vercel domains check example.com example.dev --json
vercel domains price example.com --json
Check `vercel domains --help` and the selected subcommand's `--help` against the installed version (`--json` needs CLI 58.1+; older CLIs use `--format=json`). If discovery is unavailable or the CLI asks for login, use the public endpoint directly. CLI `search` accepts a keyword; API `search` accepts exact names. Do not substitute one input shape for the other.
Connect and diagnose an existing domain
For authenticated work, inspect `vercel whoami` and use `--scope <team>` when selecting a team. Resolve the intended project before changing its domains.
vercel domains ls --scope my-team
vercel domains inspect example.com --scope my-team
vercel domains add example.com my-project --scope my-team
vercel domains verify example.com --project my-project --json --scope my-team
Use the actual expected DNS records and ownership-verification values returned for that domain and project. Do not hardcode a universal A record or CNAME target. Configure records at the authoritative DNS provider; `vercel dns` changes Vercel DNS only. Preserve unrelated records, especially MX and email-verification TXT records. Nameserver changes require carrying over the zone's required records.
| Task | CLI | | --- | --- | | List DNS records | `vercel dns ls example.com` | | Inspect a record | `vercel dns inspect <record-id> --json` | | Add the required TXT record | `vercel dns add example.com <record-name> TXT <record-value>` | | Update an existing record | `vercel dns update <record-id> --value <record-value>` | | Remove a specific record | `vercel dns rm <record-id>` | | Move team ownership | `vercel domains move example.com <destination-team>` | | Remove team ownership | `vercel domains rm example.com` |
After a change, rerun `domains verify` and check DNS propagation and HTTPS. Verification can exit nonzero while returning useful JSON describing the mismatch. An accepted DNS write is not proof that DNS has propagated or a certificate is ready. `domains add --force` can detach the domain from another project; use it only when that reassignment is intended. Removing team ownership is not a registrar transfer or cancellation of registration.
Purchase, transfer, and renew
Use existing authorization for the exact domain, term, price, and renewal preference. If those choices are unresolved, prepare the current quote before asking. Do not treat a discovery request as permission to purchase. Use real user-provided registrant information and keep tokens, contact data, and transfer codes out of logs and committed files.
| Task | CLI | | --- | --- | | Register a domain | `vercel domains buy example.com` | | Transfer from another registrar | `vercel domains transfer-in example.com` | | Renew registration | `vercel domains renew example.com` | | Enable or disable automatic renewal | `vercel domains auto-renew enable example.com` / `disable`
Read more
name: domains
description: Search, register, connect, transfer, and renew domain names on Vercel using the CLI or Domains Registrar API. Use for domain availability and pricing, custom domains, DNS records, nameservers, ownership verification, and domain orders.
summary: Search domains without authentication; manage registration, project assignment, DNS, transfers, and renewals with Vercel CLI or API.
metadata:
priority: 7
docs:
- "https://vercel.com/docs/domains/registrar-api"
- "https://vercel.com/docs/cli/domains"
- "https://vercel.com/docs/cli/dns"
- "https://openapi.vercel.sh"
sitemap: "https://vercel.com/sitemap.xml"
pathPatterns: []
bashPatterns:
- '\b(?:vercel|vc)\s+(?:domains?|dns)\b'
- 'https://api\.vercel\.com/v1/registrar/'
importPatterns: []
promptSignals:
phrases:
- "domain name"
- "domain search"
- "domain availability"
- "domain pricing"
- "buy a domain"
- "register a domain"
- "transfer a domain"
- "renew a domain"
- "renew my domain"
- "custom domain"
- "dns record"
- "nameserver"
- "registrar api"
- "vercel domains"
- "vercel dns"
allOf:
- [domain, vercel]
- [domain, register]
- [domain, renew]
- [domain, transfer]
anyOf:
- "availability"
- "pricing"
- "dns"
- "registrar"
minScore: 6Domains
Use the public Registrar API for unauthenticated discovery. Use the installed Vercel CLI for account and project operations, or the REST API for structured automation. `vc` and `vercel` are equivalent.
Registration, Vercel team ownership, project assignment, and authoritative DNS are separate. Connecting an already-owned domain does not require buying it or transferring its registration.
Search before asking for credentials
Start exact-name research with one request returning availability and pricing together:
curl --fail-with-body --silent --show-error \
https://api.vercel.com/v1/registrar/domains/search \
--header 'Content-Type: application/json' \
--data '{"domains":["example.com","example.dev","example.app"]}'Send 1–200 exact domain names per request. The endpoint checks the supplied names; it does not generate suggestions. Generate candidates from the user's naming constraints, then batch them. No Vercel account, token, or project link is needed.
Results preserve input order. Available entries include `domain`, `available`, `years`, `price`, `renewalPrice`, and `premium`; prices are USD for the returned term. Report registration and renewal costs with that term, and flag premium domains. `available: false` means unavailable **or availability could not be confirmed**; it does not prove someone owns the name. Missing prices are unknown, not zero. Availability and quotes can change before purchase.
For keyword/TLD discovery, a recent CLI can generate candidates:
vercel domains search acme --tld com --tld dev --available --json vercel domains check example.com example.dev --json vercel domains price example.com --json
Check `vercel domains --help` and the selected subcommand's `--help` against the installed version (`--json` needs CLI 58.1+; older CLIs use `--format=json`). If discovery is unavailable or the CLI asks for login, use the public endpoint directly. CLI `search` accepts a keyword; API `search` accepts exact names. Do not substitute one input shape for the other.
Connect and diagnose an existing domain
For authenticated work, inspect `vercel whoami` and use `--scope <team>` when selecting a team. Resolve the intended project before changing its domains.
vercel domains ls --scope my-team vercel domains inspect example.com --scope my-team vercel domains add example.com my-project --scope my-team vercel domains verify example.com --project my-project --json --scope my-team
Use the actual expected DNS records and ownership-verification values returned for that domain and project. Do not hardcode a universal A record or CNAME target. Configure records at the authoritative DNS provider; `vercel dns` changes Vercel DNS only. Preserve unrelated records, especially MX and email-verification TXT records. Nameserver changes require carrying over the zone's required records.
| Task | CLI | | --- | --- | | List DNS records | `vercel dns ls example.com` | | Inspect a record | `vercel dns inspect <record-id> --json` | | Add the required TXT record | `vercel dns add example.com <record-name> TXT <record-value>` | | Update an existing record | `vercel dns update <record-id> --value <record-value>` | | Remove a specific record | `vercel dns rm <record-id>` | | Move team ownership | `vercel domains move example.com <destination-team>` | | Remove team ownership | `vercel domains rm example.com` |
After a change, rerun `domains verify` and check DNS propagation and HTTPS. Verification can exit nonzero while returning useful JSON describing the mismatch. An accepted DNS write is not proof that DNS has propagated or a certificate is ready. `domains add --force` can detach the domain from another project; use it only when that reassignment is intended. Removing team ownership is not a registrar transfer or cancellation of registration.
Purchase, transfer, and renew
Use existing authorization for the exact domain, term, price, and renewal preference. If those choices are unresolved, prepare the current quote before asking. Do not treat a discovery request as permission to purchase. Use real user-provided registrant information and keep tokens, contact data, and transfer codes out of logs and committed files.
| Task | CLI | | --- | --- | | Register a domain | `vercel domains buy example.com` | | Transfer from another registrar | `vercel domains transfer-in example.com` | | Renew registration | `vercel domains renew example.com` | | Enable or disable automatic renewal | `vercel domains auto-renew enable example.com` / `disable`
Comprehensive Vercel ecosystem plugin — relational knowledge graph, skills for every major product, specialized agents, and Vercel conventions. Turns any AI agent into a Vercel expert.
Other skills on vercel-3.
More skills from other plugins.
container
Use when running, building, or managing Linux containers on macOS, or when a task involves Docker, docker compose, Lima, Colima,…
frontend-forge-fe-oper…
Operate FrontendExtension (FE) resources in frontend-forge: create, update, rebuild, inspect package artifacts, download…
agent-advisor
Entry point for AI-agent work on AWS: pick a runtime, plan a migration for existing workloads, and build an executable POC — one…
agents-sdk
Build, debug, or review Cloudflare Agents SDK applications using the agents package.
Questions about domains.
- Which coding agents can use domains?
- domains installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

