---
title: "Buy a domain"
method: POST
path: "/v1/registrar/domains/{domain}/buy"
tags: ["domains-registrar"]
---

# Buy a domain

`POST /v1/registrar/domains/{domain}/buy`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v1/registrar/domains/{domain}/buy`
- Auth: HTTP bearer

Buy a domain

## Path parameters

- `domain` string, required: A valid domain name

## Query parameters

- `teamId` string

## Request body

- object
  - `autoRenew` boolean, required: Whether the domain should be auto-renewed before it expires. This can be configured later through the Vercel Dashboard or the [Update auto-renew for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-auto-renew-for-a-domain) endpoint.
  - `years` number, required: The number of years to purchase the domain for.
  - `expectedPrice` number, required
  - `contactInformation` object, required: The contact information for the domain. Some TLDs require additional contact information. Use the [Get contact info schema](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-contact-info-schema) endpoint to retrieve the required fields.
    - `firstName` string, required: a non empty string
    - `lastName` string, required: a non empty string
    - `email` string, required: A valid RFC 5322 email address
    - `phone` string, required: A valid E.164 phone number
    - `address1` string, required: a non empty string
    - `address2` string: a non empty string
    - `city` string, required: a non empty string
    - `state` string, required: a non empty string
    - `zip` string, required: a non empty string
    - `country` string, required: A valid ISO 3166-1 alpha-2 country code
    - `companyName` string: a non empty string
    - `fax` string: A valid E.164 phone number
    - `additional` object
  - `languageCode` string: The language code for the domain. For punycode domains, this must be provided. The list of supported language codes for a TLD can be retrieved from the [Get TLD](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-tld) endpoint.

## Response `200`

Success

- object
  - `orderId` string, required: A valid order ID
  - `_links` object, required

## Other responses

- `400`: There was something wrong with the request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: TooManyRequests
- `500`: InternalServerError

## Changes

- **2026-09-15** `dde5ea976005`: 1 info
  - added `#/components/schemas/EmojiTldNotSupported` to the response body `anyOf` list for the response status `400`
- **2026-07-14** `314022afff45`: 1 info
  - added the optional property `reason` to the response with the `401` status
- **2026-06-11** `14b4658f819e`: 2 info
  - added the new optional request property `languageCode`
  - added `#/components/schemas/LanguageCodeRequired` to the response body `anyOf` list for the response status `400`
- **2026-02-02** `5264f094c3d3`: 250 breaking
  - removed the enum value `AD` of the request property `contactInformation/country`
  - removed the enum value `AE` of the request property `contactInformation/country`
  - removed the enum value `AF` of the request property `contactInformation/country`
  - removed the enum value `AG` of the request property `contactInformation/country`
  - …246 more
- **2026-01-22** `c12186034433`: 1 breaking, 2 warning, 252 info
  - request property `contactInformation/country` was restricted to a list of enum values
  - changed the pattern of the request property `contactInformation/fax` from `^(?=(?:\D*\d){7,15}$)\+[1-9]\d{0,2}\.?\d+$` to `^(?=(?:\D*\d){8,15}$)\+[1-9]\d{0,2}\.?\d+$`
  - changed the pattern of the request property `contactInformation/phone` from `^(?=(?:\D*\d){7,15}$)\+[1-9]\d{0,2}\.?\d+$` to `^(?=(?:\D*\d){8,15}$)\+[1-9]\d{0,2}\.?\d+$`
  - added the new `AD` enum value to the request property `contactInformation/country`
  - …251 more

[Operation history](https://skmtc.dev/vercel/apis/api/changes/v1/registrar/domains/:domain/buy/post.md)

---

[API](https://skmtc.dev/vercel/apis/api.md) - [All operations](https://skmtc.dev/vercel/apis/api/llms.txt) - [OpenAPI document](https://skmtc.dev/vercel/apis/api/revisions/4a06e85c2848?raw)
