Skip to main content

registrations_v3

GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3.

Overview

Nameregistrations_v3
TypeResource
Idgodaddy.registration.registrations_v3

Fields

The following fields are returned by SELECT queries:

Registration record returned.

NameDatatypeDescription
operation_idstring (uuid)A universally unique identifier (UUID) in RFC-4122 format. (example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c) (wire: operationId)
profile_idstring (uuid)A universally unique identifier (UUID) in RFC-4122 format. (wire: profileId)
registration_idstring (uuid)A universally unique identifier (UUID) in RFC-4122 format. (wire: registrationId)
consentobjectCustomer consent record for a domain operation, capturing which legal agreements were accepted, which fees were acknowledged, when, and by whom. On execute, the caller supplies agreementTypes, agreedAt, and (when the quote carries fees) acknowledgedFees. The server derives agreedBy from the authenticated request context (OAuth identity, X-Shopper-Id, client IP, and transmission channel). (title: Consent)
created_atstringA date and time, in Internet date and time format. Note: The regular expression provides static schematic guidance but does not reject all invalid dates. (pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$) (wire: createdAt)
domainstringThe domain name to register, in punycode A-label form for IDNs. Must match the domain in the quoteToken. (example: example.com)
expires_atstringA date and time, in Internet date and time format. Note: The regular expression provides static schematic guidance but does not reject all invalid dates. (pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$) (wire: expiresAt)
feesarrayFees charged at the time of purchase, in addition to the registration price. Present when purchase fees were incurred. Same fees as RegistrationQuote.fees (the selected term's TermPrice.fees) from the preceding quote.
linksarrayHATEOAS link relations for this registration. rel=self — the canonical URL for this registration record. rel=domain — the registered domain-name resource once the registration is complete.
periodintegerRegistration period in years. Must match the period in the quote.
priceobjectThe currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. (title: Simple Money)
profileobjectA one-time, non-persisted set of contacts and purchase preference defaults supplied inline on a quote or execute request. Use to provide registration data for this transaction without creating or updating a saved registration profile. Shared by the registration quote and execute request bodies. Every field is optional. Omitted fields account identity or other default values. Provided fields override only what is supplied — contact roles replace as a whole block; preference fields replace individually. This is not a saved registration profile and is not JSON Patch. Data here applies only to the current quote or registration request. (title: Inline Registration Profile)
quote_tokenstring (uuid)A universally unique identifier (UUID) in RFC-4122 format. (example: 7f3a2b1c-9d8e-4012-a5b6-c1d2e3f4a5b6) (wire: quoteToken)
statusstringThe execution state of an asynchronous domain operation. CONFIRMED — operation has been accepted and is queued for execution. EXECUTING — operation is actively being processed by the registry or downstream systems. COMPLETED — operation finished successfully; result data is available. FAILED — operation terminated with an unrecoverable error; error detail is attached. (title: Domain Operation Status)
updated_atstringA date and time, in Internet date and time format. Note: The regular expression provides static schematic guidance but does not reject all invalid dates. (pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$) (wire: updatedAt)

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
getselectregistration_idx_request_idReturns 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/{operationId}.
createinsertidempotency_key, domain, quote_token, consentx_request_id, isc_codeExecutes 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 422 quote_mismatch.
When period was supplied at quote time, the same value must be
provided here or the request fails with 422 quote_mismatch.
When profile or profileId was supplied at quote time, the same
value must be provided here or the request fails with 422 quote_mismatch.

PREMIUM domains: when the quote's fees array is non-empty
(inventory PREMIUM), the execute request must include
consent.acknowledgedFees containing the same fees verbatim —
same types, amounts, and currencies. This confirms the customer
explicitly saw and accepted the specific charge before the
irreversible purchase is executed.

- acknowledgedFees absent when fees exist → 422 with error
name consent_fees_required (conditionally required by the quote; the
constraint spans two requests and cannot be expressed in the
schema).
- acknowledgedFees present but type or amount does not match
the locked quote → 422 with error name quote_mismatch.

Parameters

Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.

NameDatatypeDescription
idempotency_keystringClient-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. (example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c) (wire: Idempotency-Key)
registration_idstring (uuid)Server-assigned registration identifier. (wire: registrationId)
isc_codestringISC (International Shopper Code) for pricing context. When provided, prices reflect the applicable rates for this ISC. (example: ISC_PARTNER_001) (wire: iscCode)
x_request_idstring (uuid)Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header. (wire: X-Request-Id)

SELECT examples

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/{operationId}.

SELECT
operation_id,
profile_id,
registration_id,
consent,
created_at,
domain,
expires_at,
fees,
links,
period,
price,
profile,
quote_token,
status,
updated_at
FROM godaddy.registration.registrations_v3
WHERE registration_id = '{{ registration_id }}' -- required
AND x_request_id = '{{ x_request_id }}'
;

INSERT examples

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 422 quote_mismatch.
When period was supplied at quote time, the same value must be
provided here or the request fails with 422 quote_mismatch.
When profile or profileId was supplied at quote time, the same
value must be provided here or the request fails with 422 quote_mismatch.

PREMIUM domains: when the quote's fees array is non-empty
(inventory PREMIUM), the execute request must include
consent.acknowledgedFees containing the same fees verbatim —
same types, amounts, and currencies. This confirms the customer
explicitly saw and accepted the specific charge before the
irreversible purchase is executed.

- acknowledgedFees absent when fees exist → 422 with error
name consent_fees_required (conditionally required by the quote; the
constraint spans two requests and cannot be expressed in the
schema).
- acknowledgedFees present but type or amount does not match
the locked quote → 422 with error name quote_mismatch.

INSERT INTO godaddy.registration.registrations_v3 (
domain,
period,
profile_id,
profile,
quote_token,
consent,
idempotency_key,
x_request_id,
isc_code
)
SELECT
'{{ domain }}' /* required */,
{{ period }},
'{{ profile_id }}',
'{{ profile }}',
'{{ quote_token }}' /* required */,
'{{ consent }}' /* required */,
'{{ idempotency_key }}',
'{{ x_request_id }}',
'{{ isc_code }}'
RETURNING
operation_id,
profile_id,
registration_id,
consent,
created_at,
domain,
expires_at,
fees,
links,
period,
price,
profile,
quote_token,
status,
updated_at
;