API Laboratoire Lavoué v1.0
Documentation des endpoints sécurisés pour l'intégration des partenaires (§2.1.5)
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)
Pour toute question technique ou demande d'accès API :
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
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"
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éesX-RateLimit-Remaining: Requêtes restantesX-RateLimit-Reset: Timestamp UNIX de réinitialisation
| 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"
}
/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."
}
/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"]
}
}
/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"}'
/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"
}
]
}
/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
}
}
}
}
/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"
}'
/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) |
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);
?>
Version initiale : analyse de fraude, prédiction de causes, recherche fiches, notifications, statistiques.
Version de test : 3 endpoints disponibles en beta.