Skip to main content

GoDaddy DNS

GoDaddy DNS integration allows your product to connect with GoDaddy's Domains & DNS API to retrieve domain names, DNS records, and zone configurations hosted under a GoDaddy account. This integration is useful for domain inventory management, DNS visibility, automated record monitoring, and multi-cloud DNS synchronization.

Credentials Needed

To integrate with the GoDaddy REST API, you need to generate API credentials from the GoDaddy Developer Portal.

Required credentials:

  • API Key
  • API Secret

These credentials authenticate requests to the GoDaddy API and should be stored securely (never exposed client-side).

Permissions Needed / API Scopes

GoDaddy's API keys are associated with the account owner or reseller account and currently provide full access to all permitted operations. There are no granular OAuth scopes at this time — the key controls access to domains associated with that account.

FunctionalityEndpointDescription
List domains/v1/domainsLists all domains in the account
Get domain details/v1/domains/{domain}Retrieves metadata and status of a domain
List DNS records/v1/domains/{domain}/recordsLists all DNS records for a domain
Get specific DNS record/v1/domains/{domain}/records/{type}/{name}Retrieves specific record types

Use Read-only mode (if configured) to ensure safe integration without modifying DNS data.

Creating Users / Access Tokens

Step 1: Create an API Key & Secret

  1. Go to GoDaddy Developer Portal: https://developer.godaddy.com/keys
  2. Sign in using your GoDaddy account credentials
  3. Click Create New API Key
  4. Choose:
    • Environment: Production (for real data access) or OTE (test/sandbox)
    • Name: DNSIntegrationKey
  5. Click Create Key
  6. Copy and securely store your:
    • API Key
    • API Secret

Test Connectivity

You can test the API connection using curl or your favorite REST client:

List All Domains

curl -X GET "https://api.godaddy.com/v1/domains" \
-H "Authorization: sso-key <API_KEY>:<API_SECRET>" \
-H "Accept: application/json"

Example Response:

[
{
"domain": "example.com",
"status": "ACTIVE",
"expires": "2026-01-01T00:00:00Z",
"renewAuto": true,
"locked": false,
"createdAt": "2020-01-01T00:00:00Z"
}
]

Fetch DNS Records for a Domain

curl -X GET "https://api.godaddy.com/v1/domains/example.com/records" \
-H "Authorization: sso-key <API_KEY>:<API_SECRET>" \
-H "Accept: application/json"

Example Response:

[
{"type": "A", "name": "@", "data": "192.0.2.1", "ttl": 600},
{"type": "CNAME", "name": "www", "data": "example.com", "ttl": 3600},
{"type": "MX", "name": "@", "data": "mail.protection.outlook.com", "priority": 10}
]

Save the Results in the Platform and Create Connection

  1. In your platform's integration setup, securely store:
    • GODADDY_API_KEY
    • GODADDY_API_SECRET
  2. Label the connection as GoDaddy DNS Integration
  3. Test the connection by listing domains and fetching DNS records
  4. Save the retrieved data for use in DNS monitoring, inventory, or compliance modules

Best Practices

  • Always store your API credentials in a secure vault or encrypted configuration
  • Use Production environment keys only in production integrations; use OTE for testing
  • Rotate keys regularly (e.g., every 90 days)
  • GoDaddy API is rate-limited — avoid frequent polling
    • Default limit: 10,000 requests/day per key
    • Use caching or scheduled syncs to reduce API load
  • If you have multiple accounts or resellers, use account-scoped keys for isolation
  • Log API usage (not credentials) for auditing and troubleshooting
  • Ensure you use HTTPS for all communication
  • Validate responses and handle HTTP 401/429 errors gracefully with retries

Useful GoDaddy API Endpoints

ResourceMethodEndpointDescription
List all domainsGET/v1/domainsRetrieve domains under your account
Get domain detailsGET/v1/domains/{domain}Get domain metadata
List all DNS recordsGET/v1/domains/{domain}/recordsList all DNS records
Get DNS record by typeGET/v1/domains/{domain}/records/{type}Filter records by type
Get specific recordGET/v1/domains/{domain}/records/{type}/{name}Retrieve a single DNS record
Update recordPUT/v1/domains/{domain}/recordsUpdate existing DNS records
Delete recordDELETE/v1/domains/{domain}/records/{type}/{name}Remove DNS records

Official API Documentation: https://developer.godaddy.com/doc/endpoint/domains

Example Combined DNS Fetch Flow

  1. Fetch all domains using:
   GET /v1/domains
  1. For each domain, fetch DNS records using:
   GET /v1/domains/{domain}/records
  1. Normalize and store results in your platform as a DNS inventory:
   {
"domain": "example.com",
"records": [
{"type": "A", "name": "@", "data": "192.0.2.1"},
{"type": "CNAME", "name": "www", "data": "example.com"}
]
}

Best Practice Architecture Diagram (Summary)

[Your Platform] 


[GoDaddy API Integration Module]

├── GET /v1/domains → List all domains
├── GET /v1/domains/{domain}/records → Get DNS records


[Secure Vault] → Stores API Key & Secret


[Data Lake / Dashboard] → Displays DNS Zones and Records