BreachRadar
Signaler une fuite
Développeurs

API BreachRadar

Une API REST simple et fiable pour intégrer la détection de fuites dans vos applications. Authentification par clé API, réponses JSON, documentation complète.

Démarrage rapide

Base URL https://api.breachradar.fr/v1

Toutes les requêtes doivent être effectuées en HTTPS. L'API retourne exclusivement du JSON (Content-Type: application/json). La version actuelle est v1.

Authentification

Chaque requête doit inclure votre clé API dans l'en-tête HTTP Authorization. Vous pouvez générer une clé depuis votre tableau de bord.

HTTP Header
Authorization: Bearer br_live_xK9mP2nQvR8wL4tY7uE3jF6...
Ne partagez jamais votre clé API dans du code côté client ou dans un dépôt public. Utilisez des variables d'environnement. En cas de compromission, révoquez-la immédiatement depuis le tableau de bord.
Gratuit
1 000 req/jour
10 requêtes/minute
Accès endpoints publics
Sans carte bancaire
Entreprise
Sur mesure
SLA garanti 99,9%
IP dédiée, DPA inclus
Contact commercial

Endpoints

POST /password/check Vérifie si un mot de passe est compromis

Implémente la technique k-anonymity : vous envoyez uniquement les 5 premiers caractères du hash SHA-1 du mot de passe. Le serveur retourne tous les suffixes correspondants avec leur nombre d'occurrences. La comparaison finale est effectuée côté client.

Corps de la requête

Paramètre Type Requis Description
hash_prefix string Requis 5 premiers caractères du hash SHA-1 du mot de passe en majuscules (ex: 5BAA6)

Réponse 200

JSON
{ "found": true, "count": 9659034, "sources": ["RockYou 2009", "Adobe 2013", "Collection #1 2019"], "hash_suffix": "1E4C9B93F3F0682250B6CF8331B7EE68FD8", "last_seen": "2024-11-03" }
curl -X POST https://api.breachradar.fr/v1/password/check \ -H "Authorization: Bearer br_live_xK9mP2nQvR..." \ -H "Content-Type: application/json" \ -d '{"hash_prefix": "5BAA6"}'
// Calcul du hash SHA-1 côté client async function checkPassword(password) { const encoder = new TextEncoder(); const data = encoder.encode(password); const hashBuffer = await crypto.subtle.digest('SHA-1', data); const hashArray = Array.from(new Uint8Array(hashBuffer)); const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('').toUpperCase(); const prefix = hashHex.slice(0, 5); const res = await fetch('https://api.breachradar.fr/v1/password/check', { method: 'POST', headers: { 'Authorization': 'Bearer br_live_xK9mP2nQvR...', 'Content-Type': 'application/json' }, body: JSON.stringify({ hash_prefix: prefix }) }); return res.json(); }
import hashlib import requests def check_password(password: str) -> dict: sha1 = hashlib.sha1(password.encode()).hexdigest().upper() prefix = sha1[:5] response = requests.post( "https://api.breachradar.fr/v1/password/check", headers={ "Authorization": "Bearer br_live_xK9mP2nQvR...", "Content-Type": "application/json" }, json={"hash_prefix": prefix} ) return response.json()
GET /breaches Liste toutes les fuites référencées

Retourne la liste paginée de toutes les fuites de données indexées dans BreachRadar, triées par date de découverte décroissante.

Paramètres de requête

ParamètreTypeDescription
page integer Optionnel Numéro de page, défaut: 1
limit integer Optionnel Résultats par page, défaut: 20, max: 100
severity string Optionnel Filtrer par criticité: critical, high, medium
year integer Optionnel Filtrer par année (ex: 2024)

Réponse 200

JSON
{ "data": [ { "id": "adobe-2013", "name": "Adobe", "domain": "adobe.com", "breach_date": "2013-10-04", "accounts_affected": 152445165, "severity": "critical", "data_types": ["emails", "passwords", "payment_cards"], "verified": true } ], "meta": { "page": 1, "limit": 20, "total": 847, "pages": 43 } }
curl "https://api.breachradar.fr/v1/breaches?page=1&limit=20&severity=critical" \ -H "Authorization: Bearer br_live_xK9mP2nQvR..."
const res = await fetch( 'https://api.breachradar.fr/v1/breaches?page=1&limit=20&severity=critical', { headers: { 'Authorization': 'Bearer br_live_xK9mP2nQvR...' } } ); const { data, meta } = await res.json();
response = requests.get( "https://api.breachradar.fr/v1/breaches", headers={"Authorization": "Bearer br_live_xK9mP2nQvR..."}, params={"page": 1, "limit": 20, "severity": "critical"} ) data = response.json()
GET /breaches/{id} Détails d'une fuite spécifique

Retourne toutes les informations disponibles sur une fuite identifiée par son slug unique (ex: adobe-2013, linkedin-2012).

Paramètre de chemin

ParamètreTypeDescription
id string Requis Identifiant unique de la fuite (slug)

Réponse 200

JSON
{ "id": "adobe-2013", "name": "Adobe", "domain": "adobe.com", "logo_url": "https://api.breachradar.fr/logos/adobe.png", "breach_date": "2013-10-04", "added_date": "2013-12-04", "accounts_affected": 152445165, "severity": "critical", "data_types": ["emails", "passwords", "payment_cards", "usernames"], "description": "En octobre 2013, Adobe a subi une intrusion majeure...", "source_url": "https://helpx.adobe.com/x-productkb/policy-pricing/customer-alert.html", "verified": true, "is_sensitive": false }
GET /stats Statistiques globales de la base BreachRadar

Retourne les métriques agrégées de l'ensemble de la base de données. Cet endpoint est mis en cache côté serveur toutes les 5 minutes.

Réponse 200

JSON
{ "total_credentials": 14300000000, "total_breaches": 847, "total_domains": 619, "checks_this_month": 2100000, "last_updated": "2026-03-22T14:30:00Z", "severity_breakdown": { "critical": 214, "high": 389, "medium": 244 } }
curl https://api.breachradar.fr/v1/stats \ -H "Authorization: Bearer br_live_xK9mP2nQvR..."
const res = await fetch('https://api.breachradar.fr/v1/stats', { headers: { 'Authorization': 'Bearer br_live_xK9mP2nQvR...' } }); const stats = await res.json();
response = requests.get( "https://api.breachradar.fr/v1/stats", headers={"Authorization": "Bearer br_live_xK9mP2nQvR..."} ) stats = response.json()

Limites de débit

Les limites sont appliquées par clé API. En cas de dépassement, l'API retourne une erreur 429 Too Many Requests avec un en-tête Retry-After indiquant le nombre de secondes à attendre.

Plan Requêtes/jour Requêtes/minute Burst Prix
Gratuit 1 000 10 20 req/10s 0 €/mois
Pro Illimité 100 200 req/10s 29 €/mois
Entreprise Personnalisé Personnalisé Sur mesure Sur devis

Les en-têtes de réponse incluent toujours X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset (timestamp UNIX).

Codes d'erreur

L'API utilise les codes HTTP standards. Les réponses d'erreur suivent toujours ce format :

JSON — Réponse d'erreur
{ "error": { "code": "INVALID_HASH_PREFIX", "message": "Le préfixe de hash doit contenir exactement 5 caractères hexadécimaux.", "status": 400 }, "request_id": "req_01HXKP4M8TNVBF2Y6Z3D9E" }
Code HTTP Code interne Description Solution
400 INVALID_REQUEST Corps de requête invalide ou paramètre manquant Vérifiez le format des paramètres
401 UNAUTHORIZED Clé API manquante, invalide ou révoquée Vérifiez votre clé dans le tableau de bord
404 NOT_FOUND Ressource introuvable (ex: ID de fuite inconnu) Vérifiez l'identifiant fourni
429 RATE_LIMIT_EXCEEDED Limite de débit dépassée Attendez la valeur Retry-After (en secondes)
500 INTERNAL_ERROR Erreur interne du serveur Réessayez. Si persistant, contactez le support

Bibliothèques officielles

Des SDKs maintenus par BreachRadar sont disponibles pour les environnements les plus courants :

Node.js / TypeScript

npm install @breachradar/sdk

Support complet TypeScript, compatible Node 18+ et Deno.

Python

pip install breachradar

Compatible Python 3.9+, async/await supporté via httpx.

PHP

composer require breachradar/php-sdk

Compatible PHP 8.1+, intégration PSR-18 pour n'importe quel client HTTP.

Go

go get breachradar.fr/go-sdk

Module Go natif, zero-dependency, compatible Go 1.21+.