Support

CRUD operations on DNS records within the GoDaddy-managed zone. Sub-collection of /zones/{zone}. Changes are applied synchronously.

GET
/zones/{zone}/dns-records

Authorization

bearerAuth
AuthorizationBearer <token>

Personal Access Token (PAT). Generate one from the developer dashboard. Pass as: Authorization: Bearer <token>.

In: header

Path Parameters

zone*string

The domain name in punycode A-label form (for example, example.com). For IDNs, use the punycode representation.

Query Parameters

page?integer

One-based page number for offset-based pagination. Defaults to 1.

Range1 <= value
Default1
pageSize?integer

Maximum number of items to return per page.

Range1 <= value <= 100
Default25
totalRequired?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.

Defaultfalse
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.

type?DNS Record Type

Filter results to records of this DNS type.

Value in

  • "A"
  • "AAAA"
  • "CNAME"
  • "MX"
  • "TXT"
  • "NS"
  • "SRV"
  • "SOA"
  • "CAA"
name?string

Filter results to records with this host name relative to the zone. Use @ for the zone apex.

Header Parameters

X-Request-Id?string

Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/zones/example.com/dns-records?page=2&pageSize=25&totalRequired=true&fields=name%2Ctype%2Cdata%2Cttl&type=A&name=app2"
{  "items": [    {      "recordId": "Aad7oqdXCms9mlJvm_m6UFYqmwjyP20H2KBmQHgttK9kGbF_TuI3knsocArQqIv5I0Kq5C0",      "name": "@",      "type": "A",      "data": "192.0.2.1",      "ttl": 3600    },    {      "recordId": "ARZaSm3N9qvJemM6yBmuXIO6F_YIfqSiZcaHhHFozlDsDhdOr1njlXc09TAPJlm8dXqGttRrjRKIgiXpXVm9fms",      "name": "app2",      "type": "A",      "data": "192.0.2.2",      "ttl": 3600    }  ],  "totalItems": 150,  "totalPages": 6,  "links": [    {      "rel": "self",      "href": "https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=2&pageSize=25&totalRequired=true"    },    {      "rel": "first",      "href": "https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=1&pageSize=25&totalRequired=true"    },    {      "rel": "last",      "href": "https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=6&pageSize=25&totalRequired=true"    },    {      "rel": "next",      "href": "https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=3&pageSize=25&totalRequired=true"    },    {      "rel": "prev",      "href": "https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=1&pageSize=25&totalRequired=true"    }  ]}
POST
/zones/{zone}/dns-records

Authorization

bearerAuth
AuthorizationBearer <token>

Personal Access Token (PAT). Generate one from the developer dashboard. Pass as: Authorization: Bearer <token>.

In: header

Path Parameters

zone*string

The domain name in punycode A-label form (for example, example.com). For IDNs, use the punycode representation.

Header Parameters

X-Request-Id?string

Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header.

Formatuuid

Request Body

application/json

A single DNS resource record within a zone.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/zones/example.com/dns-records" \  -H "Content-Type: application/json" \  -d '{    "name": "@",    "type": "A",    "data": "192.0.2.1",    "ttl": 3600  }'
{  "recordId": "string",  "name": "string",  "type": "A",  "data": "string",  "ttl": 600,  "priority": 0,  "service": "string",  "port": 0,  "weight": 0,  "protocol": "string",  "flag": 0,  "tag": "string"}
PUT
/zones/{zone}/dns-records/{recordId}

Authorization

bearerAuth
AuthorizationBearer <token>

Personal Access Token (PAT). Generate one from the developer dashboard. Pass as: Authorization: Bearer <token>.

In: header

Path Parameters

zone*string

The domain name in punycode A-label form (for example, example.com). For IDNs, use the punycode representation.

recordId*string

Server-assigned DNS record identifier within the zone.

Header Parameters

X-Request-Id?string

Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header.

Formatuuid

Request Body

application/json

A single DNS resource record within a zone.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/zones/example.com/dns-records/Aad7oqdXCms9mlJvm_m6UFYqmwjyP20H2KBmQHgttK9kGbF_TuI3knsocArQqIv5I0Kq5C0" \  -H "Content-Type: application/json" \  -d '{    "name": "@",    "type": "A",    "data": "192.0.2.1",    "ttl": 3600  }'
{  "recordId": "string",  "name": "string",  "type": "A",  "data": "string",  "ttl": 600,  "priority": 0,  "service": "string",  "port": 0,  "weight": 0,  "protocol": "string",  "flag": 0,  "tag": "string"}
DELETE
/zones/{zone}/dns-records/{recordId}

Authorization

bearerAuth
AuthorizationBearer <token>

Personal Access Token (PAT). Generate one from the developer dashboard. Pass as: Authorization: Bearer <token>.

In: header

Path Parameters

zone*string

The domain name in punycode A-label form (for example, example.com). For IDNs, use the punycode representation.

recordId*string

Server-assigned DNS record identifier within the zone.

Header Parameters

X-Request-Id?string

Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/zones/example.com/dns-records/Aad7oqdXCms9mlJvm_m6UFYqmwjyP20H2KBmQHgttK9kGbF_TuI3knsocArQqIv5I0Kq5C0"
Empty

Agent & Automation Notes

Scopesdomains.domain:read, domains.domain:create, domains.dns:update, domains.nameserver:update
Rate limit60 req/min per credential
On failureGET operations are safe to retry. POST registrations use Idempotency-Key. Poll async operations — do not resubmit.

Last updated on

How is this guide?