Skip to main content

records_v3

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

Overview

Namerecords_v3
TypeResource
Idgodaddy.dns.records_v3

Fields

The following fields are returned by SELECT queries:

Paginated DNS records for the zone.

NameDatatypeDescription
namestringThe DNS record name relative to the zone apex. Use @ to represent the zone apex itself (e.g. the bare domain example.com). (example: www)
record_idstringServer-assigned identifier for this DNS record. Stable across updates. (example: rec_a1b2c3d4) (wire: recordId)
datastringThe record value. Format is type-specific — for example, an IPv4 address for A records, or a hostname for CNAME and MX records. (example: 93.184.216.34)
flagintegerFlag byte for CAA records. 0 indicates non-critical; 128 indicates critical (the issuer must understand the tag property to proceed).
portintegerPort number for SRV records.
priorityintegerPriority value for MX and SRV records. Lower values are preferred.
protocolstringProtocol identifier for SRV records (e.g. _tcp, _udp).
servicestringService label for SRV records (e.g. _http).
tagstringTag property for CAA records. Common values: issue, issuewild, iodef.
ttlintegerTime-to-live in seconds. Controls how long resolvers cache this record.
typestringThe DNS resource record type. A — IPv4 address record. AAAA — IPv6 address record. CNAME — canonical name alias record; not permitted at the zone apex. MX — mail exchange routing record. TXT — arbitrary text record, used for SPF, DKIM, and domain verification. NS — authoritative name server delegation record. SRV — service locator record. SOA — start of authority record. CAA — certification authority authorization record. (A, AAAA, CNAME, MX, TXT, NS, SRV, SOA, CAA) (title: DNS Record Type)
weightintegerWeight for SRV load balancing among records with equal priority. Higher weight increases the probability of selection.

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
listselectzonex_request_id, page, page_size, total_required, fields, type, nameReturns a paginated collection of DNS resource records for the
specified zone. Supports filtering by record type and host name,
field projection, and page-based pagination.

Pagination uses page (1-based) and pageSize query parameters.
Pass totalRequired=true to include totalItems and totalPages when
at least one record matches; both are omitted for empty result
sets. Defaults to false to avoid count-query overhead.

Filter parameters are combined with logical AND. Pagination links
in the response preserve active filter, pagination, and
field-projection parameters.

sortBy and sortOrder are not supported. Results are always
returned in canonical zone-file order: resource record type (IANA
RR type number ascending — e.g. A before NS before CNAME), then
name, then data. This matches authoritative DNS ordering and is
not client-configurable.
createinsertzone, name, type, data, ttlx_request_idCreates a new DNS record in the GoDaddy-managed zone. Changes are applied synchronously; no operation polling required.
replaceupdatezone, record_id, name, type, data, ttlx_request_idFully replaces an existing DNS resource record identified by
recordId within the zone. All writable fields (name, type, data,
ttl) must be supplied; partial updates are not supported on this
endpoint. Changes are applied synchronously.

GoDaddy-managed system records (SOA and NS) are read-only. When
recordId refers to such a record, the request fails with
409 Conflict — the record exists but cannot be modified.
deletedeletezone, record_idx_request_idPermanently removes a DNS resource record from the zone. The
recordId must refer to an existing record within the specified
zone. Changes are applied synchronously.

GoDaddy-managed system records (SOA and NS) are read-only. When
recordId refers to such a record, the request fails with
409 Conflict — the record exists but cannot be deleted.

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
record_idstringServer-assigned DNS record identifier within the zone. (example: Aad7oqdXCms9mlJvm_m6UFYqmwjyP20H2KBmQHgttK9kGbF_TuI3knsocArQqIv5I0Kq5C0) (wire: recordId)
zonestringThe domain name in punycode A-label form (for example, example.com). For IDNs, use the punycode representation. (example: example.com)
fieldsstringComma-separated list of fields to include in each item of the response. Omitted fields are excluded from the payload. When absent, all fields are returned. Field names must match properties defined on the item schema for the operation; any unknown or invalid name returns 400 Bad Request. (example: name,type,data,ttl)
namestringFilter results to records with this host name relative to the zone. Use @ for the zone apex. (example: app2)
pageintegerOne-based page number for offset-based pagination. Defaults to 1. (example: 2)
page_sizeintegerMaximum number of items to return per page. (example: 25) (wire: pageSize)
total_requiredbooleanWhen true, the response includes totalItems and totalPages for the current filter when at least one record matches. Both are omitted when the result set is empty. Defaults to false; omitting totals avoids the cost of a count query on large collections. (example: true) (wire: totalRequired)
typestringFilter results to records of this DNS type. (example: A)
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 paginated collection of DNS resource records for the
specified zone. Supports filtering by record type and host name,
field projection, and page-based pagination.

Pagination uses page (1-based) and pageSize query parameters.
Pass totalRequired=true to include totalItems and totalPages when
at least one record matches; both are omitted for empty result
sets. Defaults to false to avoid count-query overhead.

Filter parameters are combined with logical AND. Pagination links
in the response preserve active filter, pagination, and
field-projection parameters.

sortBy and sortOrder are not supported. Results are always
returned in canonical zone-file order: resource record type (IANA
RR type number ascending — e.g. A before NS before CNAME), then
name, then data. This matches authoritative DNS ordering and is
not client-configurable.

SELECT
name,
record_id,
data,
flag,
port,
priority,
protocol,
service,
tag,
ttl,
type,
weight
FROM godaddy.dns.records_v3
WHERE zone = '{{ zone }}' -- required
AND x_request_id = '{{ x_request_id }}'
AND page = '{{ page }}'
AND page_size = '{{ page_size }}'
AND total_required = '{{ total_required }}'
AND fields = '{{ fields }}'
AND type = '{{ type }}'
AND name = '{{ name }}'
;

INSERT examples

Creates a new DNS record in the GoDaddy-managed zone. Changes are applied synchronously; no operation polling required.

INSERT INTO godaddy.dns.records_v3 (
name,
type,
data,
ttl,
priority,
service,
port,
weight,
protocol,
flag,
tag,
zone,
x_request_id
)
SELECT
'{{ name }}' /* required */,
'{{ type }}' /* required */,
'{{ data }}' /* required */,
{{ ttl }} /* required */,
{{ priority }},
'{{ service }}',
{{ port }},
{{ weight }},
'{{ protocol }}',
{{ flag }},
'{{ tag }}',
'{{ zone }}',
'{{ x_request_id }}'
RETURNING
name,
record_id,
data,
flag,
port,
priority,
protocol,
service,
tag,
ttl,
type,
weight
;

UPDATE examples

Fully replaces an existing DNS resource record identified by
recordId within the zone. All writable fields (name, type, data,
ttl) must be supplied; partial updates are not supported on this
endpoint. Changes are applied synchronously.

GoDaddy-managed system records (SOA and NS) are read-only. When
recordId refers to such a record, the request fails with
409 Conflict — the record exists but cannot be modified.

UPDATE godaddy.dns.records_v3
SET
name = '{{ name }}',
type = '{{ type }}',
data = '{{ data }}',
ttl = {{ ttl }},
priority = {{ priority }},
service = '{{ service }}',
port = {{ port }},
weight = {{ weight }},
protocol = '{{ protocol }}',
flag = {{ flag }},
tag = '{{ tag }}'
WHERE
zone = '{{ zone }}' --required
AND record_id = '{{ record_id }}' --required
AND name = '{{ name }}' --required
AND type = '{{ type }}' --required
AND data = '{{ data }}' --required
AND ttl = '{{ ttl }}' --required
AND x_request_id = '{{ x_request_id}}'
RETURNING
name,
record_id,
data,
flag,
port,
priority,
protocol,
service,
tag,
ttl,
type,
weight;

DELETE examples

Permanently removes a DNS resource record from the zone. The
recordId must refer to an existing record within the specified
zone. Changes are applied synchronously.

GoDaddy-managed system records (SOA and NS) are read-only. When
recordId refers to such a record, the request fails with
409 Conflict — the record exists but cannot be deleted.

DELETE FROM godaddy.dns.records_v3
WHERE zone = '{{ zone }}' --required
AND record_id = '{{ record_id }}' --required
AND x_request_id = '{{ x_request_id }}'
;