Skip to content
Start here

List Registrations

registrar.registrations.list(RegistrationListParams**kwargs) -> SyncCursorPagination[Registration]
GET/accounts/{account_id}/registrar/registrations

Returns a paginated list of domain registrations owned by the account.

This endpoint uses cursor-based pagination. Results are ordered by registration date by default. To fetch the next page, pass the cursor value from the result_info object in the response as the cursor query parameter in your next request. An empty cursor string indicates there are no more pages.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
account_id: Optional[str]

Identifier

maxLength32
cursor: Optional[str]

Opaque token from a previous response’s result_info.cursor. Pass this value to fetch the next page of results. Omit (or pass an empty string) for the first page.

maxLength256
direction: Optional[Literal["asc", "desc"]]

Sort direction for results. Defaults to ascending order.

One of the following:
"asc"
"desc"
per_page: Optional[int]

Number of items to return per page.

maximum50
minimum1
sort_by: Optional[Literal["registry_created_at", "registry_expires_at", "name"]]

Column to sort results by. Defaults to registration date (registry_created_at) when omitted.

One of the following:
"registry_created_at"
"registry_expires_at"
"name"
ReturnsExpand Collapse
class Registration:

A domain registration resource representing the current state of a registered domain.

auto_renew: bool

Whether the domain will be automatically renewed before expiration.

created_at: datetime

When the domain was registered. Present when the registration resource exists.

formatdate-time
domain_name: str

Fully qualified domain name (FQDN) including the extension (e.g., example.com, mybrand.app). The domain name uniquely identifies a registration — the same domain cannot be registered twice, making it a natural idempotency key for registration requests.

expires_at: Optional[datetime]

When the domain registration expires. Present when the registration is ready; may be null only while status is registration_pending.

formatdate-time
locked: bool

Whether the domain is locked for transfer.

privacy_mode: Literal["redaction"]

Current WHOIS privacy mode for the registration.

status: Literal["active", "registration_pending", "expired", 3 more]

Current registration status.

  • active: Domain is registered and operational
  • registration_pending: Registration is in progress
  • expired: Domain has expired
  • suspended: Domain is suspended by the registry
  • redemption_period: Domain is in the redemption grace period
  • pending_delete: Domain is pending deletion by the registry
One of the following:
"active"
"registration_pending"
"expired"
"suspended"
"redemption_period"
"pending_delete"

List Registrations

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
page = client.registrar.registrations.list(
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
)
page = page.result[0]
print(page.auto_renew)
{
  "errors": [],
  "messages": [],
  "result": [],
  "result_info": {
    "count": 0,
    "cursor": "",
    "per_page": 20
  },
  "success": true
}
{
  "errors": [],
  "messages": [],
  "result": [
    {
      "auto_renew": true,
      "created_at": "2025-01-15T10:00:00Z",
      "domain_name": "example.com",
      "expires_at": "2026-01-15T10:00:00Z",
      "locked": true,
      "privacy_mode": "redaction",
      "status": "active"
    },
    {
      "auto_renew": false,
      "created_at": "2025-03-20T14:30:00Z",
      "domain_name": "mybrand.dev",
      "expires_at": "2026-03-20T14:30:00Z",
      "locked": true,
      "privacy_mode": "redaction",
      "status": "active"
    }
  ],
  "result_info": {
    "count": 2,
    "cursor": "",
    "per_page": 20
  },
  "success": true
}
{
  "errors": [],
  "messages": [],
  "result": [
    {
      "auto_renew": true,
      "created_at": "2025-04-01T09:00:00Z",
      "domain_name": "charlie.org",
      "expires_at": "2026-04-01T09:00:00Z",
      "locked": true,
      "privacy_mode": "redaction",
      "status": "active"
    }
  ],
  "result_info": {
    "count": 1,
    "cursor": "",
    "per_page": 20
  },
  "success": true
}
{
  "errors": [
    {
      "code": 10000,
      "message": "Invalid pagination cursor"
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
Returns Examples
{
  "errors": [],
  "messages": [],
  "result": [],
  "result_info": {
    "count": 0,
    "cursor": "",
    "per_page": 20
  },
  "success": true
}
{
  "errors": [],
  "messages": [],
  "result": [
    {
      "auto_renew": true,
      "created_at": "2025-01-15T10:00:00Z",
      "domain_name": "example.com",
      "expires_at": "2026-01-15T10:00:00Z",
      "locked": true,
      "privacy_mode": "redaction",
      "status": "active"
    },
    {
      "auto_renew": false,
      "created_at": "2025-03-20T14:30:00Z",
      "domain_name": "mybrand.dev",
      "expires_at": "2026-03-20T14:30:00Z",
      "locked": true,
      "privacy_mode": "redaction",
      "status": "active"
    }
  ],
  "result_info": {
    "count": 2,
    "cursor": "",
    "per_page": 20
  },
  "success": true
}
{
  "errors": [],
  "messages": [],
  "result": [
    {
      "auto_renew": true,
      "created_at": "2025-04-01T09:00:00Z",
      "domain_name": "charlie.org",
      "expires_at": "2026-04-01T09:00:00Z",
      "locked": true,
      "privacy_mode": "redaction",
      "status": "active"
    }
  ],
  "result_info": {
    "count": 1,
    "cursor": "",
    "per_page": 20
  },
  "success": true
}
{
  "errors": [
    {
      "code": 10000,
      "message": "Invalid pagination cursor"
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}