Support

How to list registered domains

View as Markdown

Retrieve the domains owned by the authenticated account, with cursor pagination, and fetch full detail for any one domain.

Overview

List domains registered to an account using GET /v3/domains/domain-names (recommended) or the legacy GET /v1/domains. Fetch full detail for any single domain using GET /v2/customers/{customerId}/domains/{domain}. v3 uses cursor-based HATEOAS pagination; v1 uses limit and marker.

v3 — List registered domains

GET /v3/domains/domain-names returns a paginated list of domains owned by the authenticated account. Results use cursor-based pagination via HATEOAS links in the response.

The following procedure lists registered domains using the v3 API.

  • Run the following command for your preferred language:
curl -s "https://api.godaddy.com/v3/domains/domain-names" \
  -H "Authorization: Bearer $GODADDY_PAT"

The response is a DomainCollection with items (the current page) and links (pagination navigation):

{
  "items": [
    {
      "domain": "example.com",
      "status": "ACTIVE",
      "expiresAt": "2027-01-15T00:00:00Z",
      "autoRenew": true,
      "privacy": false,
      "transferLock": true,
      "nameServers": ["ns01.domaincontrol.com", "ns02.domaincontrol.com"]
    }
  ],
  "links": [
    { "rel": "self", "href": "/v3/domains/domain-names?pageSize=25" },
    { "rel": "next", "href": "/v3/domains/domain-names?pageSize=25&pageToken=eyJkb21haW4iOiJleGFtcGxlLmNvbSJ9" }
  ]
}

Follow the rel=next link to retrieve the next page. When rel=next is absent, you have reached the last page.

Filtering by lifecycle group

Use the lifecycleGroups query parameter to filter results by DomainLifecycleGroup:

ValueIncludes
PENDINGDomains with setup in progress (for example, PENDING_REGISTRATION).
REGISTEREDActive, operational domains (for example, ACTIVE, PARKED).
PENDING_TERMINALDomains approaching a terminal state (for example, PENDING_TRANSFER, EXPIRED).
TERMINALDomains that are no longer manageable (for example, CANCELLED, DELETED_REDEEMABLE, TRANSFERRED).
curl -s "https://api.godaddy.com/v3/domains/domain-names?lifecycleGroups=REGISTERED" \
  -H "Authorization: Bearer $GODADDY_PAT"

Reference: GET /v3/domains/domain-names

v1 — List registered domains

GET /v1/domains returns the domains owned by the authenticated account, paginated with limit and marker. GET /v1/domains/{domain} returns full detail for a single domain.

This page assumes you have a PAT credential. See Authentication and Quickstart if you don't.

Retrieve registered domains

The response is an array of domain summaries. For pagination semantics and a looping example, see Pagination.

The following procedure retrieves the domains registered to the authenticated account.

  • Run the following command for your preferred language:
curl -s "https://api.godaddy.com/v1/domains?limit=100" \
  -H "Authorization: Bearer $GODADDY_PAT" \
  -H "Accept: application/json"

Filtering

GET /v1/domains accepts these query parameters in addition to limit and marker:

ParameterNotes
statusesComma-separated list of domain statuses (e.g. ACTIVE, EXPIRED, PENDING_TRANSFER). Returns only domains in one of the listed statuses.
statusGroupsCoarser filter — by status group (e.g. VISIBLE, EXPIRED).
includesComma-separated list of expansions to include (e.g. contacts). Adds related objects to each item without a follow-up call.
modifiedDateISO-8601 timestamp. Returns only domains modified at or after this time.

Reference: GET /v1/domains.

Get details for a single domain

The response is a DomainDetail object covering registration metadata, expiration, contacts, nameservers, lock state, privacy state, and auto-renew configuration. For the full schema, see the reference.

The following procedure retrieves details for a single domain.

  • Run the following command for your preferred language:
curl -s "https://api.godaddy.com/v1/domains/example.com" \
  -H "Authorization: Bearer $GODADDY_PAT" \
  -H "Accept: application/json"

Reference: GET /v1/domains/{domain}.

v2 — single domain detail

Use the v2 endpoint for single-domain detail. It returns consistent status values and gives you access to async operation tracking if you need it.

The following procedure retrieves domain details for a specific customer.

  • Run the following command for your preferred language:
curl -s "https://api.godaddy.com/v2/customers/$CUSTOMER_ID/domains/example.com" \
  -H "Authorization: Bearer $GODADDY_PAT" \
  -H "Accept: application/json"

Reference: GET /v2/customers/{customerId}/domains/{domain}.

v2 paths (/v2/customers/{customerId}/domains/...) are preferred for single-domain detail; v1 paths are appropriate for list operations and account-scoped writes.

Use the CLI

After you set up the CLI, you can use it to list domains in your account and fetch full details for one domain. See the CLI reference for the full gddy domain command list.

The following procedure lists domains and fetches domain details using the CLI.

  • Run the command for your operation:
gddy domain list
gddy domain list --status ACTIVE
gddy domain get example.com

Use the REST API for v2 single-domain detail; the preceding CLI commands use v1 account-scoped endpoints.

Common errors

StatusMost likely cause
401Token missing, expired, or revoked.
403Account doesn't meet requirements for this operation. See Account requirements.
404 (single-domain GET)Domain doesn't exist, or isn't owned by the authenticated account.
429Rate limit. Wait retryAfterSec and retry.

Full error envelope and retry guidance: Errors.

Next

Agent & Automation Notes

PermissionsDNS Management, Domain Owner
Scopesdomains.domain:read
Rate limitRate-limited per credential per window. Go to /docs/api-users/rate-limits for current values.
IdempotentYes
DestructiveNo
On failureRead-only. Safe to retry any failure. For paginated cursors, resume from the last successful marker.

Last updated on

How is this guide?

On this page