# Introduction (https://developer.godaddy.com/en/docs/api-users)



## 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:

| Step                                                           | Time   | What you'll do                                                                       |
| -------------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------ |
| [Generate a PAT](https://developer.godaddy.com/docs/api-users/auth)                         | 2 min  | Create a scoped Personal Access Token from the developer dashboard                   |
| [Make your first call](https://developer.godaddy.com/docs/api-users/quickstart)             | 3 min  | Check domain availability with a single `curl` command — no account changes required |
| [Search for domains](https://developer.godaddy.com/docs/api-users/search-domains)           | 5 min  | Check availability and get suggestions for a domain name                             |
| [Register a domain](https://developer.godaddy.com/docs/api-users/purchase-domains/register) | 10 min | Walk through the v3 quote-and-register flow with billing consent                     |

Already up and running? Jump straight to [manage your domains](https://developer.godaddy.com/docs/api-users/manage-domains) or go to the [Domains v3 API reference](https://developer.godaddy.com/docs/references/rest/domains/v3).

## What you can do

<Cards>
  <Card title="Search for domains" description="Check availability, compare pricing, and discover suggestions." href="/docs/api-users/search-domains" />

  <Card title="Purchase domains" description="Register a new domain or transfer one from another registrar." href="/docs/api-users/purchase-domains/register" />

  <Card title="Manage your domains" description="DNS, contacts, renewals, lock, and forwarding." href="/docs/api-users/manage-domains" />
</Cards>

<div className="not-prose my-6 flex flex-wrap gap-4">
  <DynamicLink href="/docs/api-users/quickstart" className="gd-page-action-btn gd-page-action-btn--lg">
    Get Started
  </DynamicLink>
</div>

## Which API version?

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

| Operation                                                    | Version |
| ------------------------------------------------------------ | ------- |
| Check domain availability, get domain suggestions            | v3      |
| Register a domain                                            | v3      |
| DNS records and nameserver management                        | v3      |
| Change domain settings (auto-renew, registry lock, contacts) | v1      |
| Domain transfer                                              | v1      |
| Domain forwarding                                            | v2      |

## 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](https://developer.godaddy.com/docs/api-users/auth). Read operations also need `Accept: application/json`, and write operations (`POST`, `PATCH`, `PUT`) additionally need `Content-Type: application/json`.

```bash
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](https://developer.godaddy.com/docs/references/rest) 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](https://developer.godaddy.com/personal-access-token)). 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 <ClassicDeveloperLink path="/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](https://www.godaddy.com/help/what-is-good-as-gold-3359) 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.

<Callout type="info" title="Note">
  Go to [Authenticate](https://developer.godaddy.com/docs/api-users/auth) for how to generate credentials and add them to your requests.
</Callout>

## API versions

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

| Version | Base path                                | What'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

<Cards>
  <Card title="Authentication" description="Personal Access Token (PAT) or legacy sso-key. Generate a PAT from the developer dashboard." href="/docs/api-users/auth" />

  <Card title="CLI setup" description="Install the beta gddy CLI, authenticate, and make a first call." href="/docs/api-users/cli-setup" />

  <Card title="Errors" description="Error envelope, status codes, retry semantics." href="/docs/api-users/errors" />

  <Card title="Rate limits" description="Per-credential, windowed rate limit. Retry-After header on 429." href="/docs/api-users/rate-limits" />

  <Card title="Pagination" description="Cursor-based pagination on v1 list endpoints." href="/docs/api-users/pagination" />

  <Card title="MCP server" description="Connect Claude or another MCP client to domain search and availability tools." href="/docs/api-users/mcp" />
</Cards>

## First call

Follow the [Quickstart](https://developer.godaddy.com/docs/api-users/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](https://developer.godaddy.com/docs/api-users/cli-setup) first.
