curl "https://your-paneldns-domain.com/api/v1/zones?sub_client_id=201" \
-H "Authorization: Bearer YOUR_TOKEN"
{
"ok": true,
"data": [
{
"id": 501,
"name": "widgets.co",
"remote_id": "abcd1234ef567890",
"status": "active",
"provider_id": 3,
"sub_client_id": 201,
"notes": null,
"tags": [],
"last_synced_at": "2026-06-04T12:00:00.000000Z",
"created_at": "2026-03-01T09:00:00.000000Z",
"updated_at": "2026-06-04T12:00:00.000000Z"
}
],
"meta": { "page": 1, "per_page": 50, "total": 1 }
}
Zones
List Zones
Returns all DNS zones in your org. Requires zones:read scope.
GET
/
api
/
v1
/
zones
curl "https://your-paneldns-domain.com/api/v1/zones?sub_client_id=201" \
-H "Authorization: Bearer YOUR_TOKEN"
{
"ok": true,
"data": [
{
"id": 501,
"name": "widgets.co",
"remote_id": "abcd1234ef567890",
"status": "active",
"provider_id": 3,
"sub_client_id": 201,
"notes": null,
"tags": [],
"last_synced_at": "2026-06-04T12:00:00.000000Z",
"created_at": "2026-03-01T09:00:00.000000Z",
"updated_at": "2026-06-04T12:00:00.000000Z"
}
],
"meta": { "page": 1, "per_page": 50, "total": 1 }
}
string
Filter by zone name (partial match). Ignored if
name is also present.string
Filter by exact zone name (case-insensitive). Takes priority over
search when both are present — intended for exact lookups such as ACME DNS-01 hooks.string
Filter by sub-client. Pass a numeric ID to get that client’s zones, or
null (or 0) to get zones with no sub-client assigned.integer
default:"1"
Page number. Results are paginated at 50 zones per page.
curl "https://your-paneldns-domain.com/api/v1/zones?sub_client_id=201" \
-H "Authorization: Bearer YOUR_TOKEN"
{
"ok": true,
"data": [
{
"id": 501,
"name": "widgets.co",
"remote_id": "abcd1234ef567890",
"status": "active",
"provider_id": 3,
"sub_client_id": 201,
"notes": null,
"tags": [],
"last_synced_at": "2026-06-04T12:00:00.000000Z",
"created_at": "2026-03-01T09:00:00.000000Z",
"updated_at": "2026-06-04T12:00:00.000000Z"
}
],
"meta": { "page": 1, "per_page": 50, "total": 1 }
}