Base URL
Prefer an AI agent? You can connect Claude or any MCP client to your account using the same API token — see the MCP server.
Authentication
All endpoints under/api/v1 require a Sanctum Bearer token. The one exception, GET /ping, is unauthenticated and lives outside the /api/v1 prefix at /api/ping.
Scopes
A token can have any combination of scopes. Requesting an endpoint without the required scope returns a
403 with "Scope 'zones:read' required.".
Write scopes follow the token owner’s role. A token acts in the organisation it was created for, and its
:write scopes only work while its owner’s role there allows changes (owner, admin or editor). If the owner becomes a viewer, the token can still read but every write returns 403; if they are removed from the organisation, their tokens for it are revoked.Rate Limiting
Starter 60, Pro 300, Agency 1,200 requests per minute, set by your plan. The bucket is keyed by your organisation, so all tokens belonging to the same org share one limit, and the MCP server draws from the same bucket. Every response carriesX-RateLimit-Limit and X-RateLimit-Remaining; a 429 carries Retry-After.
Separately, 60 failed authentications per minute from one IP address return 429 for the rest of that minute. Successful requests never count toward it.
IP Allowlist
Tokens can optionally be restricted to specific IP addresses. Requests from non-whitelisted IPs return403 with {"ok": false, "message": "This token is restricted to specific IP addresses.", "code": 403} — note this specific error uses the key message, not error.
Configure the allowlist in Settings → API Tokens → Edit.
OpenAPI Spec
An OpenAPI 3.0 spec is available atGET /api/docs.json and the interactive UI at GET /api/docs on your PanelDNS instance.