Support

Introduction

View as Markdown

Call GoDaddy APIs directly from your code or agent — domain registration, DNS, transfers, and more.

Overview

GoDaddy's REST APIs give you direct programmatic access to the same platform capabilities that power GoDaddy's own products. You can search and register domains, manage DNS, handle renewals and transfers, and more through standard HTTP calls from your code, scripts, or AI agents.

Start here

New to the GoDaddy Domains API? Follow this path:

StepTimeWhat you'll do
Generate a PAT2 minCreate a scoped Personal Access Token from the developer dashboard
Make your first call3 minCheck domain availability with a single curl command — no account changes required
Search for domains5 minCheck availability and get suggestions for a domain name
Register a domain10 minWalk through the v3 quote-and-register flow with billing consent

Already up and running? Jump straight to manage your domains or go to the Domains v3 API reference.

What you can do

Which API version?

The Domains API has three version namespaces. Pick the right one before you start.

OperationVersion
Check domain availability, get domain suggestionsv3
Register a domainv3
DNS records and nameserver managementv3
Change domain settings (auto-renew, registry lock, contacts)v1
Domain transferv1
Domain forwardingv2

Base URL

All API calls target https://api.godaddy.com.

All requests and responses use JSON. Every call requires an Authorization header with a Personal Access Token. Read operations also need Accept: application/json, and write operations (POST, PATCH, PUT) additionally need Content-Type: application/json.

curl -s "https://api.godaddy.com/v1/domains" \
  -H "Authorization: Bearer $GODADDY_PAT" \
  -H "Accept: application/json"

The API is stateless — no sessions, no cookies. Each request is independently authenticated and authorized. See the REST Reference for the complete endpoint catalog.

Credentials and access

Authentication uses a Personal Access Token (PAT) (a scoped Bearer token you generate from the developer dashboard). PATs are tied to specific capability scopes, can be set to expire, and can be revoked individually without rotating any account-wide key. For most integrations, a PAT with the minimum required scopes is the right choice.

The legacy sso-key credential (a key/secret pair from classic-developer.godaddy.com/keys) is still supported for some APIs but is scheduled for deprecation. It doesn't work for v3 Domains APIs. New integrations should use a PAT.

Account eligibility matters for write calls. A valid credential isn't enough on its own. Some operations require the account to meet additional eligibility requirements:

  • Read operations (availability search, domain listing, DNS reads) work with any valid credential on any account.
  • Write operations that cost money (registration, renewal, transfer, and payment operations) require the account to have a valid billing method on file or a funded Good as Gold balance.

If an account doesn't meet these requirements, the API returns 403 Forbidden. To determine whether the failure is a scope problem or an account eligibility problem, check the code field in the response body. The HTTP status alone doesn't distinguish between the two.

Note

Go to Authenticate for how to generate credentials and add them to your requests.

API versions

The Domains API spans three version namespaces, each reflecting a different phase of the platform's evolution:

VersionBase pathWhat's here
v3/v3/domains/...Availability checks and registration (the preferred namespace for new integrations)
v2/v2/customers/{customerId}/domains/...v1 capabilities with async processing and operations tracking
v1/v1/domains/...List, DNS, contacts, lock, and renewals

v3 is where new capabilities are being added. For everything not yet in v3 (DNS, renewals, transfers, contacts, lock), use v1 or v2.

In this section

First call

Follow the Quickstart to generate a Personal Access Token and make your first call in under five minutes. If you prefer command-line workflows over raw curl, set up the CLI first.

Last updated on

How is this guide?

On this page