API-Referenz¶
Die vollständige API-Referenz wird aus dem FastAPI-OpenAPI-Schema generiert.
Live-Schema¶
Auf jeder Vesana-Instanz unter:
https://deine-domain.tld/openapi.json — Schema (JSON)
https://deine-domain.tld/docs — Swagger-UI
https://deine-domain.tld/redoc — Redoc
Swagger-UI ist interaktiv: Endpoints aufklappen, Test-Anfragen direkt mit eingeloggtem Token absetzen.
Kategorisierte Endpoints¶
Auth¶
POST /api/v1/auth/loginPOST /api/v1/auth/2fa/verifyPOST /api/v1/auth/refreshPOST /api/v1/auth/logoutGET /api/v1/auth/mePUT /api/v1/auth/preferencesPOST /api/v1/auth/api-keysGET /api/v1/auth/api-keysDELETE /api/v1/auth/api-keys/{id}
Hosts und Services¶
GET /api/v1/hosts/POST /api/v1/hosts/GET /api/v1/hosts/{id}PATCH /api/v1/hosts/{id}DELETE /api/v1/hosts/{id}POST /api/v1/host-services/PATCH /api/v1/host-services/{id}DELETE /api/v1/host-services/{id}POST /api/v1/host-services/{id}/ackDELETE /api/v1/host-services/{id}/ack
Profile¶
GET /api/v1/profiles/POST /api/v1/profiles/GET /api/v1/profiles/{id}PATCH /api/v1/profiles/{id}DELETE /api/v1/profiles/{id}GET /api/v1/profiles/{id}/usagePOST /api/v1/profiles/{id}/cloneGET /api/v1/profiles/{id}/exportPOST /api/v1/profiles/importPOST /api/v1/profiles/{id}/applyGET /api/v1/profiles/{id}/checksPOST /api/v1/profiles/{id}/checks/{check_id}/reset
Discovery + SNMP¶
POST /api/v1/discovery/network-scanGET /api/v1/discovery/scans/{id}GET /api/v1/discovery/resultsPOST /api/v1/discovery/results/{id}/addPOST /api/v1/discovery/results/bulk-addPOST /api/v1/snmp-discovery/walksGET /api/v1/snmp-discovery/walks/{id}POST /api/v1/snmp-discovery/walks/{id}/apply
Alert-Rules + Channels¶
GET /api/v1/alert-rules/POST /api/v1/alert-rules/POST /api/v1/alert-rules/{id}/testGET /api/v1/notification-channels/POST /api/v1/notification-channels/POST /api/v1/notification-channels/{id}/test
Downtimes + ACK¶
GET /api/v1/downtimes/POST /api/v1/downtimes/
Logs¶
POST /api/v1/logs/ingestGET /api/v1/logs/searchGET /api/v1/logs/stream— SSEGET /api/v1/logs/sourcesGET /api/v1/logs/alert-rules
Dashboards + Reports¶
GET /api/v1/dashboards/POST /api/v1/dashboards/GET /api/v1/reports/slaPOST /api/v1/reports/generate
Wiki + AI¶
GET /api/v1/wiki/articlesPOST /api/v1/wiki/articlesGET /api/v1/wiki/search?q=...POST /api/v1/ai/chatPOST /api/v1/ai/chat/stream— SSEPOST /api/v1/ai/analyze/{service_id}GET /api/v1/ai/statusPUT /api/v1/ai/configGET /api/v1/ai/modelsPOST /api/v1/ai/models/pullPOST /api/v1/ai/models/deletePOST /api/v1/ai/test-connection
Admin¶
POST /api/v1/admin/exportPOST /api/v1/admin/importGET /api/v1/admin/health/snapshotGET /api/v1/admin/license/status
Audit + Trash¶
GET /api/v1/audit-log/GET /api/v1/audit-log/exportGET /api/v1/trash/summaryPOST /api/v1/trash/{kind}/{id}/restoreDELETE /api/v1/trash/{kind}/{id}/purge
Push + Mobile¶
POST /api/v1/push-tokens/registerPOST /api/v1/push-tokens/testGET /api/v1/push-tokens/devices
Receiver (Agent / Collector)¶
POST /api/v1/receiver/check-resultPOST /api/v1/agent/heartbeatGET /api/v1/agent/configGET /api/v1/config/collector/{collector_id}
Antwort-Codes¶
| Code | Bedeutung |
|---|---|
| 200 / 201 / 204 | Erfolg |
| 400 | Validierungsfehler im Request-Body |
| 401 | Nicht authentifiziert oder Token abgelaufen |
| 403 | Authentifiziert, aber keine Permission |
| 404 | Resource nicht gefunden / nicht in deinem Tenant-Scope |
| 409 | Konflikt (z. B. Doppelter Hostname) |
| 422 | Validierung gescheitert (Pydantic-Detail im Body) |
| 429 | Rate-Limit |
| 500 | Server-Fehler (sollte nicht passieren — Issue öffnen) |
| 503 | Service Unavailable (z. B. Lizenz fehlt für Endpoint) |