Cards Realm API
快速开始
一个只读的 JSON API,数据与网站本身相同:卡牌、套牌、赛事和选手战绩。
无需 API 密钥。 所有接口均为公开,无需认证、令牌或注册。
GET 或 POST 均可,参数可以放在查询字符串里,也可以放在请求体里。 参见下方的“发送参数”。
https://cardsrealm.com/zh-mo/api/
语言段是路径的一部分,决定卡牌名称及其他译文的语言。网站支持的任何 locale 都可以使用。
选择游戏。 两种方式,效果相同:调用该游戏自己的子域名,或传入 game_id 参数。两者都不用时,返回你所调用域名对应的游戏。
curl "https://cardsrealm.com/en-us/api/getRecentDecks?game_id=1&limit=2"
发送参数
每个端点都同时响应 GET 和 POST,并从下列任一种方式中读取参数,哪种方便就用哪种。响应完全相同。
| 发送方式 | Content-Type |
|---|---|
| 查询字符串(GET 或 POST) | — |
| 简单表单 | application/x-www-form-urlencoded |
| 多部分表单 | multipart/form-data |
| JSON | application/json |
curl "https://cardsrealm.com/zh-mo/api/getRecentDecks?game_id=1&limit=2"
curl -X POST "https://cardsrealm.com/zh-mo/api/getRecentDecks" \
-d "game_id=1" -d "limit=2"
curl -X POST "https://cardsrealm.com/zh-mo/api/getRecentDecks" \
-H "Content-Type: application/json" \
-d '{"game_id": 1, "limit": 2}'{
"error": "无法读取请求体中的字段。请以 form-data、x-www-form-urlencoded 或 JSON 发送。",
"hint": "如果你用 Postman 或 Insomnia,请删掉 Content-Type 头,让工具自己生成。"
}cardinfo
按名称查找一张卡牌的全部信息:规则文本、法术力费用、稀有度、版本与当前价格。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
cardname | string | Path to exile | 最多 50 个字符。 |
currency | string | 该 locale 的货币 | 三个字母。 |
game_id | int | 该域名对应的游戏 | 1 = Magic, 2 = Yu-Gi-Oh, 3 = Pokémon, 4 = Runeterra. |
language_code | string | 路径中的语言 | 返回的卡牌名称与文本所用的语言。 |
curl "https://cardsrealm.com/zh-mo/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"
}getCardsRelated
一组卡牌会带上场的卡牌:它们创造的衍生物、标记,以及它们召唤的牌。适合手里有一份牌表、需要知道这副套牌用到哪些衍生物的人——整副套牌只要调用一次。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
cards | string | 必需的 | 用 | 分隔的英文卡牌名称。最多 250 个名称,每个最多 100 个字符。不传时接口返回 400。 |
game_id | int | 该域名对应的游戏 | 与 cardinfo 相同。 |
language_code | string | 路径中的语言 | 返回的卡牌名称与文本所用的语言。 |
curl "https://cardsrealm.com/zh-mo/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",
"related_to": "Young Pyromancer"
}
]getCardArts
Every art (printing) of one card, newest first: the same list of editions the card page shows, here found by name instead of card_id. Meant for someone holding a decklist, like the table at play.cardsrealm.com, where the player swaps the art of a card during the match.
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
cardname | string | 必需的 | Card name, in English or in the language of language_code. Up to 100 characters. Without it the call answers 400. |
game_id | int | 该域名对应的游戏 | 与 cardinfo 相同。 |
language_code | string | 路径中的语言 | Language of the returned card name and image. |
curl "https://cardsrealm.com/zh-mo/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": ""
}
]getRecentDecks
最近发布的套牌,最新在前。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
page | int | 1 | 页码。 |
limit | int | 50 | 每页套牌数。上限为 500,超过则返回错误。 |
game_id | int | 1 | 与 cardinfo 相同。 |
curl "https://cardsrealm.com/zh-mo/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
完整的套牌列表。卡牌清单位于 cards 字段,包含数量、board(main 或 side)以及每张卡的价格。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
deck_id | int | 0 | 套牌的数字 id。 |
currency | string | BRL | 三个字母。 |
curl "https://cardsrealm.com/zh-mo/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
某个套牌原型的表现:总体战绩,并按 by_meta 细分它对阵其他每个原型的结果。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
deck_name | string | 空 | 套牌原型名称,最多 40 个字符。 |
week | int | 4 | 回溯多少周。上限为 52。 |
format | string | Standard | 最多 20 个字符。 |
game_id | int | 1 | 与 cardinfo 相同。 |
curl "https://cardsrealm.com/zh-mo/api/getDeckResults?deck_name=Grixis%20Affinity&format=Pauper&week=8"
getPlayerResults
某位玩家的战绩,并按 by_meta 细分他在每个套牌原型下的表现。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
player_name | string | 空 | 最多 40 个字符。 |
week | int | 52 | 回溯多少周。 |
player_platform | string | cardsrealm_nickname | 按哪个名称检索。取 cardsrealm_nickname、mtgo、arena、riot 或 display 之一。其他取值将返回错误。 |
curl "https://cardsrealm.com/zh-mo/api/getPlayerResults?player_name=Carrubs&player_platform=mtgo"
getPastTournaments
已经举办过的赛事,最新在前。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
page | int | 1 | 页码。 |
format | string | 空 | 最多 20 个字符。留空表示所有赛制。 |
game_id | int | 1 | 与 cardinfo 相同。 |
curl "https://cardsrealm.com/zh-mo/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
一场赛事的完整信息:赛事本身、位于 round_info 的各轮次,以及位于 standings 的最终排名。不存在的 id 返回空列表,而非错误。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
tournament_id | int | 1 | 赛事的数字 id。 |
curl "https://cardsrealm.com/zh-mo/api/getTournamentInfo?tournament_id=810845"
getUserTournaments
由某个账号举办的赛事。
| 参数 | 类型 | 图案 | 笔记 |
|---|---|---|---|
nickname | string | Cards Realm | 最多 30 个字符。 |
curl "https://cardsrealm.com/zh-mo/api/getUserTournaments?nickname=leon-diniz"
错误与支持
| 代码 | 意义 |
|---|---|
200 | 成功。响应体始终为 JSON。 |
400 | 调用被拒绝:名称太长、数字不是数字、取值不在允许的列表内,或请求体无法读取。 |
500 | 是我们这边出了问题。欢迎告诉我们。 |
被拒绝的调用返回 400 和一个对象。invalid_fields 指出值得检查的参数;当问题不在某个具体字段时,它不会出现。
{
"error": "周必须是数字",
"invalid_fields": ["week"]
}有疑问,或者需要这里没有的字段?来 Discord 找我们。 Discord