API REST + WebSocket temps réel. Multi-sports, multi-sources. B2B Ready
Ajouter le header X-API-Key: votre_cle à chaque requête.
Clé de test: demo_key_001
curl -H "X-API-Key: demo_key_001" \ https://VOTRE-SERVEUR/api/v1/matches
GET/api/v1/health
GET/api/v1/info — Stats provider, versions
GET/api/v1/matches — Tous les matchs
GET/api/v1/matches?source=espn — Filtrer par source
GET/api/v1/matches/{id} — Détail d'un match
GET/api/v1/matches/{id}/odds — Cotes 1X2
GET/api/v1/competitions — Compétitions
GET/api/v1/competitions/{id}/matches — Matchs d'une compétition
GET/api/v1/live/now — En direct
GET/api/v1/history?source=espn&limit=50 — Historique PostgreSQL
ws://VOTRE-SERVEUR/ws?key=demo_key_001
Connectez-vous avec la clef en paramètre query. Réception des données en temps réel au format JSON :
{
"type": "update",
"source": "espn",
"sport": "NFL",
"timestamp": "2026-06-29T...",
"matches": [...]
}
Types d'événements : update (nouvelles données scrappées), heartbeat (toutes les 15s)
| Source | Sports | Cotes | Fréquence |
|---|---|---|---|
| ESPN API | Foot, NFL, MLB, NHL, NBA, WNBA | DraftKings ✅ | 30s |
| BetExplorer | Foot, Basket, Hockey, Tennis, Baseball, Volley, Handball | 1X2 ✅ | 30s |
| Flashscore | Football | — (scores) | 60s |
| Unibet | Tennis | — (scores) | 150s |
const ws = new WebSocket("wss://VOTRE-SERVEUR/ws?key=demo_key_001");
ws.onmessage = (e) => {
const data = JSON.parse(e.data);
if (data.type === "update") {
console.log(data.matches.length + " matchs mis à jour");
data.matches.forEach(m => {
console.log(m.homeTeam, m.odds1, m.oddsX, m.odds2);
});
}
};