DOCUMENTATION API

API Laboratoire Lavoué v1.0

Documentation des endpoints sécurisés pour l'intégration des partenaires (§2.1.5)

API v1.0 - Stable
Sécurité et souveraineté (§24 du cahier des charges)

Tous les appels API sont :

  • Chiffrés (HTTPS obligatoire)
  • Authentifiés par clé API (Bearer token)
  • Limités en débit (rate limiting)
  • Journalisés (traçabilité complète)
  • Hébergés sur infrastructure souveraine (France/UE)
1. Authentification

Toutes les requêtes API doivent inclure une clé d'authentification dans l'en-tête HTTP Authorization.

Format de l'en-tête
Authorization: Bearer VOTRE_CLE_API
Important : Ne partagez jamais votre clé API. En cas de compromission, régénérez-la immédiatement depuis votre espace profil.
Exemple d'appel authentifié
curl -X GET "https://api.lavoue-lab.fr/v1/dossiers" \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json"
2. Rate limiting

Chaque clé API dispose d'une limite de requêtes par jour selon votre abonnement.

Niveau Limite Prix
Basic 1 000 req/jour Inclus
Pro 10 000 req/jour Sur devis
Enterprise Illimité Sur devis
En-têtes de rate limiting
  • X-RateLimit-Limit : Nombre total de requêtes autorisées
  • X-RateLimit-Remaining : Requêtes restantes
  • X-RateLimit-Reset : Timestamp UNIX de réinitialisation
3. Codes d'erreur
Code Signification Description
200 OK Requête réussie
201 Created Ressource créée avec succès
400 Bad Request Paramètres invalides ou manquants
401 Unauthorized Clé API manquante ou invalide
403 Forbidden Permission insuffisante pour cette ressource
404 Not Found Ressource introuvable
429 Too Many Requests Limite de requêtes dépassée
500 Internal Server Error Erreur interne du serveur
Format des erreurs
{
  "success": false,
  "error": "Description de l'erreur",
  "code": 400,
  "timestamp": "2026-03-15T10:30:00Z"
}
4. Endpoints disponibles
POST
/api/analyse-fraude

Analyse les clignotants de fraude dans un dossier d'incendie. Basé sur les fiches techniques n°12, 31 et 43.

Paramètres :
Nom Type Requis Description
dossier_id integer Oui ID du dossier à analyser
Exemple de requête :
curl -X POST "https://api.lavoue-lab.fr/v1/api/analyse-fraude" \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"dossier_id": 42}'
Exemple de réponse :
{
  "success": true,
  "score_fraude": 45.5,
  "niveau_risque": "Moyen",
  "couleur": "warning",
  "total_clignotants": 12,
  "clignotants_detectes": [
    {"categorie": "souscription", "nom": "Contrat récent (< 6 mois)", "poids": 3}
  ],
  "recommandation": "Quelques clignotants détectés. Approfondir l'analyse du contexte."
}
POST
/api/prediction-causes-avancee

Prédiction avancée des causes d'incendie basée sur les statistiques réelles des fiches techniques du laboratoire.

Paramètres :
Nom Type Requis Description
type_batiment string Oui logement, parking_souterrain, vehicule, fumisterie, etc.
zone_origine string Non cuisine, tableau_electrique, chambre, etc.
suspicion_volontaire boolean Non Indique une suspicion d'incendie volontaire
dossier_id integer Non ID du dossier à associer
Exemple de requête :
curl -X POST "https://api.lavoue-lab.fr/v1/api/prediction-causes-avancee" \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "type_batiment": "logement",
    "zone_origine": "cuisine",
    "suspicion_volontaire": false
  }'
Exemple de réponse :
{
  "success": true,
  "prediction": {
    "cause_principale": "imprudence",
    "probabilite": 0.72,
    "causes_secondaires": [
      {"cause": "récepteur électrique", "probabilite": 0.4},
      {"cause": "fumisterie", "probabilite": 0.15}
    ],
    "elements_confirmation": ["Vérifier les appareils électroménagers"],
    "references_fiches": ["Fiche n°11 - Incendies d'habitations"]
  }
}
POST
/api/recherche-fiches

Recherche sémantique dans la base de connaissances des fiches techniques.

Paramètres :
Nom Type Requis Description
query string Oui Terme de recherche (ex: "fumisterie insert")
type_recherche string Non tous, statistiques, causes, juridique, technique
Exemple de requête :
curl -X POST "https://api.lavoue-lab.fr/v1/api/recherche-fiches" \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"query": "fumisterie", "type_recherche": "causes"}'
GET
/api/notifications

Récupère les notifications non lues de l'utilisateur authentifié.

Exemple de réponse :
{
  "success": true,
  "non_lues": 3,
  "notifications": [
    {
      "id": 1,
      "type": "validation",
      "message": "Rapport en attente de validation",
      "niveau": "warning",
      "date": "15/03/2026 10:30",
      "lien": "/dossiers/42"
    }
  ]
}
GET
/api/statistiques-interactives

Fournit des statistiques basées sur les fiches techniques du laboratoire.

Exemple de réponse :
{
  "success": true,
  "statistiques": {
    "causes_certaines": {
      "titre": "Degré de certitude (Fiche 13)",
      "data": {
        "Cause certaine": 72,
        "Cause probable": 15,
        "Cause indéterminée": 13
      }
    }
  }
}
POST
/api/statistiques/client/{client_id}/generer

Génère un rapport de statistiques personnalisé pour un client (§2.1.5 - Valorisation).

Paramètres :
Nom Type Requis Description
date_debut string (YYYY-MM-DD) Non Date de début de la période
date_fin string (YYYY-MM-DD) Non Date de fin de la période
type string Non annuelle, trimestrielle, sectorielle
Exemple de requête :
curl -X POST "https://api.lavoue-lab.fr/v1/api/statistiques/client/5/generer" \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "date_debut": "2025-01-01",
    "date_fin": "2025-12-31",
    "type": "annuelle"
  }'
GET
/api/dossiers

Liste les dossiers accessibles selon les permissions de la clé API.

Paramètres de filtre :
Nom Type Description
statut string Filtre par statut (nouveau, en_cours, livre, etc.)
type_sinistre string Filtre par type (logement, vehicule, etc.)
page integer Numéro de page (défaut: 1)
per_page integer Nombre par page (défaut: 20, max: 100)
5. Exemples d'intégration
Python
import requests

API_KEY = "VOTRE_CLE_API"
BASE_URL = "https://api.lavoue-lab.fr/v1"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# 1. Analyser une fraude
response = requests.post(
    f"{BASE_URL}/api/analyse-fraude",
    headers=headers,
    json={"dossier_id": 42}
)
result = response.json()
print(f"Score de fraude : {result['score_fraude']}%")

# 2. Prédire la cause
response = requests.post(
    f"{BASE_URL}/api/prediction-causes-avancee",
    headers=headers,
    json={
        "type_batiment": "logement",
        "zone_origine": "cuisine"
    }
)
prediction = response.json()["prediction"]
print(f"Cause probable : {prediction['cause_principale']}")
JavaScript (Node.js)
const API_KEY = 'VOTRE_CLE_API';
const BASE_URL = 'https://api.lavoue-lab.fr/v1';

const headers = {
  'Authorization': `Bearer ${API_KEY}`,
  'Content-Type': 'application/json'
};

// Analyse de fraude
async function analyserFraude(dossierId) {
  const response = await fetch(`${BASE_URL}/api/analyse-fraude`, {
    method: 'POST',
    headers,
    body: JSON.stringify({ dossier_id: dossierId })
  });
  
  const data = await response.json();
  console.log(`Score : ${data.score_fraude}%`);
  return data;
}

analyserFraude(42);
PHP
<?php
$apiKey = 'VOTRE_CLE_API';
$baseUrl = 'https://api.lavoue-lab.fr/v1';

$ch = curl_init("$baseUrl/api/analyse-fraude");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer $apiKey",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode(['dossier_id' => 42])
]);

$response = curl_exec($ch);
$data = json_decode($response, true);

echo "Score : " . $data['score_fraude'] . "%";
curl_close($ch);
?>
6. SDK et bibliothèques officielles

Des bibliothèques clientes sont disponibles pour faciliter l'intégration :

Python SDK
pip install lavoue-api GitHub
Node.js SDK
npm install @lavoue/api GitHub
PHP SDK
composer require lavoue/api GitHub
7. Historique des versions
Stable v1.0 - 15 mars 2026

Version initiale : analyse de fraude, prédiction de causes, recherche fiches, notifications, statistiques.

Beta v0.9 - 1 mars 2026

Version de test : 3 endpoints disponibles en beta.