Pokékipe Public API
Darmowa kompetytywna analityka Pokémon, wyciągnięta z miesięcznych statystyk usage Smogona i odświeżana co miesiąc. Nie potrzebujesz konta do casualowego użytku; wybij osobisty klucz w Ustawieniach Konta żeby podnieść sufit rate-limitu pod bulk pulle.
Endpointy
100+
Formaty
30+
Odświeżanie
Co miesiąc
Auth
Opcjonalne
Licencja
CC BY 4.0
Po co to istnieje
Czym to API jest, a czym nie
Cztery rzeczy do wiedzenia zanim napiszesz linijkę kodu pod /api/v1/.
Czym jest to API
Read-only powierzchnia JSON nad światowymi danymi kompetytywnego Pokémona. Zapytaj "jaka jest meta w Gen 9 OU na 1500+ ELO w tym miesiącu?" albo "kto kontrował tego Pokémona w top cucie tego turnieju?" i dostań odpowiedź w jednym wywołaniu, ze stabilnymi, udokumentowanymi kształtami.
Skąd są dane
Miesięczne logi bitew Smogona (publiczny chaos JSON), oficjalne feedy turniejowe (Pokémon Company, VGC, Smogon Tour) i źródła społecznościowe jak Limitless TCG dla eventów community-run. Pokékipe odpala swój własny pipeline ingestion, normalizacji i wzbogacania na wierzchu, potem re-eksponuje wyczyszczony wynik.
Czym to API nie jest
Nie live bridge do Pokémon Showdowna, nie symulator bitew, nie endpoint kalkulatora damage'u, nie engine teambuildingu. Te narzędzia żyją na stronie. API to warstwa danych pod nimi.
Kredyt dla źródła
Kredyt tam gdzie się należy. Smogon, eksporterzy JSON-a chaos-format i społeczność graczy którzy grają w gry każdego miesiąca to powód dla którego ten dataset istnieje. Pokékipe robi go interrogowalnym; nie posiada danych bazowych.
Start
Twoje pierwsze wywołanie, w 30 sekund
Trzy przykłady copy-paste które pobierają katalog formatów. Bez klucza API, bez setupu, bez rejestracji. Wybierz zakładkę języka, wklej, odpal.
curl -s https://pokekipe.com/api/v1/formats \
| jq '.[0:3]'Podmień path na dowolny endpoint z referencji niżej. Pierwsze wywołanie powinno wrócić poniżej sekundy na warm cache.
Uwierzytelnianie
Uwierzytelnianie i rate-limity
Anonimowe wywołania działają do casualowego użytku. Osobisty klucz (darmowy, generowany w ustawieniach konta) podnosi sufit rate-limitu dla analityków i twórców narzędzi, którzy ciągną dane hurtem. Klucze nigdy nie odblokowują nowych endpointów; tylko podnoszą sufit.
Anonimowo, bez klucza
DomyślneWykonuj wywołania bez żadnego headera. Bucket jest keyowany na twoje IP, więc mały skrypt lub agent LLM robiący garść requestów na sesję nigdy nie podetnie limitu.
- Bez konta, bez rejestracji, bez headera do ustawienia.
- Bucket per-IP, pasuje pod ad-hoc skrypty i tool-use agentów LLM.
- Walnie w 429 jeśli utrzymujesz bulk pulle; przerzuć się na osobisty klucz.
na minutę
60
na dzień
5,000
Uwierzytelnione, z osobistym kluczem
Rekomendowane pod bulkWrzucaj klucz jako X-API-Key (albo Authorization: Bearer pk_live_…). Anonimowe wywołania działają dalej obok; klucz tylko podnosi sufit, nie odblokowuje nowych endpointów.
- Bucket per-user: zmiany twojego IP nie zresetują licznika.
- Wyższe sufity na każdym per-route limicie.
- Do 5 aktywnych kluczy na konto, do cofnięcia kiedykolwiek.
na minutę
600
na dzień
100,000
Nagłówki na każdej odpowiedzi
Każda udana odpowiedź niesie nagłówki rate-limit poniżej, żeby twój klient mógł sam dawkować tempo bez retry'ów. Czytaj je raz na response i zwalniaj w momencie gdy Remaining spada do kilku requestów, nie do zera.
| Nagłówek | Znaczenie |
|---|---|
| X-RateLimit-Tier | Pod który tier podpadasz: anonymous (bez klucza) lub authenticated (JWT lub klucz API rozwiązany). |
| X-RateLimit-Limit-Min | Minutowy sufit dla twojego tieru (60 anonimowo, 600 uwierzytelnione). |
| X-RateLimit-Limit-Day | Dzienny sufit dla twojego tieru (5 000 anonimowo, 100 000 uwierzytelnione). |
| X-RateLimit-Remaining-Min | Wywołania pozostałe w obecnym oknie minutowym. Zwolnij gdy to zbliża się do zera. |
| X-RateLimit-Remaining-Day | Wywołania pozostałe w obecnym oknie dziennym. Resetuje się o tej samej minucie ściennej każdego dnia. |
| Retry-After | Wysyłane tylko przy 429. Czekaj tyle sekund przed retry, zwykle poniżej 60 dla okna minutowego. |
Błędy
Błędy które możesz zobaczyć
Standardowe kody statusu HTTP. Body to zawsze JSON z polem "detail" opisującym co poszło nie tak. Traktuj 4xx jako problem kontraktu (twój request), a 5xx jako nasz problem (retry z backoffem).
OK
OK. Ciało to JSON payload udokumentowany w referencji. Puste tablice oznaczają "brak wierszy", nie "brakuje", traktuj je jako dane, a nie błąd.
Not Modified
Not Modified. Nagłówki cache zostały zwalidowane. Użyj zcache'owanego ciała, bez re-parse'owania. Zwracane automatycznie gdy wyślesz If-None-Match lub If-Modified-Since.
Bad Request
Bad Request. Parametr query lub kształt body jest zły. Wiadomość detail wskazuje konkretne pole. Nie retry'uj bez naprawy inputu.
Unauthorized
Unauthorized. Request potrzebował klucza API lub sesji i nie dostał żadnego, albo credentials były nieprawidłowe/cofnięte. Nie pal kolejnych requestów, wystaw nowy credential.
Not Found
Not Found. Ścieżka lub zasób nie istnieje. Dla tras per-Pokémon często znaczy to, że format nie ma jeszcze usage data dla tego Pokémona, a nie literówka po twojej stronie.
Too Many Requests
Too Many Requests. Walnąłeś w sufit rate-limitu. Przeczytaj Retry-After i czekaj, exponential backoff to dobry obyczaj, ale rzadko potrzebny bo okno jest krótkie.
Server Error
Internal Server Error. Coś wybuchło po naszej stronie. Retry raz po kilku sekundach; jeśli się utrzymuje, pingnij nas na Discordzie z URL requesta.
Service Unavailable
Service Unavailable. Albo deployujemy, albo jesteśmy tymczasowo przeciążeni. Retry z backoffem. Updaty statusu lecą na community Discord.
Zasady gry
Warunki użytkowania
Cztery zasady gry. Przeczytaj raz, zaoszczędź sobie pinga na Discordzie w przyszłości.
Kredyt dla źródła
Atrybucja wymagana przy redystrybucji lub republikacji. Kredytuj Pokékipe (link do https://pokekipe.com) i kredytuj Smogon za bazowy chaos JSON który publikują co miesiąc.
Best-effort, bez SLA
Best-effort, bez SLA. Dane serwowane "as is" bez gwarancji uptime'u. Cache'uj agresywnie i degraduj się elegancko gdy endpoint jest wolny lub zwraca 429.
Wersjonowanie
Schematy pod /api/v1/ zostają wstecznie kompatybilne w ramach cyklu życia v1. Breaking changes lecą na /api/v2/ z wcześniejszą zapowiedzią na Discordzie i sunset headerem na deprecated ścieżce.
Użycie komercyjne
Użycie komercyjne dozwolone pod CC BY 4.0. Jeśli zbudujesz coś na wierzchu tego API, chętnie posłuchamy o tym na community Discord.
Przeglądaj każdy endpoint, wszystko w jednym miejscu
Przeglądaj każdy endpoint z opisami, tabelami parametrów, schematami request/response i przykładami kodu w curl, JavaScript i Python. Szukaj w całym API w jednym polu, deep-linkuj do dowolnej operacji, share'uj URL.
- 100+ endpointów
- ·
- 3-pane nawigacja, treść, przykłady
- ·
- full-text search
- ·
- live request samples