Primeros pasos

Una API JSON de solo lectura sobre los mismos datos que alimentan el sitio: cartas, mazos, torneos y resultados de jugadores.

Sin clave de API. Todos los endpoints son públicos y no requieren autenticación, token ni registro.

Toda petición es un GET. Todos los parámetros van en la query string.

URL base
https://cardsrealm.com/es-hn/api/

El segmento de idioma forma parte de la ruta y decide el idioma de los nombres de carta y del resto del texto traducido. Sirve cualquier locale que el sitio atienda.

Elegir el juego. Dos caminos, y hacen lo mismo: llamar al subdominio del propio juego, o pasar el parámetro game_id. Sin ninguno de los dos, recibes el juego del dominio que llamaste.

Ejemplo de petición
curl "https://cardsrealm.com/en-us/api/getRecentDecks?game_id=1&limit=2"
Los precios son enteros en céntimos. Un price de 77 con currency_prefix $ significa 0,77. Divide entre 100 antes de mostrarlo.
Uso razonable. Hoy no se aplica ningún límite estricto de peticiones, así que sé razonable: cachea lo que puedas y prefiere una petición paginada a muchas pequeñas. El abuso es lo que convierte una API abierta en cerrada.

cardinfo

GET/es-hn/api/cardinfo

Todo lo que el sitio sabe sobre una carta, buscada por nombre: texto, coste de maná, rareza, ediciones y precios actuales.

ParámetroTipoDefectoNotas
cardnamestringPath to exileHasta 50 caracteres.
currencystringmoneda del localeTres letras.
game_idintjuego del dominio1 = Magic, 2 = Yu-Gi-Oh, 3 = Pokémon, 4 = Runeterra.
language_codestringidioma de la rutaIdioma del nombre y del texto de la carta devueltos.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/cardinfo?cardname=Lightning%20Bolt&currency=USD"
Ejemplo de respuesta
{
  "name_of_card": "Lightning Bolt",
  "name_ing": "Lightning Bolt",
  "type_of_card": "Instant",
  "text_of_card": "Lightning Bolt deals 3 damage to any target.",
  "price": 77,
  "currency_prefix": "$",
  "path_of_card": "oj7-lightning-bolt",
  "card_url": "https://mtg.cardsrealm.com/en-us/card/lightning-bolt"
}

getRecentDecks

GET/es-hn/api/getRecentDecks

Los mazos publicados más recientemente, del más nuevo al más antiguo.

ParámetroTipoDefectoNotas
pageint1Número de página.
limitint50Mazos por página. El tope es 500; por encima de eso la llamada devuelve error.
game_idint1Lo mismo que en cardinfo.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/getRecentDecks?page=1&limit=2"
Ejemplo de respuesta
[
  {
    "deck_id": 374859,
    "deck_title": "Attack of the myrs",
    "deck_owner": "jarrod long",
    "deck_format_name": "Commander",
    "deck_colours": "B G R U W",
    "total_cards": 100,
    "deck_url": "https://cardsrealm.com/decks/en-us/l8dh-attack-of-the-myrs"
  }
]

getDeckByID

GET/es-hn/api/getDeckByID

Una lista de mazo completa. La lista de cartas viene en la clave cards, con cantidad, board (main o side) y precio por carta.

ParámetroTipoDefectoNotas
deck_idint0El id numérico del mazo.
currencystringBRLTres letras.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/getDeckByID?deck_id=374859&currency=USD"
Ejemplo de respuesta
{
  "deck_title": "Attack of the myrs",
  "user_name": "jarrod long",
  "tour_type_name": "Commander",
  "deck_quantity_main": 99,
  "deck_quantity_side": 1,
  "cards": [
    {
      "name_ing": "Command Tower",
      "deck_quantity": 1,
      "deck_sideboard": 0,
      "card_price_total": 18
    }
  ]
}
Un deck_id inexistente responde 200 con un objeto casi vacío, no un error. Comprueba que deck_title esté presente antes de usar el resto.

getDeckResults

GET/es-hn/api/getDeckResults

Cómo viene rindiendo un arquetipo: historial general, más un desglose by_meta de sus resultados frente a cada otro arquetipo.

ParámetroTipoDefectoNotas
deck_namestringvacíoNombre del arquetipo, hasta 40 caracteres.
weekint4Cuántas semanas hacia atrás. El tope es 52.
formatstringStandardHasta 20 caracteres.
game_idint1Lo mismo que en cardinfo.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/getDeckResults?deck_name=Grixis%20Affinity&format=Pauper&week=8"

getPlayerResults

GET/es-hn/api/getPlayerResults

El historial de un jugador, con un desglose by_meta de cómo le fue con cada arquetipo.

ParámetroTipoDefectoNotas
player_namestringvacíoHasta 40 caracteres.
weekint52Cuántas semanas hacia atrás.
player_platformstringcardsrealm_nicknamePor qué nombre estás buscando. Uno entre cardsrealm_nickname, mtgo, arena, riot o display. Cualquier otro devuelve error.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/getPlayerResults?player_name=Carrubs&player_platform=mtgo"

getPastTournaments

GET/es-hn/api/getPastTournaments

Torneos que ya ocurrieron, del más reciente al más antiguo.

ParámetroTipoDefectoNotas
pageint1Número de página.
formatstringvacíoHasta 20 caracteres. Vacío significa todos los formatos.
game_idint1Lo mismo que en cardinfo.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/getPastTournaments?format=Pauper&page=1"
Ejemplo de respuesta
[
  {
    "tournament_id": 810845,
    "tournament_name": "Domingooouuu Pauper 86",
    "tournament_path": "https://cardsrealm.com/tournament/en-us/1k3c9-domingooouuu-pauper-86",
    "format_name": "Pauper",
    "game_name": "Magic: the Gathering",
    "datetime_utc": "Sun, 16 Aug 2026 16:30:00 GMT"
  }
]

getTournamentInfo

GET/es-hn/api/getTournamentInfo

Un torneo completo: el evento, sus rondas en round_info y la tabla final en standings. Un id inexistente devuelve una lista vacía, no un error.

ParámetroTipoDefectoNotas
tournament_idint1El id numérico del torneo.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/getTournamentInfo?tournament_id=810845"

getUserTournaments

GET/es-hn/api/getUserTournaments

Los torneos organizados por una cuenta.

ParámetroTipoDefectoNotas
nicknamestringCards RealmHasta 30 caracteres.
Ejemplo de petición
curl "https://cardsrealm.com/es-hn/api/getUserTournaments?nickname=leon-diniz"

Errores y soporte

CódigoSignificado
200Éxito. El cuerpo siempre es JSON.
404La llamada fue rechazada. El cuerpo es una cadena JSON que dice qué estaba mal: un nombre demasiado largo, un número que no es número, o un valor fuera de la lista aceptada.

¿Dudas, o un campo que necesitas y no está aquí? Habla con nosotros en el Discord. Discord