---
title: "Buy multiple domains"
method: POST
path: "/v1/registrar/domains/buy"
tags: ["domains-registrar"]
---

# Buy multiple domains

`POST /v1/registrar/domains/buy`

## Request

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

Buy multiple domains at once

## Query parameters

- `teamId` string

## Request body

- object
  - `domains` object[], required
    - `domainName` string, required: A valid domain name
    - `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
    - `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.
  - `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

## 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 `domains/items/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
- …earlier changes not shown

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

---

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