시작하기

사이트와 동일한 데이터를 읽기 전용으로 제공하는 JSON API입니다. 카드, 덱, 토너먼트, 플레이어 전적을 다룹니다.

API 키가 필요 없습니다. 모든 엔드포인트는 공개되어 있으며 인증, 토큰, 가입이 필요 없습니다.

GET이든 POST든 되고, 매개변수는 쿼리 문자열이나 본문 어느 쪽으로도 보낼 수 있습니다. 아래의 매개변수 보내기를 참고하세요.

기본 URL
https://cardsrealm.com/ko-kr/api/

언어 구간은 경로의 일부이며 카드 이름과 그 밖의 번역된 텍스트의 언어를 결정합니다. 사이트가 지원하는 로케일이면 무엇이든 사용할 수 있습니다.

게임 선택. 두 가지 방법이 있고 결과는 같습니다. 해당 게임의 서브도메인을 호출하거나 game_id 파라미터를 전달하면 됩니다. 둘 다 없으면 호출한 도메인의 게임이 적용됩니다.

요청 예시
curl "https://cardsrealm.com/en-us/api/getRecentDecks?game_id=1&limit=2"
가격은 센트 단위의 정수입니다. price 가 77 이고 currency_prefix 가 $ 이면 0.77 입니다. 표시하기 전에 100 으로 나누세요.
적정 사용. 현재 강제되는 요청 제한은 없습니다. 상식선에서 이용해 주세요. 캐시할 수 있는 것은 캐시하고, 작은 요청을 여러 번 보내기보다 페이지 단위 요청을 사용해 주세요. 열린 API를 닫게 만드는 것은 남용입니다.

매개변수 보내기

모든 엔드포인트가 GET과 POST 모두에 응답하며, 아래 형식 중 편한 것에서 매개변수를 읽습니다. 응답은 같습니다.

보내는 방법Content-Type
쿼리 문자열 (GET 또는 POST)
단순 폼application/x-www-form-urlencoded
멀티파트 폼multipart/form-data
JSONapplication/json
같은 호출, 세 가지 방법
curl "https://cardsrealm.com/ko-kr/api/getRecentDecks?game_id=1&limit=2"

curl -X POST "https://cardsrealm.com/ko-kr/api/getRecentDecks" \
     -d "game_id=1" -d "limit=2"

curl -X POST "https://cardsrealm.com/ko-kr/api/getRecentDecks" \
     -H "Content-Type: application/json" \
     -d '{"game_id": 1, "limit": 2}'
숫자는 숫자로 보내도 됩니다. 폼에서는 모든 값이 문자열로 도착하지만, JSON에서는 "1" 대신 1을 보내도 됩니다. 어디서든 둘 다 받습니다.
Content-Type 헤더를 직접 설정하지 마세요 Postman, Insomnia 또는 HTTP 라이브러리에서요. 도구가 쓰게 두세요. 멀티파트에서는 boundary가 포함돼야 하고, 본문과 맞지 않는 Content-Type은 모든 필드를 비어 있게 만듭니다. 그때의 응답은 필드가 아니라 봉투에 대한 400입니다:
응답
{
  "error": "요청 본문의 필드를 읽지 못했습니다. form-data, x-www-form-urlencoded 또는 JSON으로 보내주세요.",
  "hint": "Postman이나 Insomnia를 쓴다면 Content-Type 헤더를 지우고 도구가 생성하도록 두세요."
}
브라우저에서 호출할 수 있습니다. 자신의 도메인에 있는 페이지에서 브라우저로 직접 호출할 수 있습니다. 쿠키나 자격 증명은 읽지 않습니다.

cardinfo

GET/ko-kr/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/ko-kr/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/ko-kr/api/getRecentDecks

가장 최근에 공개된 덱을 최신순으로 제공합니다.

파라미터유형무늬메모
pageint1페이지 번호.
limitint50페이지당 덱 수. 상한은 500 이며, 초과하면 오류를 반환합니다.
game_idint1cardinfo 와 동일합니다.
요청 예시
curl "https://cardsrealm.com/ko-kr/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/ko-kr/api/getDeckByID

덱 리스트 전체. 카드 목록은 cards 키에 담기며 수량, board(main 또는 side), 카드별 가격을 포함합니다.

파라미터유형무늬메모
deck_idint0덱의 숫자 id.
currencystringBRL세 글자.
요청 예시
curl "https://cardsrealm.com/ko-kr/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/ko-kr/api/getDeckResults

아키타입의 성적. 전체 전적과 함께 다른 각 아키타입 상대 전적을 by_meta 로 제공합니다.

파라미터유형무늬메모
deck_namestring비어 있음아키타입 이름. 최대 40자.
weekint4몇 주 전까지. 상한은 52 입니다.
formatstringStandard최대 20자.
game_idint1cardinfo 와 동일합니다.
요청 예시
curl "https://cardsrealm.com/ko-kr/api/getDeckResults?deck_name=Grixis%20Affinity&format=Pauper&week=8"

getPlayerResults

GET/ko-kr/api/getPlayerResults

플레이어의 전적. by_meta 로 각 아키타입별 상세 내역도 제공합니다.

파라미터유형무늬메모
player_namestring비어 있음최대 40자.
weekint52몇 주 전까지.
player_platformstringcardsrealm_nickname어떤 이름으로 검색할지. cardsrealm_nickname, mtgo, arena, riot, display 중 하나입니다. 그 외의 값은 오류를 반환합니다.
요청 예시
curl "https://cardsrealm.com/ko-kr/api/getPlayerResults?player_name=Carrubs&player_platform=mtgo"

getPastTournaments

GET/ko-kr/api/getPastTournaments

이미 열린 토너먼트를 최신순으로 제공합니다.

파라미터유형무늬메모
pageint1페이지 번호.
formatstring비어 있음최대 20자. 비워 두면 모든 포맷을 의미합니다.
game_idint1cardinfo 와 동일합니다.
요청 예시
curl "https://cardsrealm.com/ko-kr/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/ko-kr/api/getTournamentInfo

토너먼트 전체 정보. 대회 자체와 함께 각 라운드는 round_info, 최종 순위는 standings 로 제공합니다. 없는 id 는 오류가 아니라 빈 목록을 반환합니다.

파라미터유형무늬메모
tournament_idint1토너먼트의 숫자 id.
요청 예시
curl "https://cardsrealm.com/ko-kr/api/getTournamentInfo?tournament_id=810845"

getUserTournaments

GET/ko-kr/api/getUserTournaments

한 계정이 주최한 토너먼트.

파라미터유형무늬메모
nicknamestringCards Realm최대 30자.
요청 예시
curl "https://cardsrealm.com/ko-kr/api/getUserTournaments?nickname=leon-diniz"

오류와 지원

암호의미
200성공. 본문은 항상 JSON 입니다.
400호출이 거부되었습니다. 너무 긴 이름, 숫자가 아닌 숫자, 허용 목록 밖의 값, 또는 읽을 수 없는 본문 때문입니다.
500저희 쪽에서 문제가 생겼습니다. 알려주시면 좋겠습니다.

거부된 호출은 400과 객체로 응답합니다. invalid_fields는 살펴볼 매개변수를 알려주며, 문제가 특정 필드가 아닐 때는 없습니다.

응답
{
  "error": "주는 숫자여야 합니다",
  "invalid_fields": ["week"]
}
이 부분은 2026년 9월 8일에 바뀌었습니다. 예전에는 거부된 호출이 404와 문자열 하나만 반환했습니다. 메시지는 같지만, 상태 코드와 봉투는 다릅니다. 변경 내역

궁금한 점이나 여기에 없는 필드가 필요하신가요? Discord 로 알려 주세요. Discord