Home Reference REST API reference Endpoint index Every route of the REST API with the permission it checks.
Every operation of kudurru API v1, generated from api/openapi.json. Paths include the
base path /api/v1. The permission is the RBAC check of the route (resource.verb and the scope it
is evaluated in), authenticated (any signed-in caller) or public (no credentials).
The API explorer shows the request and response schemas.
audit Method Path Summary Permission GET /api/v1/auditAudit events of this node (oldest first; order=desc for newest first) audit.read (cluster)GET /api/v1/audit/exportAudit events as JSON lines audit.export (cluster)
auth Method Path Summary Permission POST /api/v1/auth/loginLocal login (sets the session cookie) public POST /api/v1/auth/logoutClear the session cookie authenticated GET /api/v1/auth/meThe authenticated principal, roles, permissions and CSRF token authenticated GET /api/v1/auth/oidc/{idp}/callbackOIDC redirect target (302 to the app) public GET /api/v1/auth/oidc/{idp}/startStart an OIDC login (302 to the IdP) public POST /api/v1/auth/passwordChange the local user's own password (a cookie session gets a new cookie) authenticated GET /api/v1/auth/statusLogin options public GET /api/v1/auth/tokensList own API tokens authenticated POST /api/v1/auth/tokensCreate a personal API token (the secret is returned once) authenticated GET /api/v1/auth/tokens/{id}Get one API token (someone else's needs tokens.read) authenticated DELETE /api/v1/auth/tokens/{id}Revoke one API token (someone else's needs tokens.delete) authenticated
blocklists Method Path Summary Permission GET /api/v1/blocklistsList blocklists blocklists.read (cluster)POST /api/v1/blocklistsCreate a BlockList blocklists.write (cluster)GET /api/v1/blocklists/_searchWhich lists contain a domain blocklists.read (cluster)GET /api/v1/blocklists/{namespace}/{name}Get a BlockList blocklists.read (cluster)PUT /api/v1/blocklists/{namespace}/{name}Create or replace a BlockList blocklists.write (cluster)DELETE /api/v1/blocklists/{namespace}/{name}Delete a BlockList blocklists.delete (cluster)POST /api/v1/blocklists/{namespace}/{name}/refreshFetch a BlockList's sources now blocklists.refresh (cluster)GET /api/v1/blocklists/{namespace}/{name}/sources/{source}/entriesPage through the entries of a BlockList source blocklists.read (cluster)PATCH /api/v1/blocklists/{namespace}/{name}/sources/{source}/entriesSwitch entries of a BlockList source off and on, add and remove inline entries blocklists.write (cluster)POST /api/v1/blocklists:batchDeleteDelete several blocklists blocklists.delete (cluster)POST /api/v1/domains/{action}/{kind}Allow or deny domains through the UI lists blocklists.write (cluster)
catalogue Method Path Summary Permission GET /api/v1/catalogueThe blocked-services and safe-search catalogue in service policies.read (cluster)GET /api/v1/catalogue/categoriesCategories Policy.spec.blockedCategories can block policies.read (cluster)GET /api/v1/catalogue/iconsLogos embedded in this build public GET /api/v1/catalogue/icons/{file}One embedded logo (image/svg+xml) public GET /api/v1/catalogue/safesearchSearch engines Policy.spec.safeSearch rewrites policies.read (cluster)GET /api/v1/catalogue/servicesServices Policy.spec.blockedServices can block policies.read (cluster)
clientgroups Method Path Summary Permission GET /api/v1/clientgroupsList clientgroups clientgroups.read (cluster)POST /api/v1/clientgroupsCreate a ClientGroup clientgroups.write (cluster)GET /api/v1/clientgroups/{namespace}/{name}Get a ClientGroup clientgroups.read (cluster)PUT /api/v1/clientgroups/{namespace}/{name}Create or replace a ClientGroup clientgroups.write (cluster)DELETE /api/v1/clientgroups/{namespace}/{name}Delete a ClientGroup clientgroups.delete (cluster)POST /api/v1/clientgroups:batchDeleteDelete several clientgroups clientgroups.delete (cluster)
cluster Method Path Summary Permission GET /api/v1/clusterStore, leader and shape cluster.read (cluster)GET /api/v1/doctorThe checks of kudurru doctor as this node sees them settings.read (cluster)GET /api/v1/edgednsdist backends and VIP owners edge.read (cluster)GET /api/v1/info/messagesDiagnosis messages (objects, policies, lists, readiness) settings.read (cluster)GET /api/v1/nodesNodes of the cluster cluster.read (cluster)GET /api/v1/nodes/{name}/healthReadiness detail of one node cluster.read (cluster)
dnsrecordsets Method Path Summary Permission POST /api/v1/dnsrecordsets:batchDeleteDelete several dnsrecordsets records.delete (cluster or per object)
dnszones Method Path Summary Permission POST /api/v1/dnszones:batchDeleteDelete several dnszones zones.delete (cluster or per object)
domains Method Path Summary Permission GET /api/v1/allowlistList Allowlist entries blocklists.read (cluster)POST /api/v1/allowlistAdd Allowlist entries blocklists.write (cluster)GET /api/v1/allowlist/{id}Get a Allowlist entry blocklists.read (cluster)PATCH /api/v1/allowlist/{id}Change a Allowlist entry blocklists.write (cluster)DELETE /api/v1/allowlist/{id}Delete a Allowlist entry blocklists.write (cluster)POST /api/v1/allowlist:batchSwitch on, off or delete several Allowlist entries blocklists.write (cluster)GET /api/v1/denylistList Denylist entries blocklists.read (cluster)POST /api/v1/denylistAdd Denylist entries blocklists.write (cluster)GET /api/v1/denylist/{id}Get a Denylist entry blocklists.read (cluster)PATCH /api/v1/denylist/{id}Change a Denylist entry blocklists.write (cluster)DELETE /api/v1/denylist/{id}Delete a Denylist entry blocklists.write (cluster)POST /api/v1/denylist:batchSwitch on, off or delete several Denylist entries blocklists.write (cluster)GET /api/v1/domainsList Allowlist and Denylist entries together blocklists.read (cluster)
iam Method Path Summary Permission GET /api/v1/iam/identityprovidersList identityproviders (read-only; the write API is v0.2) identityproviders.read (cluster)GET /api/v1/iam/rolebindingsList rolebindings (read-only; the write API is v0.2) rolebindings.read (cluster)GET /api/v1/iam/serviceaccountsList serviceaccounts (read-only; the write API is v0.2) serviceaccounts.read (cluster)GET /api/v1/iam/usersList users (read-only; the write API is v0.2) users.read (cluster)
Method Path Summary Permission GET /api/v1/versionBuild information of this node public
objects Method Path Summary Permission POST /api/v1/applyApply objects (multi-document YAML or a JSON array) GET /api/v1/objects/{kind}List objects of a kind POST /api/v1/objects/{kind}Create an object (409 when it exists) GET /api/v1/objects/{kind}/{namespace}/{name}Get a namespaced object PUT /api/v1/objects/{kind}/{namespace}/{name}Create or replace a namespaced object DELETE /api/v1/objects/{kind}/{namespace}/{name}Delete a namespaced object GET /api/v1/objects/{kind}/{name}Get a cluster-scoped object (dnszones) PUT /api/v1/objects/{kind}/{name}Create or replace a cluster-scoped object DELETE /api/v1/objects/{kind}/{name}Delete a cluster-scoped object
policies Method Path Summary Permission GET /api/v1/policiesList policies policies.read (cluster)POST /api/v1/policiesCreate a Policy policies.write (cluster)GET /api/v1/policies/{namespace}/{name}Get a Policy policies.read (cluster)PUT /api/v1/policies/{namespace}/{name}Create or replace a Policy policies.write (cluster)DELETE /api/v1/policies/{namespace}/{name}Delete a Policy policies.delete (cluster)GET /api/v1/policies/{namespace}/{name}/stateA policy's current state policies.read (cluster)POST /api/v1/policies:batchDeleteDelete several policies policies.delete (cluster)
querylog Method Path Summary Permission GET /api/v1/queriesQuery log page (keyset cursor, newest first) querylog.read (cluster)GET /api/v1/queries/streamLive query tail (Server-Sent Events) querylog.read (cluster)GET /api/v1/queries/suggestionsFilter value suggestions querylog.read (cluster)POST /api/v1/queries/{id}/actionsAllow or deny the domain of a logged query blocklists.write (cluster)DELETE /api/v1/querylogDelete query-log rows querylog.purge (cluster)GET /api/v1/querylog/statusQuery-log size, retention and writer state querylog.read (cluster)
runtime Method Path Summary Permission POST /api/v1/cache/flushFlush the response cache (or one name) cache.flush (cluster)GET /api/v1/dns/blockingBlocking state of this node blocking.read (cluster)POST /api/v1/dns/blockingEnable blocking, or disable it for a while blocking.toggle (cluster)POST /api/v1/dns/queryRun one query through the pipeline in-process (built-in dig) stats.read (cluster)
settings Method Path Summary Permission GET /api/v1/blockpage/previewRender the block page (text/html) with the current blockPage settings settings.read (cluster)GET /api/v1/node/configThis node's host-local settings (redacted) settings.read (cluster)PATCH /api/v1/node/configChange this node's settings (hostOnly keys refused) node.config (cluster)GET /api/v1/settingsCluster-scope settings (redacted) settings.read (cluster)PATCH /api/v1/settingsChange cluster-scope settings (JSON merge patch) settings.write (cluster)GET /api/v1/settings/_schemaThe settings metadata table settings.read (cluster)
stats Method Path Summary Permission GET /api/v1/clientsClient inventory from the query log clients.read (cluster)GET /api/v1/stats/clients/timeseriesPer-client query volume over time stats.read (cluster)GET /api/v1/stats/recent_blockedMost recently blocked queries querylog.read (cluster)GET /api/v1/stats/summaryStat tiles and sidebar counters stats.read (cluster)GET /api/v1/stats/timeseriesQuery volume by status class over time stats.read (cluster)GET /api/v1/stats/topTop domains, clients, upstreams, lists or zones stats.read (cluster)GET /api/v1/stats/upstreamsTraffic and health per upstream stats.read (cluster)
unblockrequests Method Path Summary Permission GET /api/v1/unblockrequestsList the unblock requests users made on the block page, newest first unblockrequests.read (cluster)GET /api/v1/unblockrequests/{namespace}/{name}Get an unblock request unblockrequests.read (cluster)DELETE /api/v1/unblockrequests/{namespace}/{name}Delete an unblock request unblockrequests.delete (cluster)POST /api/v1/unblockrequests/{namespace}/{name}/approveApprove an unblock request: add the allow entry unblockrequests.decide (cluster)POST /api/v1/unblockrequests/{namespace}/{name}/denyDeny an unblock request (revokes an approval in force) unblockrequests.decide (cluster)
zones Method Path Summary Permission GET /api/v1/zonesList zones with serial, record count and readiness zones.read (cluster or per object)GET /api/v1/zones/{zone}Get one zone zones.read (zone)DELETE /api/v1/zones/{zone}Delete a zone with every record set that references it zones.delete (zone)GET /api/v1/zones/{zone}/exportExport the served zone as a BIND master file (text/dns) zones.read (zone)POST /api/v1/zones/{zone}/importImport a BIND master file (text/dns) records.write (zone)POST /api/v1/zones/{zone}/notifySend NOTIFY for the zone now zones.transfer (zone)GET /api/v1/zones/{zone}/recordsList the endpoints of a zone across record sets records.read (zone)POST /api/v1/zones/{zone}/recordsCreate or replace one endpoint in a record set records.write (zone)DELETE /api/v1/zones/{zone}/records/{name}/{type}Delete the endpoints of one name and type records.delete (zone)
Source: site/content/reference/api/endpoints.md