API Endpoints

Complete API endpoint reference.

Deployments

List Deployments

GET /api/v1/deployments

curl -H "Authorization: Bearer TOKEN" \
  https://app.kovanetwork.com/api/v1/deployments

Create Deployment

POST /api/v1/deployments

curl -X POST \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sdl": "version: 2.0\nservices:..."}' \
  https://app.kovanetwork.com/api/v1/deployments

Get Deployment

GET /api/v1/deployments/:id

Close Deployment

POST /api/v1/deployments/:id/close

Restart Deployment

POST /api/v1/deployments/:id/restart

Logs

Fetch Logs (HTTP)

GET /api/v1/deployments/:id/logs

ParameterTypeDescription
limitnumberMax logs to return (default: 100)
offsetnumberSkip first n logs (pagination)
servicestringFilter by service name
searchstringSearch log content
# Get last 100 logs
curl -H "Authorization: Bearer TOKEN" \
  https://app.kovanetwork.com/api/v1/deployments/ID/logs?limit=100

# Search logs
curl -H "Authorization: Bearer TOKEN" \
  https://app.kovanetwork.com/api/v1/deployments/ID/logs?search=error

Stream Logs (WebSocket)

Connect to WebSocket for real-time log streaming:

const ws = new WebSocket(
  'wss://app.kovanetwork.com/api/v1/deployments/logs/stream?deploymentId=YOUR_ID'
);

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);

  if (data.type === 'log') {
    console.log(`[${data.serviceName}] ${data.logLine}`);
  }
};

WebSocket Message Format

{
  "type": "log",
  "id": 4268,
  "deploymentId": "9d4a6656-02c8-4e16-a4c3-910efe92e7e2-1762873887351",
  "serviceName": "web",
  "timestamp": "2025-11-12T09:45:02.963133Z",
  "logLine": "GET / HTTP/1.1 200 90",
  "stream": "stdout"
}