Ir al contenido principal

API LeagueRepublic: Obtener Centro de Partidos

Escrito por Pedro Maia

Antes de empezar

Para quién es: este endpoint solo funciona para ligas con la suscripción Oro que tengan la API activada. Para activarla, marca Activar JSON API en las Configuraciones API de tu liga. Si falta cualquiera de las dos cosas, todas las direcciones web de este artículo devuelven un error en lugar de tus datos.

¿Qué es esto? La API JSON permite que otro sitio web, aplicación o programa lea los partidos, resultados y clasificaciones de tu liga directamente desde LeagueRepublic. Piensa en ella como un camarero: tu sitio web pide algo ("los partidos de hoy, por favor") y LeagueRepublic trae la respuesta.

¿Cómo se pide? Visitas una dirección web, igual que cuando abres una página. En lugar de una página bonita, recibes texto simple en un formato llamado JSON. El código de tu desarrollador lee ese texto y lo convierte en lo que él diseñe.

¿Qué aspecto tiene el JSON? Es una lista de etiquetas y valores, un poco como un formulario rellenado:

{ "homeTeamName": "Arthurlie", "homeScore": "2" }

La palabra antes de los dos puntos es el nombre del campo (la etiqueta del formulario). Lo que viene después es el valor (lo que se escribió en la casilla). Las tablas que aparecen más abajo en este artículo explican qué significa cada nombre de campo.

¿Qué es un ID? Cada temporada, equipo y partido en LeagueRepublic tiene su propio número, llamado ID. Funciona como un número de socio: nunca cambia y no hay dos cosas con el mismo. Pones los IDs en la dirección web para indicar qué temporada o equipo quieres.

¿Cómo encuentro mis IDs? El ID de la temporada se obtiene con Get Seasons For League. Los IDs de los equipos se obtienen con Get Teams For Fixture Group. Ambos se describen en el artículo de ayuda principal de la API.

¿Quién puede usarla? Las ligas del plan Oro que hayan marcado Activar JSON API en sus Configuraciones API.

¿Hay algún límite? Sí. Cada liga puede hacer hasta 60 solicitudes por minuto. Si lo superas, recibes el mensaje "Rate limit exceeded" y tienes que esperar un minuto antes de volver a intentarlo.

Algunas palabras que vas a ver

Palabra

Qué significa

Road

El equipo visitante. LeagueRepublic dice "road" donde la mayoría dice "away" (visitante).

Fixture

Un partido, se haya jugado ya o no.

Fixture group

Una división (como "Premier Division") o una ronda de copa.

Result

Un partido que tiene resultado.

null

La casilla está vacía. La liga no la rellenó, o no aplica.

true / false

Sí / no.

Obtener Centro de Partidos

Obtener Centro de Partidos te da todo lo que aparece en la página Centro de Partidos de tu sitio web para un día, en una sola solicitud: los partidos, los resultados y las clasificaciones de las divisiones que juegan ese día.

Le ahorra mucho trabajo a tu desarrollador. Sin él, tendría que pedir las temporadas, luego las divisiones, luego los partidos de cada división, luego cada clasificación, y juntarlo todo a mano.

La dirección web

Para el día predeterminado (el mismo día con el que se abre tu página Centro de Partidos):

Para un día que elijas:

Sustituye {seasonID} por el ID de tu temporada y {date} por el día que quieras, escrito como año, mes, día, sin espacios. Por ejemplo, el 3 de octubre de 2026 es 20261003:

Para ver los partidos que todavía no tienen fecha ("To Be Confirmed", por confirmar), usa tbc en lugar de una fecha:

Lo que recibes

La respuesta es como una carpeta con cuatro partes:

  1. Las temporadas de tu liga, para que puedas ofrecer un selector de temporada.

  2. Los días de partido de la temporada, cada uno con cuántos partidos y resultados tiene. Así puedes crear una barra de fechas para ir haciendo clic, como la de tu página Centro de Partidos.

  3. El resumen del día, si tu liga tiene activados los resúmenes del Centro de Partidos.

  4. Los partidos del día, agrupados por división o ronda de copa. Cada división incluye también su clasificación.

Aquí tienes un ejemplo real, reducido a un partido:

{ "seasonID": 236635540, "seasonList": [ { "seasonID": 922046009, "seasonName": "2025-2026" }, { "seasonID": 236635540, "seasonName": "2026-2027" } ], "matchHubRecapContentText": null, "matchHubRecapLoadDateTime": null, "matchHubDate": "20261002", "dateList": [ { "matchHubDate": "20261002", "matchCount": 1, "resultCount": 0, "liveResultCount": 0 }, { "matchHubDate": "20261003", "matchCount": 57, "resultCount": 0, "liveResultCount": 0 }, { "matchHubDate": "tbc", "matchCount": 5, "resultCount": null, "liveResultCount": null } ], "fixtureGroupList": [ { "fixtureGroupDesc": "Scottish Gas Scottish Cup - Round 1", "fixtureGroupIdentifier": 406990226, "fixtureTypeID": 2, "fixtures": [ { "fixtureID": 45132961, "fixtureDate": "20261002 19:30", "fixtureDateInMilliseconds": 1790965800000, "homeTeam": 551804519, "homeTeamName": "Cumnock Juniors", "roadTeam": 363729896, "roadTeamName": "Auchinleck Talbot", "homeScore": null, "roadScore": null, "result": false, "approved": false, "roundDesc": "Round 1", "venueAndSubVenueDesc": "Townhead Park" } ], "standings": null } ] }

Este partido todavía no se ha jugado, así que los resultados están vacíos (null). Es un partido de copa, así que no hay clasificación ("standings": null).

Las partes principales

Nombre del campo

Qué significa

seasonID

La temporada que pediste.

seasonList

Todas las temporadas de tu liga, cada una con su ID y nombre.

matchHubDate

El día que estás viendo, escrito como 20261003. Muestra tbc para partidos sin fecha.

dateList

Todos los días de partido de la temporada (ver la tabla siguiente).

matchHubRecapContentText

El resumen escrito del día. Vacío si tu liga no usa resúmenes.

matchHubRecapLoadDateTime

Cuándo se escribió el resumen. Vacío si no hay ninguno.

fixtureGroupList

Los partidos del día, agrupados por división o ronda de copa.

Cada día de partido (en dateList)

Nombre del campo

Qué significa

matchHubDate

El día, escrito como 20261003, o tbc para partidos todavía sin fecha.

matchCount

Cuántos partidos de ese día todavía no se han jugado.

resultCount

Cuántos partidos de ese día tienen resultado.

liveResultCount

Cuántos partidos de ese día tienen resultado en directo. Solo se usa si tu liga tiene activados los resultados en directo.

Cada división o ronda de copa (en fixtureGroupList)

Nombre del campo

Qué significa

fixtureGroupDesc

Su nombre, por ejemplo "Premier Division" o "Scottish Gas Scottish Cup - Round 1".

fixtureGroupIdentifier

Su ID.

fixtureTypeID

De qué tipo es: 1 = división, 2 = copa, 4 = otro.

fixtures

Los partidos de ese grupo ese día (ver la tabla siguiente).

standings

Su clasificación. Vacío para copas y otros grupos.

Cada partido (en fixtures)

Estos campos usan exactamente los mismos nombres que las listas de partidos de los otros endpoints de la API de LeagueRepublic, como Get Fixtures For Season, así que tu desarrollador puede reutilizar el mismo código.

Nombre del campo

Qué significa

fixtureID

El ID del partido.

fixtureDate

Fecha y hora de inicio, escritas como 20261002 19:30.

fixtureDateInMilliseconds

La misma fecha y hora en un solo número. A los desarrolladores les resulta más fácil ordenar por este campo.

fixtureDateStatusID / fixtureDateStatusDesc

Si la fecha está fijada: 1 = "Normal / Scheduled" (programado), 2 = "To Be Confirmed" (por confirmar).

fixtureStatus / fixtureStatusDesc

Si el partido se va a jugar: 0 = "Normal", 2 = "Postponed" (aplazado).

homeTeam / roadTeam

Los IDs del equipo local y del visitante.

homeTeamName / roadTeamName

Los nombres del equipo local y del visitante.

homeScore / roadScore

El resultado. Viene como texto, así que también puede contener una letra, como "P" de aplazado (postponed). Vacío si no se ha jugado.

homeScoreNote / roadScoreNote

Una nota junto al resultado. Normalmente vacío.

additionalScore

Detalle extra del resultado, como "(HT 2-0)" (descanso) o "(Pens 4-5)" (penaltis).

result

true si el partido tiene resultado.

approved

true si la liga ha aprobado el resultado. Un resultado puede aparecer antes de ser aprobado.

noResultOutcome

true si el partido quedó registrado como sin resultado.

fixtureNote

Una nota sobre el partido, si la liga muestra alguna.

roundDesc

La ronda de copa, por ejemplo "Round 2" o "Final".

shortCode

Un código de una letra para el tipo de partido: L = liga, C = copa, O = otro.

venueAndSubVenueDesc

Dónde se juega, por ejemplo "Holm Park".

matchInsightsExist

true si hay una previa del partido en tu sitio web.

liveLastUpdated / liveSourceDesc

Para resultados en directo: cuándo cambió el resultado por última vez y de dónde vino. Vacío si no se usa.

gameGroups

Las partidas individuales dentro del encuentro, en deportes como dardos y billar (ver más abajo). Vacío en otros deportes.

innings

El resultado de cada entrada, cuarto o periodo (ver más abajo). Vacío en los deportes que no los usan.

homeScoreHits / roadScoreHits

Hits, para sóftbol y béisbol. Vienen como números simples.

homeScoreErrors / roadScoreErrors

Errores, para sóftbol y béisbol. Vienen como números simples.

Partidas dentro de un encuentro (dardos, billar y similares)

En algunos deportes, un encuentro se compone de partidas más pequeñas, como parejas e individuales en los dardos. Aquí tienes un ejemplo real de dardos, reducido:

"gameGroups": [ { "gameGroupDesc": "Pairs", "gameGroupDescShort": "PRS", "homeWinCount": 2, "roadWinCount": 1, "games": [ { "sequence": 1, "homeScoreLevel1": "2", "roadScoreLevel1": "0" }, { "sequence": 2, "homeScoreLevel1": "2", "roadScoreLevel1": "0" }, { "sequence": 3, "homeScoreLevel1": "0", "roadScoreLevel1": "2" } ] } ]

Nombre del campo

Qué significa

gameGroupDesc

El tipo de partida, por ejemplo "Pairs" (parejas) o "Singles" (individuales).

gameGroupDescShort

Una versión corta del nombre, por ejemplo "PRS".

homeWinCount / roadWinCount

Cuántas de estas partidas ganó cada lado.

games

Cada partida, en orden.

sequence

La posición de la partida en el orden: 1 es la primera, 2 la segunda, y así sucesivamente.

homeScoreLevel1 / roadScoreLevel1

El resultado de la partida, por ejemplo legs o frames ganados.

Los nombres de los jugadores no se incluyen aquí. Para obtenerlos, usa Get Full Fixture Details para ese partido.

Entradas, cuartos y periodos

Algunos deportes dividen un partido en entradas, cuartos o periodos. Cada uno aparece en orden. Aquí tienes un ejemplo real de baloncesto que llegó a la prórroga:

"innings": [ { "inningsNumber": 1, "homeScore": "13", "roadScore": "19", "overtime": false }, { "inningsNumber": 2, "homeScore": "26", "roadScore": "18", "overtime": false }, { "inningsNumber": 3, "homeScore": "9", "roadScore": "16", "overtime": false }, { "inningsNumber": 4, "homeScore": "22", "roadScore": "17", "overtime": false }, { "inningsNumber": 5, "homeScore": "6", "roadScore": "8", "overtime": true } ]

Nombre del campo

Qué significa

inningsNumber

Su posición en el partido: 1 es el primero, 2 el segundo, y así sucesivamente.

homeScore / roadScore

El resultado de cada lado en esa entrada, cuarto o periodo.

overtime

true si fue prórroga. Para mostrar "OT 1", "OT 2", cuenta las entradas de prórroga en orden.

La liga introduce por separado los resultados parciales y el resultado final, así que no siempre cuadran. Por ejemplo, un resultado adjudicado puede tener resultado final pero no parciales.

La clasificación (tabla)

Cada división incluye su clasificación. Es exactamente igual a la de Get Standings For Fixture Group, así que usa los mismos nombres de campos. Aquí tienes la parte de arriba de una clasificación real, reducida:

"standings": { "standingsDesc": "Premier Division", "standingsLines": [ { "position": "1", "teamID": 191899149, "teamName": "Arthurlie", "overallPlayed": 6, "overallWon": 5, "overallTied": 0, "overallLoss": 1, "overallScoreFor": 15, "overallScoreAgainst": 8, "scoreDifference": 7, "points": 15, "recentForm": "WLWWWW" } ] }

La línea de cada equipo tiene también las mismas cifras separadas en partidos en casa (nombres que empiezan por home) y partidos fuera (nombres que empiezan por road). Una clasificación en la que todos han jugado 0 partidos muestra ceros en todas partes. Es normal en una división que todavía no ha empezado.

Conviene saber

  • Los resultados aparecen enseguida. El Centro de Partidos muestra los resultados en cuanto se introducen, antes de que la liga los apruebe. Usa approved para distinguirlos.

  • Un día sin partidos muestra el día predeterminado. Si pides una fecha sin partidos, recibes el mismo día con el que se abriría tu página Centro de Partidos. Mira matchHubDate para saber qué día has recibido realmente.

  • Los partidos sin fecha van aparte. Los partidos marcados como "To Be Confirmed" solo aparecen cuando pides tbc, nunca en un día con fecha.

Si algo sale mal

Mensaje

Qué significa

Supplied seasonID is not numeric

El ID de la temporada tiene letras o símbolos. Debe tener solo números.

Season does not exist for supplied season ID

No existe ninguna temporada con ese ID. Comprueba que lo copiaste bien.

Supplied date is not valid, expected format yyyyMMdd or tbc

La fecha no está escrita como año, mes, día (por ejemplo 20261003), o no es una fecha real.

League is not authorised to access webservices

La liga no está en el plan Oro.

JSON api is disabled for league

La opción Activar JSON API no está marcada en tus Configuraciones API.

Rate limit exceeded

Más de 60 solicitudes en un minuto. Espera un minuto y vuelve a intentarlo.

Créala con un asistente de IA

No necesitas ser desarrollador para probar este endpoint. Asistentes de IA como ChatGPT o Claude pueden crear una página web sencilla con los datos de tu liga si les dices lo que quieres. Abajo tienes una petición lista para usar (llamada prompt) que puedes copiar y pegar.

Cómo usar el prompt

  1. Copia el prompt del recuadro gris.

  2. Rellena el ID de tu temporada. Sustituye [ID DE MI TEMPORADA] por tu número. Consulta "¿Cómo encuentro mis IDs?" al principio de este artículo.

  3. Añade un ejemplo real. Abre en tu navegador la dirección web del prompt, selecciona todo lo que aparece en la página y pégalo debajo del prompt, donde se indica. Así la IA ve tus datos reales, y es mucho más probable que acierte a la primera.

  4. Di qué aspecto quieres. Describe tus colores y estilo, o adjunta una captura de pantalla de tu sitio web o de un diseño que te guste (ChatGPT y Claude aceptan imágenes). Una imagen suele funcionar mejor. Si no dices nada, la IA elegirá un diseño sencillo.

  5. Pégalo todo en la IA y envíalo.

  6. Compara el resultado con el sitio web de tu liga. Si algo no está bien, dile a la IA qué falla con palabras sencillas, por ejemplo "los resultados están al revés". Lo corregirá.

Si la página que crea la IA no muestra datos, dile exactamente lo que ves. Puede que tenga que proponer otra forma de cargar los datos.

Prompt: una página del Centro de Partidos

Tengo una liga deportiva en LeagueRepublic. Créame una sola página web (un archivo HTML que pueda abrir en mi navegador) que muestre el centro de partidos de mi liga, usando la API JSON de LeagueRepublic.

Obtén los datos de esta dirección web: https://api.leaguerepublic.com/json/getMatchHub/[ID DE MI TEMPORADA].json

Para otro día, añade la fecha como año, mes, día, por ejemplo: https://api.leaguerepublic.com/json/getMatchHub/[ID DE MI TEMPORADA]/20261003.json

Usa "tbc" en lugar de una fecha para obtener los partidos que todavía no tienen fecha.

La página debe:

1. Mostrar arriba una fila de fechas en las que se pueda hacer clic, creada a partir de "dateList". Cada fecha muestra cuántos partidos ("matchCount") y resultados ("resultCount") tiene. Al hacer clic en una fecha se carga ese día. Cuando se abra la página, desplaza la fila de fechas para que se vea el día que se está mostrando.

2. Mostrar los partidos del día agrupados bajo el nombre de la división o la copa. Los grupos están en "fixtureGroupList", y el nombre de cada grupo es "fixtureGroupDesc".

3. Para cada partido de "fixtures", mostrar la hora de inicio a partir de "fixtureDate", el equipo local ("homeTeamName"), el resultado ("homeScore" y "roadScore") y el equipo visitante ("roadTeamName"). "Road" significa visitante.

4. Si un partido todavía no tiene resultado, mostrar la hora de inicio en su lugar. Si un partido tiene resultado pero "approved" es false, mostrar al lado una pequeña etiqueta de "provisional".

5. Debajo de cada división, mostrar su clasificación a partir de "standings" > "standingsLines": posición ("position"), equipo ("teamName"), jugados ("overallPlayed"), ganados ("overallWon"), empatados ("overallTied"), perdidos ("overallLoss"), diferencia ("scoreDifference") y puntos ("points"). Las copas no tienen clasificación.

6. Mostrar los valores vacíos (null) en blanco. No mostrar nunca la palabra "null".

7. No obtener los datos más de una vez por minuto. La API permite 60 solicitudes por minuto.

Mantén un diseño limpio y fácil de leer en el móvil. Explícame con pasos sencillos cómo abrir y usar el archivo. Pregúntame si algo no está claro.

Diseño: [DESCRIBE EL ASPECTO QUE QUIERES O ADJUNTA UNA CAPTURA DE PANTALLA]

Aquí tienes un ejemplo de lo que devuelve la dirección web: [PEGA EL EJEMPLO AQUÍ]

¿Ha quedado contestada tu pregunta?