-
Notifications
You must be signed in to change notification settings - Fork 1
API
Vyacheslav edited this page Mar 28, 2026
·
2 revisions
- UI:
http://127.0.0.1:<port>/api/docs - OpenAPI JSON:
http://127.0.0.1:<port>/api/swagger.json
Все защищенные эндпоинты требуют заголовок:
X-API-Key: <token>
Без токена доступны только служебные endpoints вроде GET /health.
Актуальный контракт:
/api/v1/*
Legacy-совместимость:
- часть эндпоинтов доступна и через
/api/*(status/start/stop/pause).
Рекомендуется использовать только /api/v1/*.
GET /healthGET /api/v1/statusPOST /api/v1/startPOST /api/v1/stopPOST /api/v1/pauseGET /api/v1/recordingsGET /api/v1/devicesGET /api/v1/windowsGET /api/v1/configPUT /api/v1/configGET /api/v1/schedulePOST /api/v1/schedulePUT /api/v1/schedule/{task_id}DELETE /api/v1/schedule/{task_id}POST /api/v1/schedule/{task_id}/toggleGET /api/v1/events/recent?limit=50GET /api/v1/events/statsGET /api/v1/observability/metricsGET /api/v1/observability/baseline
curl http://127.0.0.1:5010/healthcurl -H "X-API-Key: test1234" \
http://127.0.0.1:5010/api/v1/status{
"area": "full",
"audio": "mic",
"fps": 30,
"codec": "libx264",
"bitrate": "5M",
"output_path": "D:/Recordings/session_001.mp4",
"duration": 60
}Важные ограничения:
-
fps: от1до120. -
duration: либо не передавать, либо>= 1. - Для
area = "window"обязателенwindow_title. - Для
area = "rect"обязателенrect: [x1, y1, x2, y2], гдеx2 > x1,y2 > y1.
curl -X POST -H "X-API-Key: test1234" \
http://127.0.0.1:5010/api/v1/stop{
"name": "Ежедневная запись",
"trigger": "cron",
"cron_expression": "0 10 * * 1-5",
"params": {
"area": "full",
"audio": "none",
"fps": 30,
"codec": "libx264",
"bitrate": "2M"
}
}Для trigger = "cron" не передавайте пустые datetime/time.
{
"name": "Разовая запись",
"trigger": "once",
"datetime": "2026-03-29T10:30:00+03:00",
"params": {
"area": "full",
"audio": "mic",
"fps": 30
}
}Ошибка возвращается в едином формате:
{
"success": false,
"error": {
"code": "validation_error",
"message": "Ошибка валидации данных",
"details": []
},
"trace_id": "..."
}trace_id также дублируется в заголовке X-Request-ID.