RÉFÉRENCE API
API REST complète pour la plateforme de scan de sécurité et conformité WarDek.
AUTHENTIFICATION
Toutes les requêtes API nécessitent une authentification via un jeton Bearer dans l’en-tête Authorization header. Les clés API peuvent être générées depuis votre Tableau de bord dans Paramètres.
Authorization: Bearer ssk_live_your_api_key_heressk_live_ pour la production and ssk_test_ pour le bac à sable. Gardez vos clés secrètes et ne les committez jamais dans le contrôle de version.URL DE BASE
https://wardek.ioENDPOINTS
Lancer un scan
Démarrer un nouveau scan de sécurité sur une URL cible. Retourne les résultats du scan avec un score de sécurité.
Corps de la requête
interface ScanRequest {
url: string;
ci?: {
minScore?: number;
maxCritical?: number;
maxHigh?: number;
};
}Réponse
interface ScanResponse {
schemaVersion: string;
id: string;
url: string;
domain: string;
status: string;
score: number;
grade: string;
duration: number;
findingSummary: FindingSummary;
criticalCount: number;
highCount: number;
reportUrl: string;
ci?: CiGateResult;
results: Record<string, object>;
recommendations: string[];
createdAt: string;
}Exemples
curl -X POST https://wardek.io/api/v1/scan \
-H "Authorization: Bearer ssk_live_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'const res = await fetch('https://wardek.io/api/v1/scan', {
method: 'POST',
headers: {
'Authorization': 'Bearer ssk_live_...',
'Content-Type': 'application/json',
},
body: JSON.stringify({ url: 'https://example.com' }),
});
const scan = await res.json();Lister les scans
Récupérer une liste paginée de vos scans, triés du plus récent au plus ancien.
Réponse
interface ScanListResponse {
data: ScanSummary[];
pagination: {
total: number;
limit: number; // 1-100, default 10
offset: number; // default 0
hasMore: boolean;
};
}Exemples
curl "https://wardek.io/api/v1/scans?limit=10&offset=0" \
-H "Authorization: Bearer ssk_live_..."const res = await fetch(
'https://wardek.io/api/v1/scans?limit=10&offset=0',
{ headers: { 'Authorization': 'Bearer ssk_live_...' } }
);
const { data, pagination } = await res.json();Détails d’un scan
Récupérer les détails complets d’un scan spécifique, y compris tous les résultats de modules et les conclusions.
Réponse
// Same structure as POST /api/v1/scan response
// with additional fields: auditTrail, proof, remediationExemples
curl https://wardek.io/api/v1/scans/scan_abc123 \
-H "Authorization: Bearer ssk_live_..."const res = await fetch(
'https://wardek.io/api/v1/scans/scan_abc123',
{ headers: { 'Authorization': 'Bearer ssk_live_...' } }
);
const scan = await res.json();Exporter les résultats
Exporter les résultats d’un scan. Formats supportés : json, yaml, csv, sarif. Ajoutez ?format=<format>.
Réponse
// JSON format: Full scan object
// YAML format: YAML-serialized scan object
// Content-Type varies by formatExemples
# JSON export
curl https://wardek.io/api/scans/scan_abc123/export?format=json \
-H "Authorization: Bearer ssk_live_..."
# YAML export
curl https://wardek.io/api/scans/scan_abc123/export?format=yaml \
-H "Authorization: Bearer ssk_live_..."const res = await fetch(
'https://wardek.io/api/scans/scan_abc123/export?format=json',
{ headers: { 'Authorization': 'Bearer ssk_live_...' } }
);
const data = await res.json();LIMITES DE DÉBIT
Les limites de débit sont appliquées par clé API. Le dépassement des limites retourne un statut 429 status avec un en-tête Retry-After header.
CODES D’ERREUR
Format de réponse d’erreur
{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"retryAfter": 60
}
}