records_v3
GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3.
Overview
| Name | records_v3 |
| Type | Resource |
| Id | godaddy.dns.records_v3 |
Fields
The following fields are returned by SELECT queries:
- list
Paginated DNS records for the zone.
| Name | Datatype | Description |
|---|---|---|
name | string | The 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_id | string | Server-assigned identifier for this DNS record. Stable across updates. (example: rec_a1b2c3d4) (wire: recordId) |
data | string | The 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) |
flag | integer | Flag byte for CAA records. 0 indicates non-critical; 128 indicates critical (the issuer must understand the tag property to proceed). |
port | integer | Port number for SRV records. |
priority | integer | Priority value for MX and SRV records. Lower values are preferred. |
protocol | string | Protocol identifier for SRV records (e.g. _tcp, _udp). |
service | string | Service label for SRV records (e.g. _http). |
tag | string | Tag property for CAA records. Common values: issue, issuewild, iodef. |
ttl | integer | Time-to-live in seconds. Controls how long resolvers cache this record. |
type | string | The 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) |
weight | integer | Weight 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:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
list | select | zone | x_request_id, page, page_size, total_required, fields, type, name | 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. |
create | insert | zone, name, type, data, ttl | x_request_id | Creates a new DNS record in the GoDaddy-managed zone. Changes are applied synchronously; no operation polling required. |
replace | update | zone, record_id, name, type, data, ttl | x_request_id | 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. |
delete | delete | zone, record_id | x_request_id | 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. |
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 |
|---|---|---|
record_id | string | Server-assigned DNS record identifier within the zone. (example: Aad7oqdXCms9mlJvm_m6UFYqmwjyP20H2KBmQHgttK9kGbF_TuI3knsocArQqIv5I0Kq5C0) (wire: recordId) |
zone | string | The domain name in punycode A-label form (for example, example.com). For IDNs, use the punycode representation. (example: example.com) |
fields | string | Comma-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) |
name | string | Filter results to records with this host name relative to the zone. Use @ for the zone apex. (example: app2) |
page | integer | One-based page number for offset-based pagination. Defaults to 1. (example: 2) |
page_size | integer | Maximum number of items to return per page. (example: 25) (wire: pageSize) |
total_required | boolean | When 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) |
type | string | Filter results to records of this DNS type. (example: A) |
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
- list
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
- create
- Manifest
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
;
# Description fields are for documentation purposes
- name: records_v3
props:
- name: zone
value: "{{ zone }}"
description: Required parameter for the records_v3 resource.
- name: name
value: "{{ name }}"
description: |
The DNS record name relative to the zone apex. Use @ to represent the zone apex itself (e.g. the bare domain example.com).
- name: type
value: "{{ type }}"
description: |
The 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.
valid_values: ['A', 'AAAA', 'CNAME', 'MX', 'TXT', 'NS', 'SRV', 'SOA', 'CAA']
- name: data
value: "{{ data }}"
description: |
The record value. Format is type-specific — for example, an IPv4 address for A records, or a hostname for CNAME and MX records.
- name: ttl
value: {{ ttl }}
description: |
Time-to-live in seconds. Controls how long resolvers cache this record.
- name: priority
value: {{ priority }}
description: |
Priority value for MX and SRV records. Lower values are preferred.
- name: service
value: "{{ service }}"
description: |
Service label for SRV records (e.g. _http).
- name: port
value: {{ port }}
description: |
Port number for SRV records.
- name: weight
value: {{ weight }}
description: |
Weight for SRV load balancing among records with equal priority. Higher weight increases the probability of selection.
- name: protocol
value: "{{ protocol }}"
description: |
Protocol identifier for SRV records (e.g. _tcp, _udp).
- name: flag
value: {{ flag }}
description: |
Flag byte for CAA records. 0 indicates non-critical; 128 indicates critical (the issuer must understand the tag property to proceed).
- name: tag
value: "{{ tag }}"
description: |
Tag property for CAA records. Common values: issue, issuewild, iodef.
- 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.
UPDATE examples
- replace
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 with409 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
- delete
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 with409 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 }}'
;