Skip to main content

domains_v3

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

Overview

Namedomains_v3
TypeResource
Idgodaddy.domains.domains_v3

Fields

The following fields are returned by SELECT queries:

Domain found.

NameDatatypeDescription
auto_renewbooleanWhether the domain will be renewed automatically before expiration. (wire: autoRenew)
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 in punycode A-label form. (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)
idn_domainstringThe internationalized (U-label) representation of the domain name. Only present for internationalized domain names (IDNs). (example: 例え.jp) (wire: idnDomain)
linksarrayHATEOAS links for domain sub-resources. rel=self — canonical URL for this domain resource. rel=nameservers — nameserver management sub-resource. rel=contacts — contact management sub-resource. rel=privacy — privacy toggle sub-resource.
name_serversarrayOrdered list of authoritative nameserver hostnames for a domain. The first entry is primary; subsequent entries are secondaries. A minimum of two nameservers is required; the maximum is thirteen. (title: Name Servers) (wire: nameServers)
privacybooleanWhether WHOIS privacy protection is currently enabled on the domain.
renew_bystringA 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: renewBy)
statusstringThe lifecycle state of a registered domain. ACTIVE — domain is registered and resolving normally. EXPIRED — domain has passed its expiration date; renewal still possible during the grace period. CANCELLED — domain registration has been cancelled and released. CANCELLED_REDEEMABLE — cancelled domain still within the redemption grace period. PENDING_TRANSFER — inbound transfer from another registrar is in progress. TRANSFERRED_OUT — domain was transferred to another registrar. LOCKED — domain has a registry-level administrative lock applied. (ACTIVE, EXPIRED, CANCELLED, CANCELLED_REDEEMABLE, PENDING_TRANSFER, TRANSFERRED_OUT, LOCKED) (title: Domain Status)
transfer_lockbooleanWhether the registry transfer-lock (clientTransferProhibited) is engaged. When true, outbound transfers to another registrar are blocked at the registry. (wire: transferLock)
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
getselectdomain_namex_request_idReturns the management view of a single registered domain owned by the authenticated account, including status, nameservers, privacy and auto-renew preferences, and expiry date.
listselectx_request_id, page_token, page_token_direction, page_size, statuses, lifecycle_groups, updated_after, expires_beforeReturns a paginated collection of domain names owned by the authenticated account. Supports filtering by statuses and cursor-based pagination. The statuses and lifecycleGroups parameters are mutually exclusive; supplying both returns 400 Bad Request. An unrecognized value for statuses or lifecycleGroups returns 400 Bad Request.
update_nameserversexecdomain_name, idempotency_key, name_serversx_request_idReplaces the authoritative nameservers for the domain with the provided list. Minimum 2, maximum 13. Returns a DomainOperation; propagation to the registry is asynchronous.

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)
domain_namestringThe domain name in punycode A-label form (e.g., example.com). For IDNs, use the punycode representation. (example: example.com)
x_request_idstring (uuid)Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header.
expires_beforestring (date-time)Return only domains whose registration expires before this timestamp (exclusive). Must be a valid RFC 3339 date-time. (example: 2027-01-01T00:00:00Z) (wire: expiresBefore)
lifecycle_groupsarrayFilter results to domains belonging to one or more status groups. Supply multiple values as a single comma-separated list, e.g. ?lifecycleGroups=REGISTERED,PENDING. Multiple values are combined with logical OR. Cannot be combined with the statuses parameter. Use this for coarse lifecycle phases that remain stable as new statuses are added; for precise filtering, use statuses. (example: [REGISTERED, PENDING]) (wire: lifecycleGroups)
page_sizeintegerMaximum number of domains in the response. Defaults to 100 when omitted. Offset-based "page" parameter is not supported, only cursor-based "pageToken". (wire: pageSize)
page_tokenstringOpaque cursor from the links[rel=next or rel=prev] href of the previous page. When present, the response begins immediately after the item that produced the token. Omit to start from the beginning of the collection. (example: eyJkb21haW4iOiJleGFtcGxlLmNvbSJ9) (wire: pageToken)
page_token_directionstringOptional token direction when pageToken is set; ignored otherwise. (wire: pageTokenDirection)
statusesarrayFilter results to domains with one or more lifecycle statuses. Supply multiple values as a single comma-separated list, e.g. ?statuses=ACTIVE,EXPIRED. Multiple values are combined with logical OR — returns domains matching ANY of the specified statuses. See DomainStatus for accepted values (ACTIVE, EXPIRED, PENDING_REGISTRATION, etc.). Cannot be combined with the lifecycleGroups parameter. Use this for precise filtering on specific known status values; for coarse lifecycle phases, consider lifecycleGroups. (example: [ACTIVE, EXPIRED])
updated_afterstring (date-time)Return only domains last updated after this timestamp (exclusive). Must be a valid RFC 3339 date-time. (example: 2026-01-01T00:00:00Z) (wire: updatedAfter)
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 the management view of a single registered domain owned by the authenticated account, including status, nameservers, privacy and auto-renew preferences, and expiry date.

SELECT
auto_renew,
created_at,
domain,
expires_at,
idn_domain,
links,
name_servers,
privacy,
renew_by,
status,
transfer_lock,
updated_at
FROM godaddy.domains.domains_v3
WHERE domain_name = '{{ domain_name }}' -- required
AND x_request_id = '{{ x_request_id }}'
;

Lifecycle Methods

EXEC variables use wire (API) names.

Replaces the authoritative nameservers for the domain with the provided list. Minimum 2, maximum 13. Returns a DomainOperation; propagation to the registry is asynchronous.

EXEC godaddy.domains.domains_v3.update_nameservers
@domain_name='{{ domain_name }}' --required,
@idempotency_key='{{ idempotency_key }}' --required,
@x_request_id='{{ x_request_id }}',
@name_servers='{{ name_servers }}'
;