Slay the Spire 2 (STS2) Geliştiriciler
Spire Codex verileriyle araçlar, botlar ve içerik oluşturun. Her şey ücretsiz ve açık.
İpucu Bileşeni
Herhangi bir web sitesine kartlar, kalıntılar ve iksirler için Wowhead tarzı üzerine gelince açılan ipuçları ekleyin. Tek bir script etiketi, sıfır bağımlılık.
Kurulum
<script src="https://spire-codex.com/widget/spire-codex-tooltip.js"></script>Söz dizimi
[[Strike]]Kart ipucu (varsayılan tür)[[card:Bash]]Kart (açık)[[relic:Burning Blood]]Kalıntı[[potion:Fire Potion]]İksir[[character:Ironclad]]Karakter[[monster:Jaw Worm]]Canavar[[power:Strength]]Güç[[event:Neow]]Etkinlik[[encounter:Lagavulin]]Karşılaşma[[enchantment:Sharp]]Büyü[[keyword:Exhaust]]Anahtar kelime[[orb:Lightning]]Küre[[affliction:Bound]]Rahatsızlık[[achievement:Minimalist]]BaşarımJavaScript API'si
SpireCodex.scan()Sayfayı yeni [[...]] kalıpları için yeniden tarar (SPA'lar için)SpireCodex.scan(element)Belirli bir DOM öğesini tararDeğişiklik Günlüğü Bileşeni
Sürüm geçişiyle Spire Codex güncelleme geçmişini gösteren kompakt, etkileşimli bir değişiklik günlüğü görüntüleyici gömün.
Kurulum
<div id="scx-changelog"></div>
<script src="https://spire-codex.com/widget/spire-codex-changelog.js"></script>data-version="1.0.4"Belirli bir sürümü gösterir (varsayılan: en son)REST API
Oyunun tüm veritabanına herkese açık bir REST API üzerinden erişilebilir. Kimlik doğrulama gerekmez: IP başına web sitesi kotası gezinmeyi ve ara sıra yapılan çağrıları karşılar; anahtarsız API kullanımı aşağıdaki temel oranı alır. Betikler ve araçlar için bir API anahtarı oluşturun ve X-API-Key başlığı olarak gönderin. Profil sayfanızdan bir tane oluşturun. Bir anahtar, isteklerinizi IP yerine kimliğe göre gruplar (ağlar arasında kararlıdır, aynı NAT arkasındaki diğer kullanıcılarla asla paylaşılmaz) ve kullanım takibi sağlar; katman sınırı uç nokta başına uygulanır. Yanıtlar, istekleri ayarlayabilmeniz için X-RateLimit-Remaining / X-RateLimit-Reset taşır.
Hız sınırları
| Web Sitesi Trafiği | 300/minute | IP başına |
| API anahtarı yok | 15/minute | |
| Kayıtlı Kullanıcı | 60/minute | profilinizden oluşturun |
| Akademik | 100/minute | talep üzerine verilir |
| Ücretli | 120/minute | destekçiler |
Tüm sınırlar uç nokta başına sayılır: tablo her rotadaki kotanızdır, küresel bir havuz değil. Birkaç ağır uç noktanın, anahtardan bağımsız olarak her çağırana uygulanan kendi bütçesi vardır (aşağıdaki koşu dışa aktarımına bakın; dil ZIP'i saatte 10). X-RateLimit-Remaining'i izleyin ve 429'da geri çekilin (Retry-After ayarlanır).
Toplu koşu dışa aktarımı
GET /api/exports/runs?limit=1000&start=2026-06-01T00:00:00ZResmi koşuları JSONL olarak akıtır, satır başına bir koşu.
limit Sayfayı sınırlar; dolu bir sayfa bir sonraki için imleç döndürür.start / end Yarı açık bir gönderim zamanı penceresiyle sınırlar. Sayfalarken sabit tutun; imleç bunları içermez.Bu uç noktanın saatte 120 kredilik kendi bütçesi vardır ve anahtarlı ya da anonim tüm çağıranlar tarafından paylaşılır: sayfalanmış bir istek 1 kredi, sınırsız bir çekim (limit yok) 60 kredi tutar. Bu yüzden sürekli eşitleme en iyi ~30 sn aralıklı sayfalanmış çekimlerle çalışır; 429'da Retry-After'a uyun ve aynı imleçle devam edin.
Tüm veriyi mi istiyorsunuz? Parametresiz bir çağrı, günde bir kez yeniden oluşturulan statik dosyaya, /exports/runs-latest.jsonl.gz, aynı satır biçimiyle yönlendirir; /api/exports/runs/manifest ne zaman üretildiğini ve kaç koşu içerdiğini bildirir. Her satırda gönderen hesabın sabit takma kimliği player_token bulunur; anonim koşularda null olur.
Sadece bir sürüm mü? /api/exports/runs?version=v0.111.0, manifestin versions haritasındaki sürüme özel statik dosyaya yönlendirir: /exports/runs-v0.111.0.jsonl.gz; limit ve cursor ile birleştirilirse bunun yerine tek bir sürümü sayfalar.
Temel URL
https://spire-codex.comBeta kanalı (Steam beta dalındaki yayınlanmamış içerik): bunu herhangi bir varlık uç noktasına ekleyin: ?channel=beta. Geçerli beta sürümü: /api/beta/version. Main ile tam fark: /api/beta/diff.
The community stats pages were reorganized: /community-stats, /leaderboards/metrics, /charts, and the /meta page now live under /stats, /leaderboards/elo is /top-players, and run submission moved to /runs/submit. Old URLs redirect.
Uç noktalar
Tam etkileşimli belgeler (arka uçtan otomatik üretilir, her zaman güncel): /docs
Varlıklar
Toplamalar ve Aramalar
Languages
Topluluk ve Gönderimler
Toplu İndirmeler
Çoklu Dil
Bu sorgu parametresini herhangi bir uç noktaya ekleyin: ?lang=jpn. 15 dil desteklenir:
eng, deu, esp, fra, ita, jpn, kor, pol, ptb, rus, spa, tha, tur, zhs, zht
Hızlı Başlangıç
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));Mini Kart Sprite'ı
Oyunun koşu içi kart küçük resmini (Koşu Geçmişi / Oyun Bitti ekranlarında kullanılır) herhangi bir web projesinde yeniden oluşturun. CSS mask-image ile birleştirilmiş altı PNG katmanı; canvas yok, WebGL yok, yalnızca renklendirilmiş sprite'lar. Renkler doğrudan derlemesi çözülmüş oyun kodundan gelir: NTinyCard, CardPoolModel.DeckEntryCardColor.
Önizleme



Ironclad / Attack / Common


Silent / Skill / Uncommon


Defect / Power / Rare


Necrobinder / Skill / Rare


Regent / Attack / Uncommon


Curse


Event


QuestSprite varlıkları
10 PNG'nin tamamı CORS etkin olarak sunulur; her dosya adının önüne temel URL'yi koyun. Her sprite 128×128, RGBA, saydam üzerine beyazdır (CSS ile renklendirilmek için).
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 rarityHavuz (kart arkası) renkleri
Kaynak: CardPoolModel.DeckEntryCardColor. Bunları /api/cards tarafından döndürülen color alanıyla eşleştirin.
Nadirlik (afiş) renkleri
Kaynak: NTinyCard.GetBannerColor. rarity alanıyla eşleştirin.
En basit HTML + CSS tarifi
Portre dosya adı: attack = Saldırı kartları, power = Güç kartları, skill = diğer her şey (Beceri, Durum, Lanet, …)
<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>React bileşeni
Doğrudan kullanılabilir React sürümü. Kaynak: 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" />Tam kart görselleri
/api/cards içindeki her kart, oyunun işlediği tam kart için (çerçeve, çizim, afiş ve metin, tam olarak oyundaki gibi) kullanıma hazır iki URL içerir. Kadim kartlar animasyonlu webp'dir.
image_url_card— Temel kart. İşlenmiş görseli olmayan tek kart (mad_science) için null; orada image_url'ye (portre çizimi) geri dönün.image_url_card_upg— Yükseltilmiş kart. Kartın yükseltmesi yoksa null.
// 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"
}Yerelleştirilmiş görseller bir dil alt klasöründe bulunur, örneğin: cards-full/stable/jpn/bash.webp. 15 dilin tamamı mevcuttur.
Büyülü kart görselleri
Her kart ayrıca kurallara uygun olarak alabileceği her büyüyle, oyun içi büyü önizlemesinin çizdiği gibi (rozet, miktar ve eklenen kart metni) işlenir. URL'ler tek bir kalıbı izler:
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}: /api/enchantments ve /api/cards'tan küçük harfli kimlikler (ör. sharp, corrupted, sown).- Yalnızca geçerli kart ve büyü kombinasyonları vardır (dışa aktarım oyunun kendi uygulanabilirlik kurallarını kullanır), bu yüzden geçersiz bir kombinasyon 404 döner. /api/enchantments üzerindeki card_type / applicable_to alanları hangi kartların uygun olduğunu açıklar.
- Her kombinasyon için temel ve yükseltilmiş varyantlar 14 dilin tamamında, büyü metni tamamen yerelleştirilmiş olarak mevcuttur.
Veri Dışa Aktarımları
Tüm oyun verilerini tek bir ZIP arşivi olarak indirin. Her arşiv, her varlık türü için (kartlar, kalıntılar, canavarlar, güçler ve daha fazlası) JSON dosyaları içerir.
Etkileşimli API Belgeleri
Deneme özelliğiyle eksiksiz Swagger/OpenAPI belgeleri.
API Belgelerini Aç →Açık Kaynak
Spire Codex açık kaynaklıdır. Veri çıkarma hattı, API ve ön uç GitHub'da mevcuttur.
GitHub'da görüntüle →