List zones

Lists the Cloudflare zones the org's connected API token can see, paged and filtered by the query parameters Cloudflare itself accepts.

GET /v1/cloudflare/zones

Addresshttps://api.hanzo.ai/v1/cloudflare/zones
MethodGET
Operationget_cloudflare_zones
AuthAuthorization: Bearer $HANZO_API_KEY

Lists the Cloudflare zones the org's connected API token can see, paged and filtered by the query parameters Cloudflare itself accepts. Zones are token-scoped by Cloudflare, so no account is resolved. Any org member may read.

Zone and DNS-record MANAGEMENT is not here: it stays on the Hanzo DNS plane (/v1/dns). This only surfaces the Cloudflare zone objects the asset plane needs — a zone id is what addresses a Worker route or an analytics read.

Request

6 fields.

FieldInTypeRequiredDescription
pagequerystring—Page is the 1-based page of zones to return.
per_pagequerystring—PerPage is how many zones one page holds.
namequerystring—Name filters to the zone with this domain name.
statusquerystring—Status filters by zone status (active, pending, initializing, …).
orderquerystring—Order names the field to sort by, and Direction sorts asc or desc.
directionquerystring—

Response

StatusBodyMeaning
200ok
defaultproblem-detailsrefused

200 body — 1 field.

FieldInTypeAlwaysDescription
(body)bodyanyyes

Failure carries the platform error shape — see Errors.

Examples

hanzo cloudflare zones list
import { Configuration, CloudflareApi } from 'hanzoai';

const api = new CloudflareApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getCloudflareZones();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import CloudflareApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = CloudflareApi(client).get_cloudflare_zones()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.CloudflareAPI.GetCloudflareZones(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, cloudflare_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = cloudflare_api::get_cloudflare_zones(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.CloudflareApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new CloudflareApi(client).getCloudflareZones();
curl https://api.hanzo.ai/v1/cloudflare/zones \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches cloudflare through the cloudflare tool, which names its 29 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_cloudflare_d1_databases"
         }
       }
     }'

Cloudflare API · All Hanzo APIs · Interactive reference

Was this page useful?