API-Referenz
CyberOrigen bietet eine umfassende REST-API zur Integration mit Ihren bestehenden Tools und Workflows.
Basis-URL
https://backend.cyberorigen.com/api/v1Alle API-Anfragen werden an diese Basis-URL gesendet.
Interaktive Dokumentation
Nach der Authentifizierung greifen Sie auf die interaktive API-Dokumentation zu unter:
- Swagger UI:
/docs - ReDoc:
/redoc - OpenAPI Spec:
/openapi.json
Authentifizierung
Alle API-Anfragen erfordern Authentifizierung via JWT Bearer Token.
Token erhalten
curl -X POST https://api.yourdomain.com/api/v1/auth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "[email protected]&password=yourpassword"Antwort:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600
}Token verwenden
curl https://api.yourdomain.com/api/v1/scans \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Ratenbegrenzung
Ratenlimits variieren nach Abonnementstufe:
| Plan | Anfragen/Stunde | Anfragen/Tag |
|---|---|---|
| Startup | 100 | 1.000 |
| Professional | 500 | 5.000 |
| Enterprise | Individuell | Individuell |
Bei Ueberschreitung der Limits gibt die API HTTP 429 (Too Many Requests) zurueck.
Ratenlimit-Header sind in Antworten enthalten:
X-RateLimit-Limit: <erlaubte_anfragen>
X-RateLimit-Remaining: <verbleibende_anfragen>
X-RateLimit-Reset: <unix_timestamp>Hoehere Limits benoetigt?
Kontaktieren Sie [email protected] fuer individuelle Ratenlimits.
Haeufige Endpunkte
Health Check
GET /api/healthAntwort:
{
"status": "healthy",
"version": "0.1.0",
"timestamp": "2025-12-21T12:00:00Z"
}Scans auflisten
GET /api/v1/scansAntwort:
{
"items": [
{
"id": "scan_abc123",
"target": "example.com",
"status": "completed",
"created_at": "2025-12-21T10:00:00Z",
"vulnerabilities_found": 5
}
],
"total": 1,
"page": 1,
"per_page": 20
}Scan erstellen
POST /api/v1/scans
Content-Type: application/json
{
"target": "example.com",
"scan_type": "full",
"frameworks": ["soc2", "pci-dss"]
}Kontrollstatus abrufen
GET /api/v1/controlsAntwort:
{
"items": [
{
"id": "ctrl_123",
"name": "Zugangskontrollrichtlinie",
"status": "implemented",
"frameworks": ["SOC 2", "ISO 27001"],
"evidence_count": 3
}
]
}Fehlerantworten
Alle Fehler folgen einem einheitlichen Format:
{
"detail": "Fehlermeldung hier",
"error_code": "VALIDATION_ERROR",
"field": "email"
}HTTP-Statuscodes
| Code | Bedeutung |
|---|---|
| 200 | Erfolg |
| 201 | Erstellt |
| 400 | Ungueltige Anfrage |
| 401 | Nicht autorisiert |
| 403 | Verboten |
| 404 | Nicht gefunden |
| 422 | Validierungsfehler |
| 429 | Zu viele Anfragen |
| 500 | Serverfehler |
Paginierung
Listenendpunkte unterstuetzen Paginierung:
GET /api/v1/scans?page=2&per_page=50Antwort enthaelt Paginierungs-Metadaten:
{
"items": [...],
"total": 150,
"page": 2,
"per_page": 50,
"pages": 3
}Webhooks
Konfigurieren Sie Webhooks fuer Echtzeit-Benachrichtigungen:
POST /api/v1/webhooks
Content-Type: application/json
{
"url": "https://your-server.com/webhook",
"events": ["scan.completed", "vulnerability.found"],
"secret": "your-webhook-secret"
}SDKs
Offizielle SDKs sind geplant fuer:
- Python
- TypeScript/JavaScript
- Go
Nutzen Sie vorerst die REST-API direkt oder generieren Sie einen Client aus der OpenAPI-Spezifikation.