Skip to content

Admin API

The Nantian Gateway control plane exposes an HTTP REST Admin API for runtime diagnostics, configuration inspection, and operational queries. All endpoints live under the control plane’s HTTP listener (default port 18081).

Auth LevelBehavior
noneNo authentication required. Used by health probes and Kubernetes liveness/readiness checks.
bearer-when-configuredIf an admin API token is set in the control plane configuration, the request must include an Authorization: Bearer <token> header. If no token is configured, the endpoint is open.
MethodPathAuthDescription
GET/liveznoneLiveness check. Returns 200 OK if the process is alive.
GET/readyznoneReadiness check. Returns 200 OK when the control plane has finished initial resource sync; 503 otherwise.
MethodPathAuthDescription
GET/v1/summarybearer-when-configuredCluster configuration overview: listener, route, backend, and node counts
GET/v1/dashboard/capabilitiesbearer-when-configuredFeature flags exposed to the dashboard UI
GET/v1/snapshot-syncbearer-when-configuredSnapshot synchronization status across all data plane nodes
GET/v1/snapshotbearer-when-configuredFull IR snapshot content currently pushed to data planes
GET/v1/listenersbearer-when-configuredList all listeners
GET/v1/listeners/{name}bearer-when-configuredDetail for a specific listener
GET/v1/routesbearer-when-configuredList all routes (HTTP, gRPC, TCP, UDP, TLS)
GET/v1/routes/{kind}/{namespace}/{name}bearer-when-configuredDetail for a specific route
GET/v1/backendsbearer-when-configuredList all backend clusters
GET/v1/backends/{namespace}/{name}bearer-when-configuredDetail for a specific backend cluster
GET/v1/nodesbearer-when-configuredList all connected data plane nodes
GET/v1/nodes/{nodeId}bearer-when-configuredDetail for a specific data plane node
GET/v1/infrastructurebearer-when-configuredInfrastructure status (deployment, service, pod info)
GET/v1/service-catalogbearer-when-configuredService catalog listing
GET/v1/namespacesbearer-when-configuredList known namespaces
GET/v1/resource-kindsbearer-when-configuredList available resource types
GET/v1/topologybearer-when-configuredTopology view of gateways, routes, and backends
GET/v1/dataplanesbearer-when-configuredList data plane instances
GET/v1/dataplanes/{nodeId}/summarybearer-when-configuredSummary for a specific data plane instance
MethodPathAuthDescription
GET/v1/resourcesbearer-when-configuredList all managed resources
POST/v1/resourcesbearer-when-configuredCreate or update a managed resource
GET/v1/resources/{kind}/{namespace}/{name}bearer-when-configuredGet a specific resource by kind, namespace, and name
PUT/v1/resources/{kind}/{namespace}/{name}bearer-when-configuredUpdate a specific resource
DELETE/v1/resources/{kind}/{namespace}/{name}bearer-when-configuredDelete a specific resource
MethodPathAuthDescription
GET/v1/chatbot/configbearer-when-configuredGet chatbot configuration
PUT/v1/chatbot/configbearer-when-configuredUpdate chatbot configuration
POST/v1/chatbot/chatbearer-when-configuredSend a chat message. Response is text/event-stream (SSE).
MethodPathAuthDescription
GET/v1/metrics/configbearer-when-configuredGet metrics backend configuration
PUT/v1/metrics/configbearer-when-configuredUpdate metrics backend configuration
POST/v1/metrics/querybearer-when-configuredExecute an instant PromQL query
POST/v1/metrics/query_rangebearer-when-configuredExecute a range PromQL query
MethodPathAuthDescription
GET/v1/ai/overviewbearer-when-configuredAI Gateway overview (models, providers, request volume)
GET/v1/ai/servicesbearer-when-configuredList configured AI backend services
GET/v1/ai/token-usagebearer-when-configuredToken usage statistics
GET/v1/ai/tracesbearer-when-configuredAI request traces
GET/v1/ai/costbearer-when-configuredCost analysis across AI providers
Terminal window
# Liveness
curl -s -o /dev/null -w "%{http_code}" http://controlplane:18081/livez
# → 200
# Readiness (may return 503 before initial sync completes)
curl -s http://controlplane:18081/readyz
# → 200 OK (or 503 if not yet ready)
Terminal window
# Cluster overview
curl http://controlplane:18081/v1/summary
# All routes across all gateways
curl http://controlplane:18081/v1/routes
# Specific HTTPRoute detail
curl http://controlplane:18081/v1/routes/httproute/default/my-app-route
# Backend cluster detail
curl http://controlplane:18081/v1/backends/default/backend-svc
# Data plane node status
curl http://controlplane:18081/v1/nodes
Terminal window
# See which nodes are current vs. drifted
curl http://controlplane:18081/v1/snapshot-sync
Terminal window
# List all managed resources
curl http://controlplane:18081/v1/resources
# Get a specific resource
curl http://controlplane:18081/v1/resources/httproute/default/my-app-route
# Create or update a resource
curl -X POST http://controlplane:18081/v1/resources \
-H "Content-Type: application/json" \
-d '{"apiVersion":"gateway.networking.k8s.io/v1","kind":"HTTPRoute",...}'
# Delete a resource
curl -X DELETE http://controlplane:18081/v1/resources/httproute/default/my-app-route
Terminal window
# Instant query
curl -X POST http://controlplane:18081/v1/metrics/query \
-H "Content-Type: application/json" \
-d '{"query":"up"}'
# Range query over last hour
curl -X POST http://controlplane:18081/v1/metrics/query_range \
-H "Content-Type: application/json" \
-d '{"query":"rate(http_requests_total[5m])","start":"2025-01-01T00:00:00Z","end":"2025-01-01T01:00:00Z","step":"30s"}'
Terminal window
# Overview
curl http://controlplane:18081/v1/ai/overview
# Token usage
curl http://controlplane:18081/v1/ai/token-usage

When the admin token is configured, include it in the Authorization header:

Terminal window
curl -H "Authorization: Bearer ${ADMIN_TOKEN}" http://controlplane:18081/v1/summary