# Registrations (https://developer.godaddy.com/en/docs/references/rest/domains/v3/registrations)

***

title: Registrations
description: >
Top-level registration entity collection. Execute a domain registration by
POSTing with a quoteToken, domain, period, and consent. Returns a Registration
entity with links to the concrete poll URL (GET
/registrations/) and the abstract operation (GET
/operations/).
full: true
\_openapi:
preload:

* ./openapi-specs/specs/domains-v3/v3/schemas/openapi.yaml
  toc:
* depth: 2
  title: Register a domain (requires quoteToken)
  url: '#register-a-domain-requires-quotetoken'
* depth: 2
  title: Get a registration record
  url: '#get-a-registration-record'
  structuredData:
  headings:
  * content: Register a domain (requires quoteToken)
    id: register-a-domain-requires-quotetoken
  * content: Get a registration record
    id: get-a-registration-record
    contents:
  * content: >
    Executes a previously quoted domain registration. \*\*Irreversible once

    accepted; creates a charge.\*\* Requires a valid unexpired quoteToken
    from

    `quoteDomainRegistration`, an `Idempotency-Key` header, and a consent

    record. The target domain and period are in the request body alongside

    the quoteToken.

    Before calling this endpoint, retrieve `requiredAgreements` from the

    quote response and review each agreement before submitting the
    registration. Each agreement

    includes a `title` (display label) and optional `url` (full legal
    text).

    The `consent.agreementTypes` array must contain the `agreementType`
    value

    from every item in `requiredAgreements`; a mismatch returns

    `INVALID_AGREEMENT_KEYS`.

    Idempotency takes precedence over the single-use check: retrying with

    the same `Idempotency-Key` replays the original operation even after

    the token is consumed.

    Returns a `Registration` entity. Poll `links[rel=self]`

    (`GET /registrations/{registrationId}`) until status is `COMPLETED` or

    `FAILED`. The `operationId` field is also provided for clients that

    prefer `GET /operations/{operationId}`; both resolve the same
    resource.

    Poll either until status is `COMPLETED` or `FAILED`. The operation is

    fire-and-forget; always poll at least once even if the server
    completed

    it synchronously.

    When `iscCode` was supplied at quote time, the same value must be

    provided here or the request fails with `quote_mismatch`.

    When `period` was supplied at quote time, the same value must be

    provided here or the request fails with `quote_mismatch`.

    When `profile` or `profileId` was supplied at quote time, the same

    value must be provided here or the request fails with
    `quote_mismatch`.
    heading: register-a-domain-requires-quotetoken
  * content: >
    Returns a single registration record by its server-assigned
    registrationId, including the current execution status and the domain
    expiry date once the registration completes. This is the concrete poll
    endpoint for registration operations; the abstract equivalent is GET
    /operations/.
    heading: get-a-registration-record

***
