Cards Realm API
Per iniziare
Una API JSON di sola lettura sugli stessi dati che alimentano il sito: carte, mazzi, tornei e risultati dei giocatori.
Nessuna chiave API. Ogni endpoint è pubblico e non richiede autenticazione, token né registrazione.
GET o POST, e i parametri possono viaggiare nella query string o nel corpo. Vedi Invio dei parametri, più sotto.
https://cardsrealm.com/it-it/api/
Il segmento di lingua fa parte del percorso e decide la lingua dei nomi delle carte e degli altri testi tradotti. Vale qualsiasi locale servito dal sito.
Scegliere il gioco. Due modi, con lo stesso risultato: chiamare il sottodominio del gioco, oppure passare il parametro game_id. Senza nessuno dei due, ottieni il gioco del dominio che hai chiamato.
curl "https://cardsrealm.com/en-us/api/getRecentDecks?game_id=1&limit=2"
Invio dei parametri
Ogni endpoint risponde sia a GET sia a POST e legge i parametri da quello che ti risulta più comodo. La risposta è la stessa.
| Come lo invii | Content-Type |
|---|---|
| Query string (GET o POST) | — |
| Modulo semplice | application/x-www-form-urlencoded |
| Modulo multipart | multipart/form-data |
| JSON | application/json |
curl "https://cardsrealm.com/it-it/api/getRecentDecks?game_id=1&limit=2"
curl -X POST "https://cardsrealm.com/it-it/api/getRecentDecks" \
-d "game_id=1" -d "limit=2"
curl -X POST "https://cardsrealm.com/it-it/api/getRecentDecks" \
-H "Content-Type: application/json" \
-d '{"game_id": 1, "limit": 2}'{
"error": "Non è stato possibile leggere i campi del corpo della richiesta. Inviali come form-data, x-www-form-urlencoded o JSON.",
"hint": "Se usi Postman o Insomnia, cancella l'intestazione Content-Type e lascia che sia lo strumento a generarla."
}cardinfo
Tutto ciò che il sito sa di una carta, cercata per nome: testo, costo di mana, rarità, edizioni e prezzi attuali.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
cardname | string | Path to exile | Fino a 50 caratteri. |
currency | string | valuta del locale | Tre lettere. |
game_id | int | gioco del dominio | 1 = Magic, 2 = Yu-Gi-Oh, 3 = Pokémon, 4 = Runeterra. |
language_code | string | lingua del percorso | Lingua del nome e del testo della carta restituiti. |
curl "https://cardsrealm.com/it-it/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"
}getCardsInfo
Nome, immagine, retro e tipo di più carte in una sola chiamata. È ciò che dà cardinfo, senza prezzi né edizioni, per un'intera lista di mazzo.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
cards | string | necessario | Nomi delle carte in inglese separati da |. Fino a 250 nomi, ognuno di massimo 100 caratteri. Senza questo parametro la chiamata risponde 400. |
game_id | int | gioco del dominio | Come in cardinfo. |
language_code | string | lingua del percorso | Lingua del nome e dell'immagine restituiti. |
curl "https://cardsrealm.com/it-it/api/getCardsInfo?cards=Lightning%20Bolt%7CSol%20Ring"
[
{
"name_ing": "Lightning Bolt",
"name_of_card": "Lightning Bolt",
"image_of_card": "https://cdn.cardsrealm.com/images/cartas/clu-ravnica-clue-edition/EN/med/lightning-bolt-141.png?5541",
"back_of_card": "",
"type_of_card": "Instant"
},
{
"name_ing": "Sol Ring",
"name_of_card": "Sol Ring",
"image_of_card": "https://cdn.cardsrealm.com/images/cartas/sld-secret-lair-drop/EN/med/sol-ring-2063.png?7315",
"back_of_card": "",
"type_of_card": "Artifact"
}
]getCardsRelated
Le carte che una lista di carte porta con sé: le pedine che creano, l'emblema, la carta che evocano. Pensato per chi ha una decklist e deve sapere quali pedine richiede quel mazzo, con una sola chiamata per l'intero mazzo.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
cards | string | necessario | Nomi delle carte in inglese separati da |. Fino a 250 nomi, ognuno di massimo 100 caratteri. Senza questo parametro la chiamata risponde 400. |
game_id | int | gioco del dominio | Come in cardinfo. |
language_code | string | lingua del percorso | Lingua del nome e del testo della carta restituiti. |
curl "https://cardsrealm.com/it-it/api/getCardsRelated?cards=Young%20Pyromancer%7CLingering%20Souls"
[
{
"card_id": 20194,
"name_of_card": "Elemental Token",
"name_ing": "Elemental Token",
"image_of_card": "https://cdn.cardsrealm.com/images/cartas/tdsc-duskmourn-commander-tokens/EN/med/elemental-token-9.png?1457",
"back_of_card": "https://cdn.cardsrealm.com/images/cartas/tust-unstable-tokens/en/back/elemental-token-11.png?3508",
"type_of_card": "Token creature — elemental",
"set_name": "Duskmourn: House of Horror Commander Tokens",
"related_to": "Young Pyromancer"
}
]getCardArts
Tutte le illustrazioni (stampe) di una carta, dalla più recente: lo stesso elenco di edizioni che mostra la pagina della carta, qui però cercato per nome invece che per card_id. Pensato per chi ha in mano solo una lista di mazzo, come il tavolo di play.cardsrealm.com, dove il giocatore cambia l'illustrazione di una carta durante la partita.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
cardname | string | necessario | Nome della carta, in inglese o nella lingua di language_code. Fino a 100 caratteri. Senza di esso la chiamata risponde 400. |
game_id | int | gioco del dominio | Come in cardinfo. |
language_code | string | lingua del percorso | Lingua del nome e dell'immagine restituiti. |
curl "https://cardsrealm.com/it-it/api/getCardArts?cardname=Lightning%20Bolt"
[
{
"card_set_id": 9525351,
"print_name": "Secret Lair Drop",
"set_rarity": 2,
"set_number": "2579",
"set_artist": "Jessica Fong",
"name_ing": "Lightning Bolt",
"name_of_card": "Lightning Bolt",
"image_of_card": "https://cdn.cardsrealm.com/images/cartas/sld-secret-lair-drop/EN/med/lightning-bolt-2579.png?2214",
"back_of_card": ""
}
]getDeckByPath
Lo stesso mazzo di getDeckByID, trovato dal percorso del link, per chi ha il link e non l'id.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
deck_path | string | necessario | Va nell'URL, non nella query string. È la parte dopo /decks/ nel link: mkh-sidar. |
currency | string | BRL | Tre lettere. |
curl "https://cardsrealm.com/it-it/api/getDeckByPath/mkh-sidar"
getRecentDecks
I mazzi pubblicati più di recente, dal più nuovo al più vecchio.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
page | int | 1 | Numero di pagina. |
limit | int | 50 | Mazzi per pagina. Il tetto è 500; oltre, la chiamata restituisce un errore. |
game_id | int | 1 | Come in cardinfo. |
curl "https://cardsrealm.com/it-it/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
Una decklist completa. L'elenco delle carte si trova nella chiave cards, con quantità, board (main o side) e prezzo per carta.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
deck_id | int | 0 | L'id numerico del mazzo. |
currency | string | BRL | Tre lettere. |
curl "https://cardsrealm.com/it-it/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
Come sta andando un archetipo: bilancio complessivo, più un dettaglio by_meta dei risultati contro ogni altro archetipo.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
deck_name | string | vuoto | Nome dell'archetipo, fino a 40 caratteri. |
week | int | 4 | Quante settimane indietro. Il tetto è 52. |
format | string | Standard | Fino a 20 caratteri. |
game_id | int | 1 | Come in cardinfo. |
curl "https://cardsrealm.com/it-it/api/getDeckResults?deck_name=Grixis%20Affinity&format=Pauper&week=8"
getPlayerResults
Lo storico di un giocatore, con un dettaglio by_meta dei suoi risultati con ogni archetipo.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
player_name | string | vuoto | Fino a 40 caratteri. |
week | int | 52 | Quante settimane indietro. |
player_platform | string | cardsrealm_nickname | Con quale nome stai cercando. Uno tra cardsrealm_nickname, mtgo, arena, riot o display. Qualsiasi altro restituisce un errore. |
curl "https://cardsrealm.com/it-it/api/getPlayerResults?player_name=Carrubs&player_platform=mtgo"
getPastTournaments
Tornei già svolti, dal più recente al più vecchio.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
page | int | 1 | Numero di pagina. |
format | string | vuoto | Fino a 20 caratteri. Vuoto significa tutti i formati. |
game_id | int | 1 | Come in cardinfo. |
curl "https://cardsrealm.com/it-it/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
Un torneo completo: l'evento, i suoi turni in round_info e la classifica finale in standings. Un id inesistente restituisce una lista vuota, non un errore.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
tournament_id | int | 1 | L'id numerico del torneo. |
curl "https://cardsrealm.com/it-it/api/getTournamentInfo?tournament_id=810845"
getUserTournaments
I tornei organizzati da un account.
| Parametro | Tipo | Predefinito | Note |
|---|---|---|---|
nickname | string | Cards Realm | Fino a 30 caratteri. |
curl "https://cardsrealm.com/it-it/api/getUserTournaments?nickname=leon-diniz"
Errori e supporto
| Codice | Senso |
|---|---|
200 | Successo. Il corpo è sempre JSON. |
400 | La chiamata è stata rifiutata: un nome troppo lungo, un numero che non è un numero, un valore fuori dall'elenco accettato, o un corpo illeggibile. |
500 | Qualcosa si è rotto dalla nostra parte. Vale la pena segnalarcelo. |
Una chiamata rifiutata risponde 400 con un oggetto. invalid_fields indica i parametri da guardare, ed è assente quando il problema non è un campo specifico.
{
"error": "La settimana deve essere un numero",
"invalid_fields": ["week"]
}Domande, o un campo che ti serve e non c'è? Scrivici sul Discord. Discord