# Register a domain (requires quoteToken) (https://developer.godaddy.com/en/docs/references/rest/domains/v3/register-domain)

---
title: Register a domain (requires quoteToken)
description: Executes a previously quoted domain registration.
full: true
---

Full description

Executes a previously quoted domain registration. Irreversible once accepted; creates a charge. Requires a valid unexpired quoteToken, an Idempotency-Key header, and a consent record. Returns a Registration entity; poll links\[rel=self] until status is COMPLETED or FAILED.

## POST /registrations

Register a domain (requires quoteToken)

Executes a previously quoted domain registration. Irreversible once accepted; creates a charge. Requires a valid unexpired quoteToken, an Idempotency-Key header, and a consent record. Returns a Registration entity; poll links[rel=self] until status is COMPLETED or FAILED.

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `iscCode` | string | no | ISC (International Shopper Code) for pricing context. When provided, prices reflect the applicable rates for this ISC. |

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Request-Id` | unknown | no | Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header. |
| `Idempotency-Key` | string | yes | Client-generated unique key (UUID recommended). Retrying a mutating request with the same Idempotency-Key returns the original response without creating a duplicate side effect. Required on all execute endpoints. |

### Request body (required)

Content-Type: `application/json`

```json
{
  "domain": "example.com",
  "period": 1,
  "quoteToken": "7f3a2b1c-9d8e-4012-a5b6-c1d2e3f4a5b6",
  "consent": {
    "agreementTypes": [
      "API_DPA"
    ],
    "agreedAt": "2026-06-12T10:02:00Z"
  }
}
```

Schema:

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

### Responses

**202** — Registration accepted. Poll the self link for status.

Content-Type: `application/json`

```json
{
  "registrationId": "3a8f1c2d-7e6b-4f9a-b1c0-d2e3f4a5b6c7",
  "domain": "example.com",
  "period": 1,
  "price": {
    "currencyCode": "USD",
    "value": 1199
  },
  "consent": {
    "agreementTypes": [
      "API_DPA"
    ],
    "agreedAt": "2026-06-12T10:02:00Z",
    "agreedBy": {
      "type": "DIRECT",
      "principal": "550e8400-e29b-41d4-a716-446655440000",
      "ip": "203.0.113.7"
    }
  },
  "status": "CONFIRMED",
  "operationId": "9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c",
  "createdAt": "2026-06-12T10:02:05Z",
  "updatedAt": "2026-06-12T10:02:05Z",
  "links": [
    {
      "rel": "self",
      "href": "https://api.godaddy.com/v3/domains/registrations/3a8f1c2d-7e6b-4f9a-b1c0-d2e3f4a5b6c7"
    }
  ]
}
```

Schema:

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

**400** — Malformed request syntax, missing required field, or invalid field type.

Content-Type: `application/json`

Schema:

- schema reference: `#/x-ext/21ae8c5`

**401** — Authentication credentials are missing or invalid.

Content-Type: `application/json`

Schema:

- schema reference: `#/x-ext/21ae8c5`

**403** — Authenticated identity is not authorized to perform this operation.

Content-Type: `application/json`

Schema:

- schema reference: `#/x-ext/21ae8c5`

**409** — Conflict — the request cannot be completed in the current state. Used for quote lifecycle errors (quote_expired, quote_consumed), domain state conflicts such as domain_already_exists, and immutable DNS records (dns_record_not_mutable) such as GoDaddy-managed SOA and NS records.

Content-Type: `application/json`

Schema:

- schema reference: `#/x-ext/21ae8c5`

**422** — Semantically invalid request — valid structure but violates a business rule, such as an ineligible contact, unsupported TLD, non-renewable domain status, or quote_mismatch (e.g. iscCode or acknowledgedFees that do not match the locked quote).

Content-Type: `application/json`

Schema:

- schema reference: `#/x-ext/21ae8c5`

**429** — Too many requests — rate limit exceeded.

Content-Type: `application/json`

Schema:

- schema reference: `#/x-ext/21ae8c5`

**Security:** requires `bearerAuth`.
