« Surveiller, c’est préserver. »
— Documentation · API REST v1
Intégrez la conformité dans vos applications. REST, JSON, Bearer auth.
— I. Getting Started
https://vigil-compliance.com/api/v1JSONBearer token— Clés API
Le préfixe indique le type de clé : vgl_cab_ (cabinet), vgl_cli_ (client), vgl_ai_ (agent IA), vgl_test_ (sandbox).
— Rate limiting
100 requêtes/minute par clé par défaut. Fenêtre fixe de 60 s : une rafale peut atteindre 2× la limite à la frontière de deux fenêtres. Au-delà : 429 avec en-tête Retry-After (secondes).
— Scopes
Deux scopes : read et write. Toute clé valide lit ; seule une clé dont les scopes contiennent write écrit (sinon 403 insufficient_scope). Des scopes vides ([]) valent lecture seule. Une clé Sandbox est toujours en lecture seule (403 sandbox_read_only). Par défaut, une clé cabinet, client ou agent IA reçoit read + write, une clé Sandbox read.
— Périmètre client
Une clé client (vgl_cli_) est limitée à son client : un client_id d'un autre client renvoie 403. Un client_id qui n'est pas un UUID renvoie 400. Une clé cabinet n'accède qu'aux clients de son cabinet (tout autre client : 403).
— Codes de réponse
401 — clé absente, invalide, révoquée ou expirée.402 — Monthly budget exceeded (clé dotée d'un budget mensuel).403 — scope insuffisant ou hors périmètre.429 — limite de débit atteinte, avec en-tête Retry-After.503 — auth_unavailable, budget_check_unavailable ou service_unavailable (périmètre client) : vérification momentanément impossible. Réessayez ; la clé n'est pas révoquée.— II. Endpoints
/api/v1/healthStatut de l'API et version
/api/v1/meAuthInformations sur l'utilisateur authentifié
/api/v1/clientsAuthListe des clients du cabinet
Params : page, limit, status
/api/v1/clientsAuthCréer un client
Body : { name, siren, email, telephone, secteur_activite }
/api/v1/clients/:idAuthModifier un client
Body : { name, email, telephone, notes, status }
/api/v1/traitementsAuthListe des traitements
Params : client_id, status, page, limit
/api/v1/traitementsAuthCréer un traitement
Body : { name, client_id, purpose, legal_basis, data_categories, retention }
/api/v1/traitements/:idAuthModifier un traitement
/api/v1/violationsAuthListe des violations
Params : client_id, status, severity
/api/v1/violationsAuthDéclarer une violation
Body : { title, severity, client_id, affected_count, data_categories }
/api/v1/droitsAuthListe des demandes de droits, triée par échéance applicable. Chaque demande porte effective_deadline (échéance applicable : extended_deadline si le délai a été prorogé au titre de l'art. 12(3) RGPD, sinon deadline), deadline (échéance initiale) et extended_deadline (null sans prorogation).
Params : client_id
/api/v1/droitsAuthCréer une demande
Body : { type, requester_name, requester_email, client_id }
/api/v1/aipdAuthListe des analyses d'impact
/api/v1/aipdAuthCréer une AIPD
Body : { title, client_id, necessity, risks[], measures[] }
/api/v1/ai-systemsAuthListe des systèmes IA enregistrés
/api/v1/ai-systemsAuthEnregistrer un système IA
Body : { name, provider, risk_level, client_id }
/api/v1/jurisdictionsAuthListe des 157 juridictions avec lois et autorités
Params : region, code
/api/v1/checklistsAuthÉtat de conformité par module
Params : module (NIS2, DORA, DSA, JURISDICTION)
/api/v1/checklistsAuthSauvegarder des items de checklist
Body : { module, items: { item_id: boolean } }
/api/v1/scanAuthLancer un scan de conformité web
Body : { url }
/api/v1/reportsAuthGénérer un rapport de conformité
Params : client_id, format (json|pdf)
/api/v1/ai-identityAuthListe des identités IA blockchain
/api/v1/ai-identityAuthEnregistrer un agent IA
Body : { assistantName, agentType, riskLevel, ownerClientId }
/api/v1/webhooksAuthCréer un webhook HMAC-SHA256
Body : { url, events[] }
— III. MCP Server
Connectez Vigil directement à Claude Desktop, Cursor, ou tout agent IA compatible MCP.
{
"mcpServers": {
"vigil": {
"url": "https://vigil-compliance.com/api/mcp",
"transport": "sse",
"headers": {
"Authorization": "Bearer vgl_cab_votre_cle"
}
}
}
}— Outils MCP disponibles (8)
vigil.getClientsRécupérer la liste des clients{ status? }vigil.getTraitementsRécupérer les traitements d'un client{ clientId }vigil.createTraitementCréer un traitement{ name, clientId, purpose, legalBasis }vigil.getViolationsRécupérer les violations{ clientId?, status? }vigil.getDroitsRécupérer les demandes de droits{ clientId?, type? }vigil.getJurisdictionsRécupérer les juridictions{ region?, code? }vigil.getAlertsRécupérer les alertes Sentinel{ severity? }vigil.scanWebsiteScanner un site web{ url }— IV. Webhooks
Recevez des notifications en temps réel. Chaque webhook est signé.
violation.createdviolation.updateddroit.createddroit.expiredalert.criticalscan.completedclient.updatedchecklist.updatedconst crypto = require('crypto')
const signature = req.headers['x-vigil-signature']
const expected = crypto
.createHmac('sha256', webhook_secret)
.update(JSON.stringify(req.body))
.digest('hex')
const valid = signature === `sha256=${expected}`— V. SDKs & Librairies
npm install @vigil/sdkpip install vigil-sdkAucune dépendance— VI. Format de réponse
— Succès
{
"data": [...],
"meta": {
"page": 1,
"limit": 50,
"total": 142,
"timestamp": "2026-04-04T..."
}
}— Erreur
{
"error": {
"code": 401,
"message": "Invalid API key"
}
}— VII. Tarification à l'usage