Necesitas datos de partidos de fútbol en vivo en tu aplicación esta semana: los partidos de hoy, lo que está en juego actualmente y detalles rápidos de los partidos por ID. Al final de esta guía, podrás obtener partidos en vivo para una fecha, paginar a través de todos los partidos de un día y recuperar los detalles de un partido utilizando la API de Fútbol en Vivo de FotMob en Zyla API Hub con Python y curl, utilizando una sola clave API y suscripción.
Lo que proporciona la API de Fútbol en Vivo de FotMob
La API de Fútbol en Vivo de FotMob devuelve:
- Partidos en vivo para una fecha UTC (por defecto hoy) con equipos, estado, minuto, puntaje, torneo y un identificador de partido que puedes reutilizar para detalles.
- Todos los partidos para una fecha UTC dada (programados, en vivo y finalizados) con controles de paginación adecuados para carteles de todo el día.
- Detalles del partido por ID de partido, incluyendo equipos, puntaje, torneo y estado.
Los casos de uso comunes incluyen tickers de puntajes en vivo, tableros de centro de partidos, sistemas de alertas y páginas previas al partido construidas por aplicaciones deportivas, sitios de clubes y herramientas de apuestas.
Autenticación y facturación en Zyla API Hub
- Auth: Envía Authorization: Bearer YOUR_API_KEY en cada solicitud.
- Facturación: Suscripción + cuota (no pago por llamada). No hay Plan Gratuito. Para tu primera API en Zyla, puedes comenzar con una prueba de 7 días o 50 solicitudes; consulta la página de la API para opciones de acceso y precios actuales.
- Una clave funciona en todas las APIs de Zyla; gestiona todo en una sola cuenta.
Puedes navegar por más de 10,000 APIs públicas en Zyla API Hub y suscribirte cuando estés listo.
Comenzando en Zyla API Hub
- Abre la página de la API de Fútbol en Vivo de FotMob.
- Haz clic en Suscribirse o Comenzar Prueba Gratuita (cuando esté disponible).
- Copia tu clave API desde tu panel de control.
- Llame a los endpoints con el encabezado de Autorización: Bearer YOUR_API_KEY.
¿Aún no tienes una cuenta? Regístrate para obtener una clave API y comenzar a integrar.
Endpoints que usarás
1) Partidos de Fútbol en Vivo de FotMob
Método: GET
URL: https://zylalabs.com/api/13929/fotmob-live-football-api/32101/fotmob-football-live-matches
Descripción: Devuelve partidos de fútbol en juego en una fecha UTC. Por defecto hoy. Usa el ID del partido para detalles y estadísticas.
Parámetros de consulta:
- date (fecha, requerido): Por ejemplo 2026-09-23
curl (copia y pega tal cual):
curl -s -X GET "https://zylalabs.com/api/13929/fotmob-live-football-api/32101/fotmob-football-live-matches?date=2026-09-23" \
-H "Authorization: Bearer YOUR_API_KEY"
Respuesta JSON de muestra oficial:
{
"source": "fotmob",
"count": 2,
"matches": [
{
"source": "fotmob",
"source_event_id": 6278448,
"sport": "football",
"status": "Live",
"status_code": 3,
"minute": "98’",
"start_timestamp": 1790179200,
"home": {
"id": 507764,
"name": "Gibraltar",
"short_name": "Gibraltar"
},
"away": {
"id": 287979,
"name": "Sao Tome and Principe",
"short_name": "Sao Tome and Principe"
},
"score": {
"home": 0,
"away": 0,
"text": null
},
"tournament": {
"id": 914609,
"name": "Friendlies",
"country": "INT"
},
"meta": {
"is_live": true
}
},
{
"source": "fotmob",
"source_event_id": 1000021847,
"sport": "football",
"status": "Halftime",
"status_code": 10,
"minute": "HT",
"start_timestamp": 1790182800,
"home": {
"id": 394121,
"name": "VfL Wolfsburg",
"short_name": "VfL Wolfsburg"
},
"away": {
"id": 644409,
"name": "Sturm Graz",
"short_name": "Sturm Graz"
},
"score": {
"home": 4,
"away": 0,
"text": null
},
"tournament": {
"id": 1000001490,
"name": "UEFA Women's Europa Cup - 2nd Qualifying Round",
"country": "INT"
},
"meta": {
"is_live": true
}
}
],
"date": "2026-09-23",
"cache": {
"hit": false,
"ttl_seconds": 20
}
}
Lo que usarás:
- matches[].source_event_id — el ID del partido para reutilizar.
- status, status_code, minute — impulsa tickers en vivo y transiciones de estado.
- score.home, score.away — puntaje actual.
- start_timestamp — segundos de época UTC; convierte a tu localidad para mostrar.
- campos del torneo — metadatos de la competencia.
- cache.ttl_seconds — indicación de caché ascendente; planifica tu intervalo de sondeo.
2) Partidos de FotMob por Fecha
Método: GET
URL: https://zylalabs.com/api/13929/fotmob-live-football-api/32102/fotmob-fixtures-by-date
Descripción: Devuelve todos los partidos de fútbol en una fecha UTC (en vivo y programados). Las respuestas están paginadas: por defecto 100 partidos por página (máx. 100). Consulta pagination.has_more; cuando sea verdadero, solicita page=2, page=3, etc.
Parámetros de consulta:
- date (fecha, requerido): Por ejemplo 2026-09-22
- page (número, opcional): índice de página basado en 1
- per_page (número, opcional): hasta 100
curl (copia y pega tal cual):
Notas:
- Usa esto para carteles previos al partido donde necesitas juegos programados y cualquier partido en vivo/terminado en el mismo día.
- Lee los indicadores de paginación en la respuesta; cuando has_more es verdadero, incrementa la página.
3) Detalle del Partido por ID de Partido
Método: GET
URL: https://zylalabs.com/api/13929/fotmob-live-football-api/32103/fotmob-match-detail-by-match-id
Descripción: Devuelve equipos, puntaje, estado y competencia para un ID de partido de FotMob.
Parámetros de solicitud: ninguno está documentado en ejemplos de usuario. Autentica y llama al endpoint para recuperar detalles.
curl (copia y pega tal cual):
Respuesta JSON de muestra oficial:
Consejo: Usa el ID del partido (source_event_id) de los endpoints en vivo o de partidos para obtener o actualizar vistas de detalle.
Python: obtener partidos en vivo para una fecha
El fragmento a continuación llama a Partidos de Fútbol en Vivo de FotMob para una fecha UTC, imprime un marcador compacto y muestra cómo manejar campos clave del ejemplo oficial anterior.
import os
import requests
from datetime import datetime, timezone
API_KEY = os.getenv("ZYLA_API_KEY", "YOUR_API_KEY")
DATE = "2026-09-23" # fecha UTC
url = "https://zylalabs.com/api/13929/fotmob-live-football-api/32101/fotmob-football-live-matches"
params = {"date": DATE}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, params=params, headers=headers, timeout=20)
resp.raise_for_status()
data = resp.json()
print(f"Source: {data.get('source')}, Matches: {data.get('count')}, Date: {data.get('date')}")
cache = data.get("cache") or {}
if cache:
print(f"Cache TTL (s): {cache.get('ttl_seconds')}")
for m in data.get("matches", []):
mid = m.get("source_event_id")
status = m.get("status")
minute = m.get("minute")
start_ts = m.get("start_timestamp")
start_utc = datetime.fromtimestamp(start_ts, tz=timezone.utc).isoformat() if start_ts else "n/a"
home = m.get("home", {}).get("short_name") or m.get("home", {}).get("name")
away = m.get("away", {}).get("short_name") or m.get("away", {}).get("name")
sh = m.get("score", {}).get("home")
sa = m.get("score", {}).get("away")
tourney = m.get("tournament", {}).get("name")
country = m.get("tournament", {}).get("country")
line = f"[{status} {minute or ''}] {home} {sh}-{sa} {away} | {tourney} ({country}) | match_id={mid} | start={start_utc}"
print(line.strip())
Ejecuta esto como una tarea cron o en segundo plano. Usa cache.ttl_seconds como un límite inferior para tu intervalo de sondeo.
Notas de integración prácticas
- Zona horaria y marcas de tiempo: start_timestamp son segundos de época UTC. Convierte para mostrar en las localidades del cliente.
- Manejo de estado: status y status_code impulsan transiciones de estado; trata minute como una cadena ("HT", "98’"). No analices minute como un entero sin verificar.
- Puntajes seguros contra nulos: Antes del inicio, score.home y score.away pueden ser nulos. Protege tus formateadores.
- Paginación: Para carteles de todo el día, usa Partidos de FotMob por Fecha e itera la página hasta que la respuesta indique que no hay más páginas. El valor por defecto de per_page es 100 y el máximo es 100.
- Caché: cache.ttl_seconds indica el TTL recomendado; evita golpear el endpoint con demasiada frecuencia.
- Identidad del partido: Usa matches[].source_event_id como tu clave estable para correlacionar tick en vivo y vistas de detalle.
- Auth: Siempre pasa Authorization: Bearer YOUR_API_KEY; no hacerlo resultará en errores de autenticación.
Ejemplos de flujo de trabajo de extremo a extremo
- Ticker en vivo: Consulta Partidos de Fútbol en Vivo de FotMob para la fecha UTC de hoy, renderiza puntajes, minutos y torneo. Enlaza cada fila a una vista de detalle usando el ID del partido.
- Página de aterrizaje previa al partido: Llama a Partidos de FotMob por Fecha para el día elegido y pagina. Muestra partidos no iniciados agrupados por competencia.
- Pantalla de detalle: Usa el ID del partido extraído de cualquiera de los endpoints y llama a Detalle del Partido por ID de Partido para renderizar equipos, puntaje y campos de competencia.
- Alertas: Cuando el estado transicione a En Vivo o Medio Tiempo/Finalizado, activa notificaciones. Usa status_code para evitar coincidencias de cadenas en casos extremos.
Llamadas desde agentes de IA a través de MCP
Si automatizas tareas con clientes compatibles con MCP (Claude Code, Cursor, Windsurf y otros), puedes llamar a las APIs de Zyla a través del endpoint MCP:
Endpoint: https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
Cualquier herramienta configurada para hablar MCP puede reenviar solicitudes a Zyla. Reutiliza el mismo modelo de Autorización (tu clave API está vinculada a tu cuenta y suscripción de Zyla). Para detalles de configuración del cliente, consulta la página de MCP.
Consejo: Mantén tu lógica de obtención de partidos sin estado e idempotente para que las herramientas MCP puedan reintentar de manera segura. Observa cache.ttl_seconds para evitar llamadas innecesarias desde tus bucles de agentes.
curl para partidos y detalles (listo para pegar)
Todos los partidos para una fecha (con controles de paginación):
Detalle del partido por ID de partido:
Lista de verificación operativa
- Suposiciones UTC: Tanto los endpoints en vivo como los de partidos operan en fechas UTC.
- Cadencia de sondeo: Comienza con cache.ttl_seconds; ajusta según las necesidades de UX y tu cuota de suscripción.
- Manejo de errores: Trata los no 2xx como transitorios (reintenta con retroceso) a menos que tu cliente indique lo contrario.
- Planificación de cuotas: Esta API utiliza suscripción + cuota. No hay Plan Gratuito. Para tu primera API, puedes comenzar con una prueba de 7 días o 50 solicitudes; verifica los detalles en la página de la API.
- Manejo de secretos: Almacena YOUR_API_KEY en tu configuración del lado del servidor o variables de entorno. No incrustes claves en el código del lado del cliente.
Enlaces y próximos pasos
- Navega y suscríbete en API de Fútbol en Vivo de FotMob.
- Crea tu cuenta: Regístrate.
- Explora más listados deportivos en Zyla API Hub.
FAQ
¿Cómo me autentico?
Envía Authorization: Bearer YOUR_API_KEY en cada solicitud.
¿En qué zona horaria están las fechas y horas?
Los endpoints aceptan fechas UTC. Los campos start_timestamp son segundos de época UTC.
¿Cómo obtengo todos los partidos para un día de partido ocupado?
Usa Partidos de FotMob por Fecha con page y per_page, y sigue obteniendo páginas subsiguientes mientras la respuesta indique más datos.
¿Cómo enlazo filas de partidos en vivo a páginas de detalle?
Usa matches[].source_event_id de los endpoints en vivo o de partidos, luego llama a Detalle del Partido por ID de Partido con tu encabezado de autenticación.
¿Hay un plan gratuito?
No hay Plan Gratuito. La primera API ofrece una prueba de 7 días o 50 solicitudes. Consulta la página de la API para opciones de acceso y precios actuales.
¿Listo para lanzar tu integración? Crea tu cuenta, obtén tu clave y comienza a llamar a la API de Fútbol en Vivo de FotMob hoy. Regístrate ahora.