API-Dokumentation
Integriere die Daten von DataScout über unsere REST-API in deine eigenen Tools.
Überblick
Welche Daten?
Detaillierte Spieler- und Teamstatistiken, rollenbasierte Leistungsindizes, Stärken und Schwächen, geschätzte Marktwerte, ligaübergreifende Projektionen, ähnliche Spielerprofile und Spieler-Klub-Fit-Scores.
Welche Abdeckung?
Über 100 Männer- und Frauenligen in Europa, Amerika, Asien und Afrika – von den Big 5 bis zu unteren Ligen und Jugendligen, dazu die Europapokale (Champions League, Europa League, Conference League). Der Endpoint /v1/leagues liefert die mit deinem Schlüssel zugänglichen Ligen.
Wie aktuell sind die Daten?
Die Daten werden jede Woche aktualisiert, sobald die Spieltage der Ligen gespielt sind.
Wie funktioniert der Zugang?
Monatsabonnement pro Liga: Jedes Abonnement umfasst alle Spieler und Teams der gewählten Liga mit sämtlichen Statistiken, Europapokale inklusive. Preise auf Anfrage.
Häufige Fragen
Decken die Statistiken die Champions League oder Nationalmannschaften ab?
Die Europapokale (Champions League, Europa League, Conference League) sind in jedem API-Abonnement ohne Aufpreis enthalten: Spieler, die daran teilnehmen, haben dort eigene, von der Liga getrennte Statistiken. Statistiken für Nationalmannschaften sind dagegen nicht verfügbar.
Wie oft werden die Daten aktualisiert?
Jede Woche. Die Statistiken enthalten die zuletzt gespielten Spieltage jeder abgedeckten Liga.
Schnellstart
Basis-URL : https://api.datascout.fr/v1
curl -H "X-API-Key: dk_live_YOUR_KEY" \
https://api.datascout.fr/v1/leaguesAuthentifizierung
Jede Anfrage muss deinen API-Schlüssel im HTTP-Header enthalten X-API-Key.
X-API-Key: dk_live_a1b2c3d4e5f6...Best Practices :
- Committe niemals einen Schlüssel in ein Git-Repository
- Verwende einen eigenen Schlüssel pro Umgebung (Prod, Staging, Dev)
- Widerrufe kompromittierte Schlüssel sofort
- Lege für temporäre Schlüssel ein Ablaufdatum fest
Spieler-Identifikatoren
In der API existieren zwei Spieler-Identifikatoren: wissen Sie, welchen Sie speichern sollten.
player_id: identifiziert eine ZEILE Spieler × Kontext (Saison, Verein, Wettbewerb). Er ändert sich jede Saison, bei jedem Transfer und zwischen Liga und Europapokal: nicht als dauerhaften Schlüssel speichern.datascout_id: identifiziert eine PERSON (Format ds_ + 16 Zeichen): stabil über Saisons, Transfers und Wettbewerbe hinweg. Dies ist der empfohlene Schlüssel zur Indexierung Ihrer Daten.- datascout_id ist in jeder Spieler-Antwort enthalten (null, wenn die Zeile noch nicht verknüpft ist, vorübergehend).
- Er wird überall akzeptiert, wo eine player_id erwartet wird (/v1/players/:id/*-Routen, player_ids in /v1/compare und /v1/fit-score).
- Zum Aufbau Ihres Referenzsystems: POST /v1/players/resolve-batch, dann die datascout_id jedes Spielers speichern. GET /v1/players/:id/history liefert die Zuordnung pro Saison.
Rate Limiting
Pro Ligue-Tarif: 10.000 Anfragen/Tag. Pro Full-Tarif: unbegrenzt. Jede Antwort enthält die folgenden Header:
X-RateLimit-Limit: TageslimitX-RateLimit-Remaining: verbleibende AnfragenX-RateLimit-Reset: Reset-Datum (ISO 8601)
Fehlercodes
| Code | Bedeutung |
|---|---|
| 200 | Erfolg |
| 400 | Fehlende oder ungültige Parameter |
| 401 | API-Schlüssel fehlt, ungültig oder abgelaufen |
| 403 | Tarif unzureichend oder Liga nicht zugänglich |
| 404 | Ressource nicht gefunden |
| 429 | Rate Limit überschritten |
| 500 | Serverfehler |
Endpoints
Profil
Identität des aufrufenden API-Schlüssels
Referenz
Metadaten: Ligen, Saisons, Teams
Spieler
Suche, Profile, Statistiken, ähnliche Spieler
Teams
Profil, Kader, Ähnlichkeit, Head-to-Head-Vergleich
Trainer
Suche, Profil, Karriere und taktisches Profil der Trainer
Ranglisten
Top-Spieler nach Rolle oder Statistik
Glossar
Maschinenlesbare Dokumentation der Statistiken und Indizes
Scouting
Erweiterte Multi-Kriterien-Suche
Meine Ressourcen
In deinem DataScout-Konto gespeicherte Indizes und Presets
Vergleich
Verteilung von Spielern auf 2 gekreuzten Statistiken
Positionsrollen (27 Profile)
Verwendbar in /v1/rankings / /v1/scouting über den Parameter role.
Torwarte
gardien_stoppeurgardien_moderne
Innenverteidiger
defenseur_stoppeurdefenseur_relanceurdefenseur_modernedefenseur_athletique
Außenverteidiger
arriere_laterallateral_offensiflateral_interieur
Defensive Mittelfeldspieler
milieu_sentinellemilieu_recuperateurmeneur_de_jeu_en_retrait
Zentrale Mittelfeldspieler
milieu_box_to_boxmezzalamilieu_relayeurmilieu_ratisseur
Offensive Mittelfeldspieler
meneur_de_jeumeneur_de_jeu_excentre
Flügelspieler
ailier_defensifailier_interieurailier_de_profondeurailier_provocateurailier_buteur
Stürmer
faux_9attaquant_pivotattaquant_de_pressingattaquant_de_profondeurrenard_des_surfacesattaquant_complet
Codebeispiele
Python
import requests
API_KEY = "dk_live_..."
headers = {"X-API-Key": API_KEY}
# Top 10 ailiers buteurs - France D1
r = requests.get(
"https://api.datascout.fr/v1/rankings",
params={
"role": "ailier_buteur",
"saison": "25-26",
"league": "France D1",
"limit": 10
},
headers=headers
)
print(r.json()["data"])Node.js (axios)
const axios = require("axios")
const api = axios.create({
baseURL: "https://api.datascout.fr/v1",
headers: { "X-API-Key": process.env.DATASCOUT_API_KEY }
})
const { data } = await api.post("/scouting", {
saison: "25-26",
roles: ["ailier_buteur"],
ageMax: 23,
minutesMin: 1000,
limit: 20
})
console.log(data.data)R (httr2)
library(httr2)
API_KEY <- "dk_live_..."
# GET : top 10 ailiers buteurs en Ligue 1
resp <- request("https://api.datascout.fr/v1/rankings") |>
req_url_query(role = "ailier_buteur", saison = "25-26",
league = "France D1", limit = 10) |>
req_headers("X-API-Key" = API_KEY) |>
req_perform()
players <- resp |> resp_body_json() |> _$data
# Conversion en data.frame
df <- do.call(rbind, lapply(players, function(p) {
data.frame(rank = p$rank, name = p$name, club = p$club,
score = p$score, stringsAsFactors = FALSE)
}))Google Sheets (Apps Script)
// Extensions → Apps Script. Copier ce code puis utiliser en cellule :
// =DATASCOUT_RANKING("ailier_buteur", "25-26", "France D1", 20)
function DATASCOUT_RANKING(role, saison, league, limit) {
const key = PropertiesService.getScriptProperties()
.getProperty('DATASCOUT_API_KEY')
const url = 'https://api.datascout.fr/v1/rankings?' +
'role=' + role + '&saison=' + saison +
'&league=' + encodeURIComponent(league) +
'&limit=' + (limit || 10)
const resp = UrlFetchApp.fetch(url, {
method: 'get',
headers: { 'X-API-Key': key }
})
const data = JSON.parse(resp.getContentText())
const rows = [['Rang', 'Joueur', 'Club', 'Âge', 'Note']]
data.data.forEach(p => rows.push([p.rank, p.name, p.club, p.age, p.score]))
return rows
}
// Une seule fois : stocker la clé en sécurité
function setupApiKey() {
PropertiesService.getScriptProperties()
.setProperty('DATASCOUT_API_KEY', 'dk_live_...')
}