Cards Realm API
Primeiros passos
Uma API JSON somente de leitura sobre os mesmos dados que alimentam o site: cartas, decks, torneios e resultados de jogadores.
Sem chave de API. Todo endpoint é público e não exige autenticação, token nem cadastro.
Toda requisição é um GET. Todo parâmetro vai na query string.
https://cardsrealm.com/pt-pt/api/
O trecho de idioma faz parte do caminho e decide o idioma dos nomes de carta e do restante do texto traduzido. Vale qualquer locale que o site atenda.
Escolhendo o jogo. Dois caminhos, e fazem a mesma coisa: chamar o subdomínio do próprio jogo, ou passar o parâmetro game_id. Sem nenhum dos dois, você recebe o jogo do domínio que chamou.
curl "https://cardsrealm.com/en-us/api/getRecentDecks?game_id=1&limit=2"
cardinfo
Tudo que o site sabe sobre uma carta, buscada pelo nome: texto, custo de mana, raridade, edições e preços atuais.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
cardname | string | Path to exile | Até 50 caracteres. |
currency | string | moeda do locale | Três letras. |
game_id | int | jogo do domínio | 1 = Magic, 2 = Yu-Gi-Oh, 3 = Pokémon, 4 = Runeterra. |
language_code | string | idioma do caminho | Idioma do nome e do texto da carta retornados. |
curl "https://cardsrealm.com/pt-pt/api/cardinfo?cardname=Lightning%20Bolt¤cy=USD"
{
"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
Os decks publicados mais recentemente, do mais novo para o mais antigo.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
page | int | 1 | Número da página. |
limit | int | 50 | Decks por página. O teto é 500; acima disso a chamada devolve erro. |
game_id | int | 1 | O mesmo de cardinfo. |
curl "https://cardsrealm.com/pt-pt/api/getRecentDecks?page=1&limit=2"
[
{
"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
Uma decklist completa. A lista de cartas vem na chave cards, com quantidade, board (main ou side) e preço por carta.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
deck_id | int | 0 | O id numérico do deck. |
currency | string | BRL | Três letras. |
curl "https://cardsrealm.com/pt-pt/api/getDeckByID?deck_id=374859¤cy=USD"
{
"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
}
]
}getDeckResults
Como um arquétipo vem se saindo: retrospecto geral, mais um detalhamento by_meta dos resultados dele contra cada outro arquétipo.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
deck_name | string | vazio | Nome do arquétipo, até 40 caracteres. |
week | int | 4 | Quantas semanas para trás. O teto é 52. |
format | string | Standard | Até 20 caracteres. |
game_id | int | 1 | O mesmo de cardinfo. |
curl "https://cardsrealm.com/pt-pt/api/getDeckResults?deck_name=Grixis%20Affinity&format=Pauper&week=8"
getPlayerResults
O retrospecto de um jogador, com um detalhamento by_meta de como ele foi com cada arquétipo.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
player_name | string | vazio | Até 40 caracteres. |
week | int | 52 | Quantas semanas para trás. |
player_platform | string | cardsrealm_nickname | Por qual nome você está buscando. Um entre cardsrealm_nickname, mtgo, arena, riot ou display. Qualquer outro devolve erro. |
curl "https://cardsrealm.com/pt-pt/api/getPlayerResults?player_name=Carrubs&player_platform=mtgo"
getPastTournaments
Torneios que já aconteceram, do mais recente para o mais antigo.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
page | int | 1 | Número da página. |
format | string | vazio | Até 20 caracteres. Vazio significa todos os formatos. |
game_id | int | 1 | O mesmo de cardinfo. |
curl "https://cardsrealm.com/pt-pt/api/getPastTournaments?format=Pauper&page=1"
[
{
"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
Um torneio completo: o evento, as rodadas em round_info e a tabela final em standings. Um id inexistente devolve uma lista vazia, e não um erro.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
tournament_id | int | 1 | O id numérico do torneio. |
curl "https://cardsrealm.com/pt-pt/api/getTournamentInfo?tournament_id=810845"
getUserTournaments
Os torneios organizados por uma conta.
| Parâmetro | Tipo | Padrão | Notas |
|---|---|---|---|
nickname | string | Cards Realm | Até 30 caracteres. |
curl "https://cardsrealm.com/pt-pt/api/getUserTournaments?nickname=leon-diniz"
Erros e suporte
| Código | Significado |
|---|---|
200 | Sucesso. O corpo é sempre JSON. |
404 | A chamada foi recusada. O corpo é uma string JSON dizendo o que estava errado: um nome longo demais, um número que não é número, ou um valor fora da lista aceita. |
Dúvidas, ou um campo de que você precisa e não está aqui? Fale com a gente no Discord. Discord