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.
| Functionality | Endpoint | Description |
|---|---|---|
| List domains | /v1/domains | Lists all domains in the account |
| Get domain details | /v1/domains/{domain} | Retrieves metadata and status of a domain |
| List DNS records | /v1/domains/{domain}/records | Lists 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
- Go to GoDaddy Developer Portal: https://developer.godaddy.com/keys
- Sign in using your GoDaddy account credentials
- Click Create New API Key
- Choose:
- Environment: Production (for real data access) or OTE (test/sandbox)
- Name:
DNSIntegrationKey
- Click Create Key
- 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
- In your platform's integration setup, securely store:
GODADDY_API_KEYGODADDY_API_SECRET
- Label the connection as GoDaddy DNS Integration
- Test the connection by listing domains and fetching DNS records
- 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
| Resource | Method | Endpoint | Description |
|---|---|---|---|
| List all domains | GET | /v1/domains | Retrieve domains under your account |
| Get domain details | GET | /v1/domains/{domain} | Get domain metadata |
| List all DNS records | GET | /v1/domains/{domain}/records | List all DNS records |
| Get DNS record by type | GET | /v1/domains/{domain}/records/{type} | Filter records by type |
| Get specific record | GET | /v1/domains/{domain}/records/{type}/{name} | Retrieve a single DNS record |
| Update record | PUT | /v1/domains/{domain}/records | Update existing DNS records |
| Delete record | DELETE | /v1/domains/{domain}/records/{type}/{name} | Remove DNS records |
Official API Documentation: https://developer.godaddy.com/doc/endpoint/domains
Example Combined DNS Fetch Flow
- Fetch all domains using:
GET /v1/domains
- For each domain, fetch DNS records using:
GET /v1/domains/{domain}/records
- 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