/
GO
gotempsh
/
Temps
Search skmtc…
⌘K
Changes
Docs
Sign in
Docs
History
Schema
Filter operations
AdminGate
2
Agents
56
AI Applications
29
AI Chat
43
AI Gateway
14
AI Gateway Admin
12
AI Gateway Pricing
1
AI Gateway Usage
7
AI Provider Status
3
Alarms
12
Alerts
6
Analytics
43
Analytics Ingest Keys
5
API Keys
9
Audit Logs
2
Authentication
29
Autofixer
7
Backups
36
Blob
6
Blob Management
4
Cloud
8
Containers
8
Crons
3
Custom Domains
8
Dashboards
5
Deployment Tokens
6
Deployments
25
DNS
1
DNS Providers
14
DNS Records
4
Domains
19
Email Domains
12
Email Providers
9
Email Tracking
7
Email Validation
1
Emails
5
Environments
2
error-alert-rules
5
error-tracking
10
Events
13
External Images
7
External Services
49
External Services - Query
11
Feature Flags
9
Files
1
Funnels
7
GenAI
2
geo
2
Git Provider Connections
3
Git Providers
35
HTTP Checks
12
Imports
5
Insights
1
Internal DNS
2
IP Access Control
6
KV Management
4
KV Store
7
Load Balancer
5
Logs
11
Metrics
17
Nodes
27
get
/cluster/dns/status
Cluster-wide DNS resolver health (ADR-024): whether cluster DNS is enabled, the total record count, and per-node resolver status as last reported by each node's heartbeat. Lets an operator answer "is cluster DNS actually healthy right now" without SSHing into a node to read logs.
get
/internal/nodes
List all registered nodes (admin — session auth via RequireAuth)
post
/internal/nodes/register
Register a new worker node or reconnect an existing one
get
/internal/nodes/{node_id}
Get a specific node by ID (admin — session auth via RequireAuth)
delete
/internal/nodes/{node_id}
Remove a node from the cluster entirely. The node must be drained first so its current containers have been rescheduled. Containers no deployment needs that may still exist on the node (a failed deployment's, ones retired while it was offline, or ones a redeploy replaced while it was unreachable) are removed first; if any cannot be, the removal is refused unless `force=true`, which records them as orphaned.
get
/internal/nodes/{node_id}/containers
List all containers running on a specific node
get
/internal/nodes/{node_id}/drain
Get the drain status for a node, including migration progress.
post
/internal/nodes/{node_id}/drain
Drain a node: mark it as "draining" so no new replicas are scheduled on it, and trigger redeployment of all affected environments so their containers are rescheduled to healthy nodes.
delete
/internal/nodes/{node_id}/drain
Undrain (reactivate) a node so it can accept new deployments again. Only works for nodes in "draining" or "drained" status.
post
/internal/nodes/{node_id}/heartbeat
Receive a heartbeat from a worker node
get
/internal/nodes/{node_id}/network/peers
`GET /internal/nodes/{node_id}/network/peers`
put
/internal/nodes/{node_id}/network/wireguard
`PUT /internal/nodes/{node_id}/network/wireguard`
put
/internal/nodes/{node_id}/network/wireguard/handshakes
`PUT /internal/nodes/{node_id}/network/wireguard/handshakes`
patch
/internal/nodes/{node_id}/public-ingress
get
/internal/nodes/{node_id}/s3-credentials/{s3_source_id}
Get decrypted S3 credentials for a backup/restore operation.
get
/nodes/capability
Report whether this install can schedule workloads.
get
/nodes/pairings
Recent node pairings, newest first.
post
/nodes/pairings
Pair a node the control plane can reach: returns the command to run on it. The control plane then dials the node until it answers or the pairing expires (30 minutes).
delete
/nodes/pairings/{pairing_id}
Cancel a pending pairing: the control plane stops dialing the node, the code stops working and its mesh address is released.
get
/nodes/ssh/enrollments
Servers added over SSH, newest first, a page at a time. Items leave out the log; `GET /nodes/ssh/enrollments/{enrollment_id}` has it.
post
/nodes/ssh/enrollments
Add a server over SSH: log in with the given credentials, install `temps` if needed, pair the server and start its agent. Runs in the background; follow it with `GET /nodes/ssh/enrollments/{enrollment_id}`.
get
/nodes/ssh/enrollments/{enrollment_id}
One server being added over SSH, with its progress and log.
post
/nodes/ssh/host-key
Read a server's SSH host key, without logging in, so the operator can confirm it before adding the server.
get
/nodes/wireguard
Mesh state, per-node connection and join onboarding for the Worker Nodes page.
post
/nodes/wireguard
Turn on the cluster's WireGuard mesh (idempotent). The running control plane brings its end up within a minute and nodes follow; it cannot be turned off again from the API.
put
/nodes/wireguard/hub
Make a member the mesh hub, or remove the hub (ADR 048 D4). The hub relays traffic between members that cannot reach each other, so it sees that traffic: pick one of your own machines.
get
/nodes/{node_id}/docker-disk-usage
Docker disk usage (`docker system df`) for the control-plane host.
Notification Preferences
4
Notification Providers
15
Notification Routes
7
Observability
2
Operations
1
OTel
15
OTel Facets
4
OTel Ingest
6
Performance
6
Platform
6
Postgres Upgrades
7
Presets
2
Preview Gateway
6
Projects
46
Proxy Logs
14
Public Repositories
6
Repositories
6
Restore
6
Revenue
16
Sandboxes
39
Secrets
7
sentry-compat
6
sentry-ingestor
3
Settings
16
Snapshots
5
source-maps
8
Static Bundles
4
Status Page
32
Teams
13
Telemetry
2
Telemetry Logs
1
Telemetry Metrics
4
Templates
3
Traces
8
Traefik Discovery
6
Traffic Delivery
11
Users
13
Visitor Activity
5
Vulnerability Scans
8
Webhook Deliveries
3
Webhooks
6
Workflows
1
get
/projects/{project_id}/dsns
List all DSNs for a project
post
/projects/{project_id}/dsns
Create a new DSN for a project
post
/projects/{project_id}/dsns/get-or-create
Get or create DSN for a project/environment/deployment combination
post
/projects/{project_id}/dsns/{dsn_id}/regenerate
Regenerate DSN keys (rotate keys)
post
/projects/{project_id}/dsns/{dsn_id}/revoke
Revoke (deactivate) a DSN
Nodes
Copy Markdown
Copied
Copy failed
Changes to PATCH /internal/nodes/:node_id/public-ingress
patch
/internal/nodes/{node_id}/public-ingress
Oct 5, 2026
4b228ebed583
Revision changes
info
endpoint added
Oct 5, 2026
1dc3e6788214
Revision changes
breaking
api path removed without deprecation