API REST v1

Documentación de la API

Integra los datos de DataScout en tus propias herramientas a través de nuestra API REST.

Visión general

¿Qué datos?

Estadísticas detalladas por jugador y por equipo, índices de rendimiento por rol, puntos fuertes y débiles, valores de mercado estimados, proyecciones entre ligas, perfiles similares y puntuaciones de encaje jugador-club.

¿Qué cobertura?

Más de 100 ligas masculinas y femeninas en Europa, América, Asia y África, desde el Big 5 hasta divisiones inferiores y ligas juveniles, además de las copas europeas (Champions League, Europa League, Conference League). El endpoint /v1/leagues devuelve las ligas accesibles con tu clave.

¿Qué frescura tienen los datos?

Los datos se actualizan cada semana, a medida que se disputan las jornadas de liga.

¿Cómo funciona el acceso?

Suscripción mensual por liga: cada suscripción cubre todos los jugadores y equipos de la liga elegida, con todas sus estadísticas, copas europeas incluidas. Tarifas bajo petición.

Preguntas frecuentes

¿Las estadísticas cubren la Champions League o las selecciones nacionales?

Las copas europeas (Champions League, Europa League, Conference League) están incluidas con cualquier suscripción a la API sin coste adicional: los jugadores que participan en ellas tienen estadísticas separadas de las de su liga. En cambio, las estadísticas con las selecciones nacionales no están disponibles.

¿Con qué frecuencia se actualizan los datos?

Cada semana. Las estadísticas incluyen las últimas jornadas disputadas de cada liga cubierta.

¿Cómo obtengo una clave API y las tarifas?

El acceso a la API está disponible bajo petición. Contáctanos indicando las ligas que te interesan: te comunicaremos las tarifas y activaremos tu clave.

Inicio rápido

URL base : https://api.datascout.fr/v1

curl -H "X-API-Key: dk_live_YOUR_KEY" \
  https://api.datascout.fr/v1/leagues

Autenticación

Todas las solicitudes deben incluir tu clave API en la cabecera HTTP X-API-Key.

X-API-Key: dk_live_a1b2c3d4e5f6...

Buenas prácticas :

  • Nunca hagas commit de una clave en un repositorio Git
  • Usa una clave por entorno (producción, staging, desarrollo)
  • Revoca inmediatamente cualquier clave comprometida
  • Define una fecha de caducidad para las claves temporales

Identificadores de jugadores

En la API coexisten dos identificadores de jugador: sepa cuál almacenar.

  • player_id : identifica una FILA jugador × contexto (temporada, club, competición). Cambia cada temporada, con cada traspaso y entre liga y competición europea: no lo almacene como clave duradera.
  • datascout_id : identifica a una PERSONA (formato ds_ + 16 caracteres): estable entre temporadas, traspasos y competiciones. Es la clave recomendada para indexar sus datos.
  • datascout_id está presente en todas las respuestas de jugador (null si la fila aún no está vinculada, transitorio).
  • Se acepta en cualquier lugar donde se espere un player_id (rutas /v1/players/:id/*, player_ids de /v1/compare y /v1/fit-score).
  • Para iniciar su referencial: POST /v1/players/resolve-batch y almacene el datascout_id de cada jugador. GET /v1/players/:id/history devuelve la correspondencia por temporada.

Límite de solicitudes

Plan Pro Liga: 10 000 solicitudes/día. Plan Pro Full: ilimitado. Cada respuesta incluye las siguientes cabeceras:

  • X-RateLimit-Limit: límite diario
  • X-RateLimit-Remaining: solicitudes restantes
  • X-RateLimit-Reset: fecha de reinicio (ISO 8601)

Códigos de error

CódigoSignificado
200Éxito
400Parámetros faltantes o no válidos
401Clave API ausente, no válida o caducada
403Plan insuficiente o liga no accesible
404Recurso no encontrado
429Límite de solicitudes superado
500Error del servidor

Endpoints

Perfil

Identidad de la clave que llama a la API

Referencia

Metadatos: ligas, temporadas, equipos

Jugadores

Búsqueda, fichas, estadísticas, perfiles similares

Equipos

Ficha, plantilla, similitud, comparación cara a cara

Entrenadores

Búsqueda, ficha, carrera y perfil táctico de los entrenadores

Clasificaciones

Mejores jugadores por rol o por estadística

Glosario

Documentación legible por máquina de las estadísticas e índices

Scouting

Búsqueda avanzada multicriterio

Mis recursos

Índices y presets guardados en tu cuenta de DataScout

Comparación

Distribución de jugadores en 2 estadísticas cruzadas

Roles posicionales (27 perfiles)

Utilizables en /v1/rankings / /v1/scouting mediante el parámetro role.

Porteros

  • gardien_stoppeur
  • gardien_moderne

Defensas centrales

  • defenseur_stoppeur
  • defenseur_relanceur
  • defenseur_moderne
  • defenseur_athletique

Laterales

  • arriere_lateral
  • lateral_offensif
  • lateral_interieur

Mediocentros defensivos

  • milieu_sentinelle
  • milieu_recuperateur
  • meneur_de_jeu_en_retrait

Mediocentros

  • milieu_box_to_box
  • mezzala
  • milieu_relayeur
  • milieu_ratisseur

Mediapuntas

  • meneur_de_jeu
  • meneur_de_jeu_excentre

Extremos

  • ailier_defensif
  • ailier_interieur
  • ailier_de_profondeur
  • ailier_provocateur
  • ailier_buteur

Delanteros

  • faux_9
  • attaquant_pivot
  • attaquant_de_pressing
  • attaquant_de_profondeur
  • renard_des_surfaces
  • attaquant_complet

Ejemplos de código

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_...')
}
¿Quieres integrar DataScout en tus herramientas? El acceso a la API está disponible bajo petición.

Prueba la API en directo

Prueba los endpoints desde tu navegador, sin escribir una sola línea de código.