# Register Domains (https://developer.godaddy.com/en/docs/references/rest/domains/v2/register-domains)

---
title: Register Domains
description: >-
  Register new domains, retrieve registration schemas by TLD, and validate
  registration requests.
full: true
---

## POST /v2/customers/{customerId}/domains/register

Purchase and register the specified Domain

Registers the specified domain. Requires a consent object with TLD agreement keys from the schema endpoint. Charges the account's billing method. Returns 202 - poll GET .../actions/REGISTER until the action reaches a terminal state.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | The Customer identifier. Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount customer identifier you're operating on behalf of. |

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Request-Id` | string | no | A client provided identifier for tracking this request. |

### Responses

**202** — Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/REGISTER to poll status

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — There is already a similar action processing

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — Based on restrictions declared in JSON schema returned by `./schema/{tld}`

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `bearerAuth`.

## GET /v2/customers/{customerId}/domains/register/schema/{tld}

Retrieve the schema to be submitted when registering a Domain for the specified TLD

Returns the JSON schema for the registration request body for the specified TLD. Fetch before registering to identify required fields and TLD-specific constraints.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | The Customer identifier. Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount customer identifier you're operating on behalf of. |
| `tld` | string | yes | The Top-Level Domain whose schema should be retrieved |

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Request-Id` | string | no | A client provided identifier for tracking this request. |

### Responses

**200** — Request was successful

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/JsonSchema`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — The tld does not exist

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — `tld` must be specified

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `bearerAuth`.

## POST /v2/customers/{customerId}/domains/register/validate

Validate the request body using the Domain Registration Schema for the specified TLD

Validates the registration request body against the TLD schema with no side effects and no charge. Returns 204 on success.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `customerId` | string | yes | The Customer identifier. Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount customer identifier you're operating on behalf of. |

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Request-Id` | string | no | A client provided identifier for tracking this request. |

### Responses

**204** — Request was successful

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — The customer does not exist

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — Based on restrictions declared in JSON schema returned by `./schema/{tld}`

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**429** — Too many requests received within interval

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/ErrorLimit`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**Security:** requires `bearerAuth`.
