Documentation Index
Fetch the complete documentation index at: https://radarhq.io/docs/llms.txt
Use this file to discover all available pages before exploring further.
Everything Radar does in the UI is available over HTTP / SSE / WebSocket. The endpoints below are served by the OSS binary on --port (default 9280). Through Cloud, the same endpoints are reachable at https://api.radarhq.io/c/<cluster_id>/api/... with a PAT for auth.
This is a high-level surface tour, not a per-field reference. Run Radar with --debug-events for verbose request logging while exploring.
Conventions
- Authentication: see Authentication. For Cloud, send
Authorization: Bearer rhp_....
- Content type: JSON unless noted. SSE endpoints emit
text/event-stream.
- All responses include
Cache-Control: no-store.
- Error shape:
{ "error": "<message>", "code": "<machine_readable>" }.
GET /api/health
GET /api/version-check # checks releases.skyhook.io for a newer version
GET /api/diagnostics
GET /api/auth/me # current user (when auth is enabled)
GET /api/cluster-info
GET /api/capabilities # which features are available given current RBAC + flags
Config & settings
GET /api/config
PUT /api/config
GET /api/settings
PUT /api/settings
GET /api/settings/audit
PUT /api/settings/audit
Dashboard
GET /api/dashboard
GET /api/dashboard/crds
GET /api/dashboard/helm
GET /api/resource-counts
Resources & topology
GET /api/resources/{kind}
GET /api/resources/{kind}/{namespace}/{name}
PUT /api/resources/{kind}/{namespace}/{name}
DELETE /api/resources/{kind}/{namespace}/{name}
POST /api/resources/apply
GET /api/topology
GET /api/namespaces
GET /api/api-resources
Timeline & events
GET /api/events
GET /api/events/stream # SSE
GET /api/changes
GET /api/changes/{kind}/{namespace}/{name}/children
Logs
GET /api/pods/{namespace}/{name}/logs/stream # SSE
GET /api/workloads/{kind}/{namespace}/{name}/logs/stream # SSE
Exec, debug, terminal, port-forward
GET /api/pods/{namespace}/{name}/exec # WebSocket
POST /api/pods/{namespace}/{name}/debug
GET /api/local-terminal # WebSocket
GET /api/pods/{namespace}/{name}/files
GET /api/pods/{namespace}/{name}/files/download
GET /api/portforwards
POST /api/portforwards
DELETE /api/portforwards/{id}
GET /api/portforwards/available/{type}/{namespace}/{name}
Workload & node operations
POST /api/workloads/{kind}/{namespace}/{name}/restart
POST /api/workloads/{kind}/{namespace}/{name}/scale
POST /api/workloads/{kind}/{namespace}/{name}/rollback
GET /api/workloads/{kind}/{namespace}/{name}/revisions
GET /api/workloads/{kind}/{namespace}/{name}/pods
POST /api/nodes/{name}/cordon
POST /api/nodes/{name}/uncordon
POST /api/nodes/{name}/drain
POST /api/nodes/{name}/debug
DELETE /api/nodes/{name}/debug
Helm
GET /api/dashboard/helm
GET /api/helm/releases
POST /api/helm/releases
POST /api/helm/releases/install-stream # SSE
GET /api/helm/releases/{namespace}/{name}
GET /api/helm/releases/{namespace}/{name}/manifest
GET /api/helm/releases/{namespace}/{name}/values
GET /api/helm/releases/{namespace}/{name}/diff
GET /api/helm/releases/{namespace}/{name}/upgrade-info
GET /api/helm/upgrade-check # batched, all releases
POST /api/helm/releases/{namespace}/{name}/rollback
POST /api/helm/releases/{namespace}/{name}/rollback-stream # SSE
POST /api/helm/releases/{namespace}/{name}/upgrade
POST /api/helm/releases/{namespace}/{name}/upgrade-stream # SSE
POST /api/helm/releases/{namespace}/{name}/values/preview
PUT /api/helm/releases/{namespace}/{name}/values
DELETE /api/helm/releases/{namespace}/{name}
GET /api/helm/repositories
POST /api/helm/repositories/{name}/update
GET /api/helm/charts
GET /api/helm/charts/{repo}/{chart}
GET /api/helm/charts/{repo}/{chart}/{version}
GET /api/helm/artifacthub/search
GET /api/helm/artifacthub/charts/{repo}/{chart}
GET /api/helm/artifacthub/charts/{repo}/{chart}/{version}
CronJobs
POST /api/cronjobs/{namespace}/{name}/trigger
POST /api/cronjobs/{namespace}/{name}/suspend
POST /api/cronjobs/{namespace}/{name}/resume
GitOps - Argo CD
POST /api/argo/applications/{namespace}/{name}/sync
POST /api/argo/applications/{namespace}/{name}/refresh
POST /api/argo/applications/{namespace}/{name}/terminate
POST /api/argo/applications/{namespace}/{name}/suspend
POST /api/argo/applications/{namespace}/{name}/resume
GitOps - Flux CD
POST /api/flux/{kind}/{namespace}/{name}/reconcile
POST /api/flux/{kind}/{namespace}/{name}/sync-with-source
POST /api/flux/{kind}/{namespace}/{name}/suspend
POST /api/flux/{kind}/{namespace}/{name}/resume
Audit (cluster-level best-practices, not Cloud audit log)
GET /api/audit
GET /api/audit/resource/{kind}/{namespace}/{name}
Traffic & networking
GET /api/traffic/sources
GET /api/traffic/flows
GET /api/traffic/flows/stream # SSE
GET /api/traffic/source
POST /api/traffic/source
POST /api/traffic/connect
GET /api/traffic/connection
GET /api/network-policies/evaluate
OpenCost
GET /api/opencost/summary
GET /api/opencost/workloads
GET /api/opencost/trend
GET /api/opencost/nodes
Prometheus
GET /api/prometheus/status
POST /api/prometheus/connect
GET /api/prometheus/cluster
GET /api/prometheus/namespace/{namespace}
GET /api/prometheus/resources/{kind}/{namespace}/{name}
GET /api/prometheus/resources/{kind}/{name} # cluster-scoped resources
GET /api/prometheus/query # raw PromQL pass-through
Image filesystem
GET /api/images/metadata # OCI manifest + config
GET /api/images/inspect # filesystem tree
GET /api/images/file # single file content
Packages
GET /api/packages # CNCF packages discovered (powers Fleet > Packages)
Sessions
GET /api/sessions # active exec / port-forward / log streams
Cluster API (multi-context, kubeconfig discovery)
GET /api/contexts
POST /api/contexts/{name} # switch
GET /api/capi/clusters/{ns}/{name}/kubeconfig
POST /api/capi/clusters/{ns}/{name}/connect # promote a CAPI cluster
GET /api/connection
POST /api/connection/retry
Self-update
POST /api/agent/self-upgrade # in-cluster Radar pulls a newer image
GET /api/github/starred
POST /api/github/star
POST /api/github/dismiss
Desktop app
These are no-ops outside the desktop binary. SPA uses them to open files, save artifacts, and trigger app self-update.
POST /api/desktop/open-url
POST /api/desktop/open-file
POST /api/desktop/open-folder
POST /api/desktop/save-file
POST /api/desktop/update
GET /api/desktop/update/status
POST /api/desktop/update/apply
Certificates
GET /api/secrets/certificate-expiry
Metrics (kube-state)
GET /api/metrics/pods/{namespace}/{name}
GET /api/metrics/pods/{namespace}/{name}/history
GET /api/metrics/nodes/{name}
GET /api/metrics/nodes/{name}/history
GET /api/metrics/top/pods
GET /api/metrics/top/nodes
GET /api/ai/resources/{kind}
GET /api/ai/resources/{kind}/{namespace}/{name}
GET /mcp # MCP transport endpoint
Auth (when enabled)
GET /auth/login
GET /auth/callback
GET /auth/logout
POST /auth/backchannel-logout
Cloud control plane
These live on api.radarhq.io, not on the in-cluster Radar. Auth is the WorkOS session cookie or a PAT. All endpoints are owner / member / viewer gated as documented per page.
# Orgs & members
GET /api/orgs/{org_id}
PATCH /api/orgs/{org_id}
GET /api/orgs/{org_id}/members
POST /api/orgs/{org_id}/invitations
GET /api/orgs/{org_id}/audit
# Clusters
GET /api/clusters
POST /api/clusters
PATCH /api/clusters/{id}
DELETE /api/clusters/{id}
POST /api/clusters/{id}/rotate-token
# Cross-cluster fleet aggregates (rate-limited 30/min/user)
GET /api/fleet/problems
GET /api/fleet/certs
GET /api/fleet/audit
GET /api/fleet/packages
GET /api/fleet/search
# Per-cluster tunnel - any in-cluster Radar route is reachable via /c/<id>/<path>
GET /c/{cluster_id}/{path...} # browser cookie or PAT auth
GET /c/{cluster_id}/mcp # per-cluster MCP transport
GET /mcp # org-wide MCP aggregator
# Billing
GET /api/orgs/{org_id}/billing
POST /api/orgs/{org_id}/billing/checkout
POST /api/orgs/{org_id}/billing/portal
POST /api/billing/webhook # Stripe → Hub
# PATs
GET /api/pats
POST /api/pats
DELETE /api/pats/{id}
# Account
GET /api/account
GET /api/preferences
PATCH /api/preferences
Debug (OSS only)
GET /debug/pprof/*
GET /api/debug/events
GET /api/debug/informers
GET /api/debug/events/diagnose
These are disabled under cloud-mode (the in-cluster Radar strips them so they never traverse the tunnel).
See also