Reference API
CyberOrigen fournit une API REST complete pour l'integration avec vos outils et workflows existants.
URL de Base
https://backend.cyberorigen.com/api/v1Toutes les requetes API sont effectuees vers cette URL de base.
Documentation Interactive
Une fois authentifie, accedez a la documentation API interactive :
- Swagger UI :
/docs - ReDoc :
/redoc - Spec OpenAPI :
/openapi.json
Authentification
Toutes les requetes API necessitent une authentification via token JWT bearer.
Obtenir un Token
curl -X POST https://api.yourdomain.com/api/v1/auth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "[email protected]&password=yourpassword"Reponse :
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600
}Utiliser le Token
curl https://api.yourdomain.com/api/v1/scans \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"Limitation de Debit
Les limites de debit varient selon le niveau d'abonnement :
| Formule | Requetes/Heure | Requetes/Jour |
|---|---|---|
| Startup | 100 | 1 000 |
| Professional | 500 | 5 000 |
| Enterprise | Personnalise | Personnalise |
Lorsque les limites sont depassees, l'API retourne HTTP 429 (Too Many Requests).
Les en-tetes de limite de debit sont inclus dans les reponses :
X-RateLimit-Limit: <requetes_autorisees>
X-RateLimit-Remaining: <requetes_restantes>
X-RateLimit-Reset: <timestamp_unix>Besoin de Limites Plus Elevees ?
Contactez [email protected] pour des limites de debit personnalisees.
Endpoints Courants
Verification de Sante
GET /api/healthReponse :
{
"status": "healthy",
"version": "0.1.0",
"timestamp": "2025-12-21T12:00:00Z"
}Lister les Analyses
GET /api/v1/scansReponse :
{
"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
}Creer une Analyse
POST /api/v1/scans
Content-Type: application/json
{
"target": "example.com",
"scan_type": "full",
"frameworks": ["soc2", "pci-dss"]
}Obtenir le Statut des Controles
GET /api/v1/controlsReponse :
{
"items": [
{
"id": "ctrl_123",
"name": "Politique de Controle d'Acces",
"status": "implemented",
"frameworks": ["SOC 2", "ISO 27001"],
"evidence_count": 3
}
]
}Reponses d'Erreur
Toutes les erreurs suivent un format coherent :
{
"detail": "Message d'erreur ici",
"error_code": "VALIDATION_ERROR",
"field": "email"
}Codes de Statut HTTP
| Code | Signification |
|---|---|
| 200 | Succes |
| 201 | Cree |
| 400 | Requete Invalide |
| 401 | Non Autorise |
| 403 | Interdit |
| 404 | Non Trouve |
| 422 | Erreur de Validation |
| 429 | Trop de Requetes |
| 500 | Erreur Serveur |
Pagination
Les endpoints de liste supportent la pagination :
GET /api/v1/scans?page=2&per_page=50La reponse inclut les metadonnees de pagination :
{
"items": [...],
"total": 150,
"page": 2,
"per_page": 50,
"pages": 3
}Webhooks
Configurez des webhooks pour recevoir des notifications en temps reel :
POST /api/v1/webhooks
Content-Type: application/json
{
"url": "https://your-server.com/webhook",
"events": ["scan.completed", "vulnerability.found"],
"secret": "your-webhook-secret"
}SDKs
Des SDKs officiels sont prevus pour :
- Python
- TypeScript/JavaScript
- Go
Pour l'instant, utilisez l'API REST directement ou generez un client a partir de la spec OpenAPI.