Skip to content
Start here

List Zones

client.zones.list(ZoneListParams { account, direction, match, 5 more } query?, RequestOptionsoptions?): V4PagePaginationArray<Zone { id, account, activated_on, 20 more } >
GET/zones

Lists, searches, sorts, and filters your zones. Listing zones across more than 500 accounts is currently not allowed.

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
Accepted Permissions (at least one required)
Zone Zone Read
ParametersExpand Collapse
query: ZoneListParams { account, direction, match, 5 more }
account?: Account
id?: string

Filter by an account ID.

name?: string

An account Name. Optional filter operators can be provided to extend refine the search:

  • equal (default)
  • not_equal
  • starts_with
  • ends_with
  • contains
  • starts_with_case_sensitive
  • ends_with_case_sensitive
  • contains_case_sensitive
maxLength253
direction?: "asc" | "desc"

Direction to order zones.

One of the following:
"asc"
"desc"
match?: "any" | "all"

Whether to match all search requirements or at least one (any).

One of the following:
"any"
"all"
name?: string

A domain name. Optional filter operators can be provided to extend refine the search:

  • equal (default)
  • not_equal
  • starts_with
  • ends_with
  • contains
  • starts_with_case_sensitive
  • ends_with_case_sensitive
  • contains_case_sensitive
maxLength253
order?: "name" | "status" | "account.id" | 2 more

Field to order zones by.

One of the following:
"name"
"status"
"account.id"
"account.name"
"plan.id"
page?: number

Page number of paginated results.

minimum1
per_page?: number

Number of zones per page.

maximum50
minimum5
status?: "initializing" | "pending" | "active" | "moved"

Specify a zone status to filter by.

One of the following:
"initializing"
"pending"
"active"
"moved"
ReturnsExpand Collapse
Zone { id, account, activated_on, 20 more }
id: string

Identifier

maxLength32
account: Account { id, name }

The account the zone belongs to.

id?: string

Identifier

maxLength32
name?: string

The name of the account.

activated_on: string | null

The last time proof of ownership was detected and the zone was made active.

formatdate-time
created_on: string

When the zone was created.

formatdate-time
development_mode: number

The interval (in seconds) from when development mode expires (positive integer) or last expired (negative integer) for the domain. If development mode has never been enabled, this value is 0.

meta: Meta { cdn_only, custom_certificate_quota, dns_only, 4 more }

Metadata about the zone.

cdn_only?: boolean

The zone is only configured for CDN.

custom_certificate_quota?: number

Number of Custom Certificates the zone can have.

dns_only?: boolean

The zone is only configured for DNS.

foundation_dns?: boolean

The zone is setup with Foundation DNS.

page_rule_quota?: number

Number of Page Rules a zone can have.

phishing_detected?: boolean

The zone has been flagged for phishing.

step?: number
modified_on: string

When the zone was last modified.

formatdate-time
name: string

The domain name. Per RFC 1035 the overall zone name can be up to 253 characters, with each segment ("label") not exceeding 63 characters.

maxLength253
name_servers: Array<string>

The name servers Cloudflare assigns to a zone.

original_dnshost: string | null

DNS host at the time of switching to Cloudflare.

maxLength50
original_name_servers: Array<string> | null

Original name servers before moving to Cloudflare.

original_registrar: string | null

Registrar for the domain at the time of switching to Cloudflare.

owner: Owner { id, name, type }

The owner of the zone.

id?: string

Identifier

maxLength32
name?: string

Name of the owner.

type?: string

The type of owner.

Deprecatedplan: Plan { id, can_subscribe, currency, 7 more }
Please use the `/zones/{zone_id}/subscription` API to update a zone's plan. Changing this value will create/cancel associated subscriptions. To view available plans for this zone, see [Zone Plans](https://developers.cloudflare.com/api/resources/zones/subresources/plans/).

A Zones subscription information.

id?: string

Identifier

maxLength32
can_subscribe?: boolean

States if the subscription can be activated.

currency?: string

The denomination of the customer.

externally_managed?: boolean

If this Zone is managed by another company.

frequency?: string

How often the customer is billed.

is_subscribed?: boolean

States if the subscription active.

legacy_discount?: boolean

If the legacy discount applies to this Zone.

legacy_id?: string

The legacy name of the plan.

name?: string

Name of the owner.

price?: number

How much the customer is paying.

cname_suffix?: string

Allows the customer to use a custom apex. Tenants Only Configuration.

paused?: boolean

Indicates whether the zone is only using Cloudflare DNS services. A true value means the zone will not receive security or performance benefits.

Deprecatedpermissions?: Array<string>
This has been replaced by Account memberships.

Legacy permissions based on legacy user membership information.

status?: "initializing" | "pending" | "active" | "moved"

The zone status on Cloudflare.

One of the following:
"initializing"
"pending"
"active"
"moved"
tenant?: Tenant { id, name }

The root organizational unit that this zone belongs to (such as a tenant or organization).

id?: string

Identifier

maxLength32
name?: string

The name of the Tenant account.

tenant_unit?: TenantUnit { id }

The immediate parent organizational unit that this zone belongs to (such as under a tenant or sub-organization).

id?: string

Identifier

maxLength32
type?: Type

A full zone implies that DNS is hosted with Cloudflare. A partial zone is typically a partner-hosted zone or a CNAME setup.

One of the following:
"full"
"partial"
"secondary"
"internal"
vanity_name_servers?: Array<string>

An array of domains used for custom name servers. This is only available for Business and Enterprise plans.

verification_key?: string

Verification key for partial zone setup.

List Zones

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const zone of client.zones.list()) {
  console.log(zone.id);
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "account": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "name": "Example Account Name"
      },
      "activated_on": "2014-01-02T00:01:00.12345Z",
      "created_on": "2014-01-01T05:20:00.12345Z",
      "development_mode": 7200,
      "meta": {
        "cdn_only": true,
        "custom_certificate_quota": 1,
        "dns_only": true,
        "foundation_dns": true,
        "page_rule_quota": 100,
        "phishing_detected": false,
        "step": 2
      },
      "modified_on": "2014-01-01T05:20:00.12345Z",
      "name": "example.com",
      "name_servers": [
        "bob.ns.cloudflare.com",
        "lola.ns.cloudflare.com"
      ],
      "original_dnshost": "NameCheap",
      "original_name_servers": [
        "ns1.originaldnshost.com",
        "ns2.originaldnshost.com"
      ],
      "original_registrar": "GoDaddy",
      "owner": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "name": "Example Org",
        "type": "organization"
      },
      "plan": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "can_subscribe": false,
        "currency": "USD",
        "externally_managed": false,
        "frequency": "monthly",
        "is_subscribed": false,
        "legacy_discount": false,
        "legacy_id": "free",
        "name": "Example Org",
        "price": 10.99
      },
      "cname_suffix": "cdn.cloudflare.com",
      "paused": true,
      "permissions": [
        "#worker:read"
      ],
      "status": "active",
      "tenant": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "name": "Example Account Name"
      },
      "tenant_unit": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353"
      },
      "type": "full",
      "vanity_name_servers": [
        "ns1.example.com",
        "ns2.example.com"
      ],
      "verification_key": "284344499-1084221259"
    }
  ],
  "result_info": {
    "count": 1,
    "page": 1,
    "per_page": 20,
    "total_count": 2000,
    "total_pages": 100
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": [
    {
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "account": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "name": "Example Account Name"
      },
      "activated_on": "2014-01-02T00:01:00.12345Z",
      "created_on": "2014-01-01T05:20:00.12345Z",
      "development_mode": 7200,
      "meta": {
        "cdn_only": true,
        "custom_certificate_quota": 1,
        "dns_only": true,
        "foundation_dns": true,
        "page_rule_quota": 100,
        "phishing_detected": false,
        "step": 2
      },
      "modified_on": "2014-01-01T05:20:00.12345Z",
      "name": "example.com",
      "name_servers": [
        "bob.ns.cloudflare.com",
        "lola.ns.cloudflare.com"
      ],
      "original_dnshost": "NameCheap",
      "original_name_servers": [
        "ns1.originaldnshost.com",
        "ns2.originaldnshost.com"
      ],
      "original_registrar": "GoDaddy",
      "owner": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "name": "Example Org",
        "type": "organization"
      },
      "plan": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "can_subscribe": false,
        "currency": "USD",
        "externally_managed": false,
        "frequency": "monthly",
        "is_subscribed": false,
        "legacy_discount": false,
        "legacy_id": "free",
        "name": "Example Org",
        "price": 10.99
      },
      "cname_suffix": "cdn.cloudflare.com",
      "paused": true,
      "permissions": [
        "#worker:read"
      ],
      "status": "active",
      "tenant": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "name": "Example Account Name"
      },
      "tenant_unit": {
        "id": "023e105f4ecef8ad9ca31a8372d0c353"
      },
      "type": "full",
      "vanity_name_servers": [
        "ns1.example.com",
        "ns2.example.com"
      ],
      "verification_key": "284344499-1084221259"
    }
  ],
  "result_info": {
    "count": 1,
    "page": 1,
    "per_page": 20,
    "total_count": 2000,
    "total_pages": 100
  }
}