Начало работы

JSON-API только для чтения по тем же данным, на которых работает сайт: карты, колоды, турниры и результаты игроков.

Без API-ключа. Все эндпоинты публичные: ни аутентификации, ни токена, ни регистрации.

Каждый запрос — это GET. Все параметры передаются в строке запроса.

Базовый URL
https://cardsrealm.com/ru-ru/api/

Языковой сегмент — часть пути; он задаёт язык названий карт и остального переведённого текста. Подходит любая локаль, которую обслуживает сайт.

Выбор игры. Два способа с одинаковым результатом: обратиться к поддомену самой игры или передать параметр game_id. Без того и другого вы получите игру того домена, к которому обратились.

Пример запроса
curl "https://cardsrealm.com/en-us/api/getRecentDecks?game_id=1&limit=2"
Цены — целые числа в центах. Значение price 77 с currency_prefix $ означает 0,77. Делите на 100 перед показом.
Разумное использование. Сейчас жёсткий лимит запросов не применяется, поэтому будьте разумны: кэшируйте что можете и предпочитайте один постраничный запрос множеству мелких. Именно злоупотребление превращает открытый API в закрытый.

cardinfo

GET/ru-ru/api/cardinfo

Всё, что сайт знает о карте, найденной по названию: текст, мана-стоимость, редкость, издания и текущие цены.

ПараметрТипШаблонПримечания
cardnamestringPath to exileДо 50 символов.
currencystringвалюта локалиТри буквы.
game_idintигра домена1 = Magic, 2 = Yu-Gi-Oh, 3 = Pokémon, 4 = Runeterra.
language_codestringязык путиЯзык возвращаемого названия и текста карты.
Пример запроса
curl "https://cardsrealm.com/ru-ru/api/cardinfo?cardname=Lightning%20Bolt&currency=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

GET/ru-ru/api/getRecentDecks

Самые недавно опубликованные колоды, начиная с новых.

ПараметрТипШаблонПримечания
pageint1Номер страницы.
limitint50Колод на страницу. Предел — 500; выше запрос возвращает ошибку.
game_idint1То же, что в cardinfo.
Пример запроса
curl "https://cardsrealm.com/ru-ru/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

GET/ru-ru/api/getDeckByID

Полный декстрок. Список карт находится в ключе cards: количество, board (main или side) и цена за карту.

ПараметрТипШаблонПримечания
deck_idint0Числовой id колоды.
currencystringBRLТри буквы.
Пример запроса
curl "https://cardsrealm.com/ru-ru/api/getDeckByID?deck_id=374859&currency=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
    }
  ]
}
Несуществующий deck_id возвращает 200 и почти пустой объект, а не ошибку. Проверьте наличие deck_title, прежде чем использовать остальное.

getDeckResults

GET/ru-ru/api/getDeckResults

Как выступает архетип: общая статистика и разбивка by_meta по результатам против каждого другого архетипа.

ПараметрТипШаблонПримечания
deck_namestringпустоНазвание архетипа, до 40 символов.
weekint4На сколько недель назад. Предел — 52.
formatstringStandardДо 20 символов.
game_idint1То же, что в cardinfo.
Пример запроса
curl "https://cardsrealm.com/ru-ru/api/getDeckResults?deck_name=Grixis%20Affinity&format=Pauper&week=8"

getPlayerResults

GET/ru-ru/api/getPlayerResults

Статистика игрока с разбивкой by_meta по каждому архетипу.

ПараметрТипШаблонПримечания
player_namestringпустоДо 40 символов.
weekint52На сколько недель назад.
player_platformstringcardsrealm_nicknameПо какому имени вы ищете. Одно из cardsrealm_nickname, mtgo, arena, riot или display. Любое другое значение вернёт ошибку.
Пример запроса
curl "https://cardsrealm.com/ru-ru/api/getPlayerResults?player_name=Carrubs&player_platform=mtgo"

getPastTournaments

GET/ru-ru/api/getPastTournaments

Уже прошедшие турниры, начиная с недавних.

ПараметрТипШаблонПримечания
pageint1Номер страницы.
formatstringпустоДо 20 символов. Пусто — значит все форматы.
game_idint1То же, что в cardinfo.
Пример запроса
curl "https://cardsrealm.com/ru-ru/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

GET/ru-ru/api/getTournamentInfo

Турнир целиком: событие, его раунды в round_info и итоговая таблица в standings. Несуществующий id возвращает пустой список, а не ошибку.

ПараметрТипШаблонПримечания
tournament_idint1Числовой id турнира.
Пример запроса
curl "https://cardsrealm.com/ru-ru/api/getTournamentInfo?tournament_id=810845"

getUserTournaments

GET/ru-ru/api/getUserTournaments

Турниры, организованные одним аккаунтом.

ПараметрТипШаблонПримечания
nicknamestringCards RealmДо 30 символов.
Пример запроса
curl "https://cardsrealm.com/ru-ru/api/getUserTournaments?nickname=leon-diniz"

Ошибки и поддержка

КодЗначение
200Успех. Тело ответа всегда JSON.
404Запрос отклонён. Тело — строка JSON с описанием ошибки: слишком длинное имя, не числовое значение там, где нужно число, или значение вне допустимого списка.

Вопросы или нужное поле, которого здесь нет? Напишите нам в Discord. Discord