API-documentatie
Integreer DataScout-gegevens in je eigen tools via onze REST API.
Overzicht
Welke data?
Gedetailleerde speler- en teamstatistieken, prestatie-indices per rol, sterktes en zwaktes, geschatte marktwaardes, projecties tussen competities, vergelijkbare spelersprofielen en speler-club fit-scores.
Welke dekking?
Meer dan 100 mannen- en vrouwencompetities in Europa, Amerika, Azië en Afrika, van de Big 5 tot lagere divisies en jeugdcompetities, plus de Europese bekers (Champions League, Europa League, Conference League). Het endpoint /v1/leagues geeft de competities terug die met jouw sleutel toegankelijk zijn.
Hoe actueel is de data?
De data wordt elke week bijgewerkt, naarmate de speelrondes van de competities worden gespeeld.
Hoe werkt de toegang?
Maandabonnement per competitie: elk abonnement dekt alle spelers en teams van de gekozen competitie, met al hun statistieken, Europese bekers inbegrepen. Tarieven op aanvraag.
Veelgestelde vragen
Dekken de statistieken de Champions League of nationale teams?
De Europese bekers (Champions League, Europa League, Conference League) zijn zonder meerkosten inbegrepen bij elk API-abonnement: spelers die eraan deelnemen hebben daar aparte statistieken, los van die van hun competitie. Statistieken bij nationale teams zijn daarentegen niet beschikbaar.
Hoe vaak wordt de data bijgewerkt?
Elke week. De statistieken bevatten de laatst gespeelde speelrondes van elke gedekte competitie.
Snel starten
Basis-URL : https://api.datascout.fr/v1
curl -H "X-API-Key: dk_live_YOUR_KEY" \
https://api.datascout.fr/v1/leaguesAuthenticatie
Elke aanvraag moet je API-sleutel bevatten in de HTTP-header X-API-Key.
X-API-Key: dk_live_a1b2c3d4e5f6...Beste praktijken :
- Commit nooit een sleutel naar een Git-repository
- Gebruik één sleutel per omgeving (productie, staging, ontwikkeling)
- Trek een gecompromitteerde sleutel onmiddellijk in
- Stel een vervaldatum in voor tijdelijke sleutels
Speler-identifiers
In de API bestaan twee speler-identifiers naast elkaar: weet welke u moet opslaan.
player_id: identificeert een RIJ speler × context (seizoen, club, competitie). Hij verandert elk seizoen, bij elke transfer en tussen competitie en Europees voetbal: sla hem niet op als duurzame sleutel.datascout_id: identificeert een PERSOON (formaat ds_ + 16 tekens): stabiel over seizoenen, transfers en competities heen. Dit is de aanbevolen sleutel om uw gegevens te indexeren.- datascout_id is aanwezig in elk spelersantwoord (null als de rij nog niet gekoppeld is, tijdelijk).
- Hij wordt overal geaccepteerd waar een player_id wordt verwacht (/v1/players/:id/*-routes, player_ids in /v1/compare en /v1/fit-score).
- Om uw referentieel op te starten: POST /v1/players/resolve-batch en sla de datascout_id van elke speler op. GET /v1/players/:id/history geeft de koppeling per seizoen.
Rate limiting
Plan Pro Ligue: 10.000 aanvragen/dag. Plan Pro Full: onbeperkt. Elke reactie bevat de volgende headers:
X-RateLimit-Limit: dagelijkse limietX-RateLimit-Remaining: resterende aanvragenX-RateLimit-Reset: resetdatum (ISO 8601)
Foutcodes
| Code | Betekenis |
|---|---|
| 200 | Succes |
| 400 | Ontbrekende of ongeldige parameters |
| 401 | Ontbrekende, ongeldige of verlopen API-sleutel |
| 403 | Onvoldoende plan of niet-toegankelijke competitie |
| 404 | Bron niet gevonden |
| 429 | Rate limit overschreden |
| 500 | Serverfout |
Endpoints
Profiel
Identiteit van de sleutel die de API aanroept
Referentie
Metadata: competities, seizoenen, teams
Spelers
Zoeken, profielen, statistieken, vergelijkbare spelers
Teams
Profiel, selectie, gelijkenis, head-to-head-vergelijking
Trainers
Zoeken, profiel, carrière en tactisch profiel van trainers
Ranglijsten
Topspelers per rol of statistiek
Woordenlijst
Machineleesbare documentatie van statistieken en indices
Scouting
Geavanceerd zoeken met meerdere criteria
Mijn bronnen
Indexen en presets opgeslagen in je DataScout-account
Vergelijking
Spreiding van spelers over 2 gekruiste statistieken
Positionele rollen (31 profielen)
Te gebruiken in /v1/rankings / /v1/scouting via de parameter role.
Zes sleutels zijn op 18 september 2026 hernoemd zodat ze aansluiten bij de getoonde labels. De oude sleutels blijven geaccepteerd: GET /v1/enums geeft bij elke hernoemde rol de vorige sleutel in het veld deprecated_key.
Doelmannen
gardien_stoppeurgardien_modernegardien_relanceur
Centrale verdedigers
defenseur_stoppeurdefenseur_relanceurdefenseur_mobiledefenseur_aerien
Backs
lateral_defensiflateral_offensiflateral_athletiquelateral_passeur
Verdedigende middenvelders
milieu_progressifmilieu_recuperateurmeneur_de_jeu_en_retrait
Centrale middenvelders
milieu_box_to_boxmezzalamilieu_relayeurmilieu_ratisseur
Aanvallende middenvelders
meneur_de_jeumeneur_percuteurmeneur_travailleurmeneur_de_jeu_excentre
Buitenspelers
ailier_travailleurailier_de_profondeurailier_provocateurailier_buteur
Aanvallers
faux_9attaquant_pivotattaquant_de_pressingattaquant_de_profondeurrenard_des_surfaces
Herberekende waarden
Het versiecontract gaat over de vorm van de antwoorden, niet over de waarden zelf. Onze indicatoren (prestatie-index, rollen, gelijkenis, projectie, geschatte marktwaarde) worden wekelijks herberekend en hun methodes evolueren. Leg geen numerieke drempels vast op een score, ververs de waarden die u opslaat en gebruik datascout_id als enige blijvende sleutel. Wijzigingen die waarden verschuiven worden per e-mail aangekondigd aan houders van actieve sleutels.
Codevoorbeelden
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_...')
}