API Endpoints
Complete API endpoint reference.
Deployments
List Deployments
GET /api/v1/deployments
curl -H "Authorization: Bearer TOKEN" \
https://test.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://test.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
| Parameter | Type | Description |
|-----------|------|-------------|
| limit | number | Max logs to return (default: 100) |
| offset | number | Skip first n logs (pagination) |
| service | string | Filter by service name |
| search | string | Search log content |
# Get last 100 logs
curl -H "Authorization: Bearer TOKEN" \
https://test.kovanetwork.com/api/v1/deployments/ID/logs?limit=100
# Search logs
curl -H "Authorization: Bearer TOKEN" \
https://test.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://test.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"
}