Skip to content

REST API

The Proxera REST API is available on the Admin port (8080) at /admin/api.

An interactive Swagger UI is served at http://localhost:8080/api.

The raw OpenAPI JSON spec is at /v3/api-docs.

Authentication

All API endpoints require authentication. Pass a named API key via the X-API-KEY header:

curl -H "X-API-KEY: your-api-key" http://localhost:8080/admin/api/agents

API keys can be generated in the Admin UI under API Keys.

Agents

Method Path Description
GET /admin/api/agents List all agents
POST /admin/api/agents Create a new agent slot
GET /admin/api/agents/{id} Get agent details
DELETE /admin/api/agents/{id} Delete an agent
POST /admin/api/agents/{id}/token Generate a new registration token (invalidates previous)

Routes

Method Path Description
GET /admin/api/routes List all routes
POST /admin/api/routes Create a route
GET /admin/api/routes/{id} Get route details
PUT /admin/api/routes/{id} Update a route
DELETE /admin/api/routes/{id} Delete a route
GET /admin/api/routes/{id}/log Get recent access log entries for a route

Topology

Method Path Description
GET /admin/api/topology Full topology snapshot (pods, agents, routes, edges)

API Keys

Method Path Description
GET /admin/api/api-keys List API keys
POST /admin/api/api-keys Generate a new API key
DELETE /admin/api/api-keys/{id} Revoke an API key

Users

Method Path Description
GET /admin/api/users List users
POST /admin/api/users Create a user
PUT /admin/api/users/{id} Update a user
DELETE /admin/api/users/{id} Delete a user

SSE Streams

Path Port Description
GET /admin/sse/topology 8080 Live topology events (AGENT_CONNECTED, AGENT_DISCONNECTED, REQUEST_IN_FLIGHT, ...)
GET /admin/sse/routes/{id}/log 8080 Live access log entries for a specific route

Example: Create an Agent and Generate a Token

# Create agent slot
AGENT=$(curl -s -X POST http://localhost:8080/admin/api/agents \
  -H "X-API-KEY: your-key" \
  -H "Content-Type: application/json" \
  -d '{"name": "home-lab"}')

AGENT_ID=$(echo $AGENT | jq -r '.id')

# Generate registration token
TOKEN=$(curl -s -X POST http://localhost:8080/admin/api/agents/$AGENT_ID/token \
  -H "X-API-KEY: your-key")

echo "Registration token: $(echo $TOKEN | jq -r '.token')"
# Copy this token to your Proxera Agent config — it is shown only once.