registrations_v3
GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3.
Overview
| Name | registrations_v3 |
| Type | Resource |
| Id | godaddy.registration.registrations_v3 |
Fields
The following fields are returned by SELECT queries:
- get
Registration record returned.
| Name | Datatype | Description |
|---|---|---|
operation_id | string (uuid) | A universally unique identifier (UUID) in RFC-4122 format. (example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c) (wire: operationId) |
profile_id | string (uuid) | A universally unique identifier (UUID) in RFC-4122 format. (wire: profileId) |
registration_id | string (uuid) | A universally unique identifier (UUID) in RFC-4122 format. (wire: registrationId) |
consent | object | Customer 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_at | string | A 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) |
domain | string | The domain name to register, in punycode A-label form for IDNs. Must match the domain in the quoteToken. (example: example.com) |
expires_at | string | A 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) |
fees | array | Fees 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. |
links | array | HATEOAS 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. |
period | integer | Registration period in years. Must match the period in the quote. |
price | object | The 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) |
profile | object | A 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_token | string (uuid) | A universally unique identifier (UUID) in RFC-4122 format. (example: 7f3a2b1c-9d8e-4012-a5b6-c1d2e3f4a5b6) (wire: quoteToken) |
status | string | The 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_at | string | A 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:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
get | select | registration_id | x_request_id | 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}. |
create | insert | idempotency_key, domain, quote_token, consent | x_request_id, isc_code | 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 consentrecord. The target domain and period are in the request body alongside the quoteToken. Before calling this endpoint, retrieve requiredAgreements from thequote 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 valuefrom every item in requiredAgreements; a mismatch returnsINVALID_AGREEMENT_KEYS.Idempotency takes precedence over the single-use check: retrying with the same Idempotency-Key replays the original operation even afterthe token is consumed. Returns a Registration entity. Poll links[rel=self]( GET /registrations/{registrationId}) until status is COMPLETED orFAILED. The operationId field is also provided for clients thatprefer GET /operations/{operationId}; both resolve the same resource.Poll either until status is COMPLETED or FAILED. The operation isfire-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 beprovided here or the request fails with 422 quote_mismatch.When period was supplied at quote time, the same value must beprovided here or the request fails with 422 quote_mismatch.When profile or profileId was supplied at quote time, the samevalue 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 includeconsent.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 errorname consent_fees_required (conditionally required by the quote; theconstraint spans two requests and cannot be expressed in the schema). - acknowledgedFees present but type or amount does not matchthe 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.
| Name | Datatype | Description |
|---|---|---|
idempotency_key | string | 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. (example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c) (wire: Idempotency-Key) |
registration_id | string (uuid) | Server-assigned registration identifier. (wire: registrationId) |
isc_code | string | ISC (International Shopper Code) for pricing context. When provided, prices reflect the applicable rates for this ISC. (example: ISC_PARTNER_001) (wire: iscCode) |
x_request_id | string (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
- get
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
- create
- Manifest
Executes a previously quoted domain registration. Irreversible once
accepted; creates a charge. Requires a valid unexpired quoteToken fromquoteDomainRegistration, 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 returnsINVALID_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 orFAILED. 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 includeconsent.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
;
# Description fields are for documentation purposes
- name: registrations_v3
props:
- name: idempotency_key
value: "{{ idempotency_key }}"
description: Required parameter for the registrations_v3 resource.
- name: domain
value: "{{ domain }}"
description: |
The domain name to register, in punycode A-label form for IDNs. Must match the domain in the quoteToken.
- name: period
value: {{ period }}
description: |
Registration period in years. Must match the period in the quote.
default: 1
- name: profile_id
value: "{{ profile_id }}"
description: |
A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).
- name: profile
description: |
A 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.
value:
contacts:
registrant:
firstName: "{{ firstName }}"
lastName: "{{ lastName }}"
organization: "{{ organization }}"
email: "{{ email }}"
phone:
countryCode: "{{ countryCode }}"
nationalNumber: "{{ nationalNumber }}"
extensionNumber: "{{ extensionNumber }}"
address:
line1: "{{ line1 }}"
line2: "{{ line2 }}"
city: "{{ city }}"
state: "{{ state }}"
countryCode: "{{ countryCode }}"
postalCode: "{{ postalCode }}"
admin:
firstName: "{{ firstName }}"
lastName: "{{ lastName }}"
organization: "{{ organization }}"
email: "{{ email }}"
phone:
countryCode: "{{ countryCode }}"
nationalNumber: "{{ nationalNumber }}"
extensionNumber: "{{ extensionNumber }}"
address:
line1: "{{ line1 }}"
line2: "{{ line2 }}"
city: "{{ city }}"
state: "{{ state }}"
countryCode: "{{ countryCode }}"
postalCode: "{{ postalCode }}"
tech:
firstName: "{{ firstName }}"
lastName: "{{ lastName }}"
organization: "{{ organization }}"
email: "{{ email }}"
phone:
countryCode: "{{ countryCode }}"
nationalNumber: "{{ nationalNumber }}"
extensionNumber: "{{ extensionNumber }}"
address:
line1: "{{ line1 }}"
line2: "{{ line2 }}"
city: "{{ city }}"
state: "{{ state }}"
countryCode: "{{ countryCode }}"
postalCode: "{{ postalCode }}"
billing:
firstName: "{{ firstName }}"
lastName: "{{ lastName }}"
organization: "{{ organization }}"
email: "{{ email }}"
phone:
countryCode: "{{ countryCode }}"
nationalNumber: "{{ nationalNumber }}"
extensionNumber: "{{ extensionNumber }}"
address:
line1: "{{ line1 }}"
line2: "{{ line2 }}"
city: "{{ city }}"
state: "{{ state }}"
countryCode: "{{ countryCode }}"
postalCode: "{{ postalCode }}"
autoRenew: {{ autoRenew }}
privacy: {{ privacy }}
nameServers:
- "{{ nameServers }}"
- name: quote_token
value: "{{ quote_token }}"
description: |
A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122).
- name: consent
description: |
Customer 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).
value:
agreementTypes:
- "{{ agreementTypes }}"
agreedAt: "{{ agreedAt }}"
acknowledgedFees:
- type: "{{ type }}"
fee:
currencyCode: "{{ currencyCode }}"
value: {{ value }}
agreedBy:
type: "{{ type }}"
principal: "{{ principal }}"
actor: "{{ actor }}"
ip: "{{ ip }}"
- name: x_request_id
value: "{{ x_request_id }}"
description: Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header.
description: Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header.
- name: isc_code
value: "{{ isc_code }}"
description: ISC (International Shopper Code) for pricing context. When provided, prices reflect the applicable rates for this ISC. (example: ISC_PARTNER_001)
description: ISC (International Shopper Code) for pricing context. When provided, prices reflect the applicable rates for this ISC. (example: ISC_PARTNER_001)