Skip to content
Public API · v1

Pokékipe Public API

Smogon'un aylık usage stats'ından türetilen, her ay tazelenen ücretsiz competitive Pokémon analitiği. Gündelik kullanım için hesap gerekmez; toplu çekimlerde rate-limit tavanını yükseltmek için Hesap Ayarları'ndan kişisel bir anahtar üret.

  • Endpoint'ler

    100+

  • Formatlar

    30+

  • Yenileme

    Aylık

  • Auth

    Opsiyonel

  • Lisans

    CC BY 4.0

Niye var

Bu API nedir, ne değildir

/api/v1/ üzerine tek satır kod yazmadan önce bilinmesi gereken dört şey.

Bu API nedir

Dünyanın competitive Pokémon verisi üzerinde salt-okunur bir JSON yüzeyi. "Bu ay Gen 9 OU'da 1500+ ELO'da meta ne?" veya "bu Pokémon'a bu turnuvanın top cut'ında kim counter attı?" — tek çağrıyla, stabil ve dokümante şekillerle cevabı al.

Veri nereden geliyor

Smogon'un aylık battle log'ları (public chaos JSON), official tournament feed'leri (Pokémon Company, VGC, Smogon Tour) ve community-run etkinlikler için Limitless TCG gibi topluluk kaynakları. Pokékipe üstüne kendi ingestion, normalization ve enrichment pipeline'ını çalıştırır, sonra temizlenmiş sonucu yeniden expose eder.

Bu API ne değil

Canlı bir Pokémon Showdown köprüsü değil, battle simulator değil, damage calculator endpoint'i değil, teambuilding engine değil. Bu araçlar sitede yaşıyor. API onların oturduğu veri katmanı.

Kaynağa kredi ver

Hakkı teslim etmek lazım. Smogon, chaos-format JSON exporter'ları ve her ay oyunu oynayan oyuncu topluluğu — bu dataset onların sayesinde var. Pokékipe veriyi sorgulanabilir hâle getirir; altındaki veriye sahip değildir.

Başla

İlk çağrın, 30 saniyede

Format kataloğunu çeken üç adet kopyala-yapıştır örnek. API key yok, setup yok, signup yok. Dil sekmeni seç, yapıştır, çalıştır.

curl -s https://pokekipe.com/api/v1/formats \
  | jq '.[0:3]'

Path'i aşağıdaki referansta listelenen herhangi bir endpoint ile değiştir. İlk çağrı sıcak cache'de bir saniyenin altında dönmeli.

Kimlik Doğrulama

Kimlik doğrulama ve rate limit

Anonim çağrılar gündelik kullanım için yeterli. Kişisel bir anahtar (ücretsiz, hesap ayarlarından üretilir) toplu veri çeken analistler ve tool geliştiriciler için rate-limit tavanını yükseltir. Anahtarlar asla yeni endpoint açmaz; sadece tavanı yükseltir.

Anonim, anahtarsız

Varsayılan

Hiç header olmadan çağrı at. Bucket IP'ne anahtarlanır, yani küçük bir script veya session başına bir avuç istek yapan bir LLM agent asla limite takılmaz.

  • Hesap yok, signup yok, set edilecek header yok.
  • IP-başına bucket — ad-hoc script'ler ve LLM agent tool-use için uygun.
  • Toplu çekim sürdürürsen 429 alırsın; kişisel anahtara geç.

dakikada

60

günde

5,000

Authenticated, kişisel anahtarla

Toplu çekim için önerilir

Anahtarını X-API-Key olarak (veya Authorization: Bearer pk_live_…) gönder. Anonim çağrılar yan yana çalışmaya devam eder; anahtar sadece tavanı yükseltir, yeni endpoint açmaz.

  • Kullanıcı-başına bucket: IP değişiklikleri sayacını sıfırlamaz.
  • Her route-bazlı limitte daha yüksek tavan.
  • Hesap başına 5 aktif anahtara kadar, istediğin zaman iptal edilebilir.

dakikada

600

günde

100,000

Her yanıtta gelen header'lar

Her başarılı yanıt aşağıdaki rate-limit header'larını taşır; böylece client'ın retry atmadan kendi tempoda gidebilir. Yanıt başına bir kez oku ve Remaining birkaç isteğe düşer düşmez geri çekil — sıfıra inmesini bekleme.

HeaderAnlam
X-RateLimit-TierHangi kademedesin: anonim (anahtar yok) veya authenticated (JWT veya API key çözümlendi).
X-RateLimit-Limit-MinKademenin dakikalık tavanı (anonim için 60, authenticated için 600).
X-RateLimit-Limit-DayKademenin günlük tavanı (anonim için 5 000, authenticated için 100 000).
X-RateLimit-Remaining-MinMevcut dakika penceresinde kalan çağrı sayısı. Sıfıra yaklaşınca yavaşla.
X-RateLimit-Remaining-DayMevcut gün penceresinde kalan çağrı sayısı. Her gün aynı duvar-saat dakikasında resetlenir.
Retry-AfterSadece 429'da gönderilir. Retry atmadan önce bu kadar saniye bekle — dakika penceresi için genelde 60'ın altında.

Hatalar

Görebileceğin hatalar

Standart HTTP status kodları. Gövde her zaman JSON, içinde ne olduğunu anlatan bir "detail" alanı vardır. 4xx'i contract problemi (senin isteğin), 5xx'i bizim problemimiz (backoff ile retry) olarak gör.

200

OK

OK. Gövde, referansta belgelenmiş JSON payload'ıdır. Boş diziler "satır yok" anlamına gelir, "eksik" değil — onları başarısızlık değil, veri olarak işle.

304

Not Modified

Not Modified. Cache header'ları doğrulandı. Cache'lenmiş gövdeyi kullan, tekrar parse etmeye gerek yok. If-None-Match veya If-Modified-Since gönderdiğinde otomatik döner.

400

Bad Request

Bad Request. Bir query parametresi veya gövde şekli hatalı. Detail mesajı tam alan adını söyler. Input'u düzeltmeden retry atma.

401

Unauthorized

Unauthorized. İstek bir API anahtarı veya session istiyordu, hiçbiri yoktu ya da credential'lar geçersiz/iptal edilmişti. Atışı sürdürme, credential'ı yenile.

404

Not Found

Not Found. Path veya kaynak mevcut değil. Pokémon-bazlı route'lar için bu çoğu zaman senin tarafındaki typo değil, o Pokémon için o formatta henüz usage verisi olmaması demektir.

429

Too Many Requests

Too Many Requests. Rate-limit tavanına vurdun. Retry-After'ı oku ve bekle — exponential backoff iyi bir etikettir ama pencere kısa olduğu için nadiren gerekir.

500

Sunucu Hatası

Internal Server Error. Bizim tarafımızda bir şey patladı. Birkaç saniye sonra bir kez retry at; sürerse request URL'iyle Discord'dan ping at.

503

Service Unavailable

Service Unavailable. Ya deploy ediyoruz ya da geçici olarak aşırı yüklüyüz. Backoff ile retry at. Durum güncellemeleri community Discord'a düşer.

Temel kurallar

Kullanım koşulları

Dört temel kural. Bir kez oku, gelecekteki kendine bir Discord ping'i kazandır.

Kaynağa kredi ver

Yeniden dağıtım veya yeniden yayınlama yaparken atıf zorunludur. Pokékipe'ye kredi ver (https://pokekipe.com'a link), ve her ay yayınladıkları chaos JSON için Smogon'a kredi ver.

Best-effort, SLA yok

Best-effort, SLA yok. Veri "olduğu gibi" sunulur, uptime garantisi yoktur. Agresif cache'le ve bir endpoint yavaşladığında veya 429 döndürdüğünde graceful biçimde degrade et.

Versiyonlama

/api/v1/ altındaki şemalar v1 yaşam döngüsü içinde geriye dönük uyumlu kalır. Breaking change'ler /api/v2/'ye gider — Discord'dan önceden bildirim ve deprecated path üzerinde bir sunset header ile.

Ticari kullanım

Ticari kullanım CC BY 4.0 altında serbest. Bu API üzerine bir şey kurarsan, community Discord'da duymak çok hoşumuza gider.

Referans · OpenAPI 3Canlı, üç-panel

Her endpoint'i tek yerde gez

Her endpoint'i açıklamalar, parametre tabloları, request ve response şemaları ile curl, JavaScript ve Python kod örnekleriyle gezin. Tüm API'yi tek kutudan ara, herhangi bir operasyona deep-link ver, URL'yi paylaş.

  • 100+ endpoint
  • ·
  • 3-pane navigasyon, içerik, örnekler
  • ·
  • tam-metin arama
  • ·
  • canlı request örnekleri