Lists the Cloudflare zones the org's connected API token can see, paged and…
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
| Address | https://api.hanzo.ai/v1/cloudflare/zones |
| Method | GET |
| Operation | get_cloudflare_zones |
| Auth | Authorization: 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.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
page | query | string | — | Page is the 1-based page of zones to return. |
per_page | query | string | — | PerPage is how many zones one page holds. |
name | query | string | — | Name filters to the zone with this domain name. |
status | query | string | — | Status filters by zone status (active, pending, initializing, …). |
order | query | string | — | Order names the field to sort by, and Direction sorts asc or desc. |
direction | query | string | — |
Response
| Status | Body | Meaning |
|---|---|---|
200 | ok |
200 body — 1 field.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
(body) | body | any | yes |
Failure carries the platform error shape — see Errors.
Examples
hanzo cloudflare zones listimport { 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 := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.CloudflareAPI.GetCloudflareZones(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::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.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + 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"The door reaches cloudflare through the cloudflare tool, which names its 33 operations with its own verbs — this one among them, under a name only the door 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"
}
}
}'How is this guide?