O Spire Codex agora está no Overwolf. Obtenha o overlay no jogo com consulta de cartas ao vivo e envio de partidas com um clique. Saiba mais →Crie ferramentas, bots e conteúdo com os dados do Spire Codex. Tudo é gratuito e aberto.
Adicione tooltips ao passar o mouse no estilo Wowhead para cartas, relíquias e poções em qualquer site. Uma tag script, zero dependências.
<script src="https://spire-codex.com/widget/spire-codex-tooltip.js"></script>[[Strike]]Tooltip de carta (tipo padrão)[[card:Bash]]Carta (explícito)[[relic:Burning Blood]]Relíquia[[potion:Fire Potion]]Poção[[character:Ironclad]]Personagem[[monster:Jaw Worm]]Monstro[[power:Strength]]Poder[[event:Neow]]Evento[[encounter:Lagavulin]]Encontro[[enchantment:Sharp]]Encantamento[[keyword:Exhaust]]Palavra-chave[[orb:Lightning]]Orbe[[affliction:Bound]]Aflição[[achievement:Minimalist]]ConquistaSpireCodex.scan()Verifica a página novamente em busca de novos padrões [[...]] (para SPAs)SpireCodex.scan(element)Verifica um elemento DOM específicoIncorpore um visualizador de changelog compacto e interativo mostrando o histórico de atualizações do Spire Codex com troca de versão.
<div id="scx-changelog"></div>
<script src="https://spire-codex.com/widget/spire-codex-changelog.js"></script>data-version="1.0.4"Mostra uma versão específica (padrão: mais recente)Banco de dados completo do jogo acessível por uma API REST pública. Sem autenticação: a cota do site por IP cobre navegação e chamadas casuais, e o uso da API sem chave recebe a taxa base abaixo. Para scripts e ferramentas, crie uma chave de API e envie-a no cabeçalho X-API-Key. Uma chave agrupa suas requisições por identidade em vez de IP (estável entre redes, nunca compartilhada com outros usuários atrás do mesmo NAT) e oferece acompanhamento de uso; o limite do nível se aplica por endpoint. As respostas trazem X-RateLimit-Remaining / X-RateLimit-Reset para você dosar as requisições.
| Tráfego do site | 300/minute | por IP |
| Sem chave de API | 15/minute | |
| Usuário registrado | 60/minute | crie uma no seu perfil |
| Acadêmico | 100/minute | concedido sob solicitação |
| Pago | 120/minute | apoiadores |
Todos os limites contam por endpoint: a tabela é a sua cota em cada rota, não um pool global. Alguns endpoints pesados têm orçamentos próprios que valem para todo chamador, com ou sem chave (veja a exportação de partidas abaixo; o ZIP de idioma é 10/hora). Observe X-RateLimit-Remaining e recue ao receber 429 (Retry-After é definido).
Reproduza a miniatura de carta do jogo (usada nas telas de Histórico de partidas / Fim de jogo) em qualquer projeto web. Seis camadas PNG compostas com mask-image do CSS, sem canvas, sem WebGL, só sprites coloridos. As cores vêm direto do código descompilado do jogo: NTinyCard, CardPoolModel.DeckEntryCardColor.



Ironclad / Attack / Common

Baixe todos os dados do jogo em um único arquivo ZIP. Cada arquivo contém JSONs para cada tipo de entidade (cartas, relíquias, monstros, poderes e mais).
Documentação completa Swagger/OpenAPI com função de teste.
Abrir documentação da API →O Spire Codex é de código aberto. O pipeline de extração de dados, a API e o frontend estão todos disponíveis no GitHub.
Ver no GitHub →GET /api/runs/export?limit=1000&start=2026-06-01T00:00:00ZTransmite as partidas oficiais como JSONL, uma partida por linha.
limit Limita a página; uma página cheia retorna um cursor para a próxima.start / end Restringem a uma janela semiaberta de data de envio. Mantenha-os constantes ao paginar; o cursor não os inclui.Este endpoint tem orçamento próprio de 120 créditos por hora, compartilhado por chamadores com e sem chave: uma requisição paginada custa 1 crédito, uma busca sem limite custa 60. Sincronização contínua funciona melhor com buscas paginadas espaçadas ~30 s; em 429, respeite o Retry-After e retome com o mesmo cursor.
https://spire-codex.comCanal beta (conteúdo não lançado do ramo beta da Steam): adicione isto a qualquer endpoint de entidade: ?channel=beta. Versão beta atual: /api/beta/version. Diferença completa em relação ao main: /api/beta/diff.
Documentação interativa completa (gerada automaticamente do backend, sempre atual): /docs
Adicione este parâmetro de consulta a qualquer endpoint: ?lang=jpn. 15 idiomas suportados:
eng, deu, esp, fra, ita, jpn, kor, pol, ptb, rus, spa, tha, tur, zhs, zht
cURL
curl https://spire-codex.com/api/cards?color=ironclad&rarity=RarePython
import requests
cards = requests.get("https://spire-codex.com/api/cards", params={"color": "ironclad"}).json()
for card in cards:
print(f"{card['name']} - {card['type']} ({card['rarity']})")JavaScript
const res = await fetch("https://spire-codex.com/api/relics?pool=ironclad");
const relics = await res.json();
console.log(relics.map(r => r.name));




Defect / Power / Rare


Necrobinder / Skill / Rare


Regent / Attack / Uncommon


Curse


Event


QuestTodos os 10 PNGs são servidos com CORS habilitado, basta colocar a URL base antes de cada nome de arquivo. Cada sprite tem 128×128, RGBA, branco sobre transparente (feito para ser colorido via CSS).
https://spire-codex.com/static/images/ui/run_history_card/
card_back.png ← tinted by pool
desc_box.png ← dark description area (render at 25% opacity)
attack_portrait.png ← portrait per card type
attack_portrait_shadow.png
skill_portrait.png
skill_portrait_shadow.png
power_portrait.png
power_portrait_shadow.png
banner_shadow.png ← render at 60% opacity
banner.png ← tinted by rarityFonte: CardPoolModel.DeckEntryCardColor. Compare com o campo color retornado por /api/cards.
Fonte: NTinyCard.GetBannerColor. Compare com o campo rarity.
Nome do arquivo do retrato: attack = Cartas de Ataque, power = Cartas de Poder, skill = todo o resto (Habilidade, Status, Maldição, …)
<div class="tiny-card" style="
--back: #D62000; /* pool color, Ironclad */
--banner: #FFDA36; /* rarity color, Rare */
position: relative;
width: 64px;
height: 64px;
">
<!-- 1. card back, tinted by pool -->
<div class="layer" style="
background-color: var(--back);
mask: url(https://spire-codex.com/static/images/ui/run_history_card/card_back.png) center/contain no-repeat;
-webkit-mask: url(https://spire-codex.com/static/images/ui/run_history_card/card_back.png) center/contain no-repeat;
"></div>
<!-- 2. description box -->
<img class="layer" src="https://spire-codex.com/static/images/ui/run_history_card/desc_box.png" style="opacity:.25">
<!-- 3. portrait shadow + portrait (attack/skill/power) -->
<img class="layer" src="https://spire-codex.com/static/images/ui/run_history_card/attack_portrait_shadow.png">
<img class="layer" src="https://spire-codex.com/static/images/ui/run_history_card/attack_portrait.png"
style="filter: brightness(.95) sepia(.15)">
<!-- 4. banner shadow + banner tinted by rarity -->
<img class="layer" src="https://spire-codex.com/static/images/ui/run_history_card/banner_shadow.png" style="opacity:.6">
<div class="layer" style="
background-color: var(--banner);
mask: url(https://spire-codex.com/static/images/ui/run_history_card/banner.png) center/contain no-repeat;
-webkit-mask: url(https://spire-codex.com/static/images/ui/run_history_card/banner.png) center/contain no-repeat;
"></div>
</div>
<style>
.tiny-card .layer {
position: absolute; inset: 0;
width: 100%; height: 100%;
object-fit: contain;
}
</style>Versão React pronta para uso. Fonte: TinyCard.tsx
import TinyCard from "./TinyCard";
// Feed in the three fields from /api/cards:
<TinyCard color="ironclad" type="Attack" rarity="Rare" className="w-16 h-16" />Cada carta de /api/cards inclui duas URLs prontas para uso da carta completa renderizada pelo jogo (moldura, arte, faixa e texto, exatamente como no jogo). Cartas dos ancestrais são webps animados.
image_url_card — A carta base. null para a única carta sem render (mad_science); use image_url (a arte do retrato) como alternativa nesse caso.image_url_card_upg — A carta aprimorada. null quando a carta não tem aprimoramento.// e.g. /api/cards/bash
{
"id": "BASH",
"image_url": "/static/images/cards/bash.webp", // portrait art
"image_url_card": "https://cdn.spire-codex.com/cards-full/stable/bash.webp",
"image_url_card_upg": "https://cdn.spire-codex.com/cards-full/stable/bash_upg.webp"
}Renders localizados ficam em uma subpasta de idioma, por exemplo: cards-full/stable/jpn/bash.webp. Todos os 15 idiomas estão disponíveis.
Cada carta também é renderizada com cada encantamento que pode receber legalmente, exatamente como a prévia de encantamento do jogo a desenha (emblema, valor e texto adicionado). As URLs seguem um único padrão:
https://cdn.spire-codex.com/cards-full/stable/ench/{enchantment}/{card}.webp // English, base
https://cdn.spire-codex.com/cards-full/stable/ench/{enchantment}/{card}_upg.webp // English, upgraded
https://cdn.spire-codex.com/cards-full/stable/{lang}/ench/{enchantment}/{card}.webp // localized
// e.g. Anger with Corrupted, in Japanese:
https://cdn.spire-codex.com/cards-full/stable/jpn/ench/corrupted/anger.webp{enchantment} / {card}: ids em minúsculas de /api/enchantments e /api/cards (ex.: sharp, corrupted, sown).