API pubblica Pokékipe
Analitica competitiva Pokémon, gratuita, derivata dalle statistiche mensili di uso pubblicate da Smogon e rinfrescata ogni mese. Niente account per uso occasionale; genera una chiave personale dalle impostazioni del tuo account per alzare il tetto di rate-limit sui pull in volume.
Endpoint
100+
Formati coperti
30+
Refresh
Mensile
Auth
Opzionale
Licenza
CC BY 4.0
Perché esiste
Cosa questa API è e cosa non è
Quattro cose da sapere prima di scrivere una sola riga di codice contro /api/v1/.
Cosa è questa API
Una superficie JSON in sola lettura sui dati Pokémon competitivi mondiali. Chiedi "qual è il meta della Gen 9 OU a 1500+ ELO questo mese?" o "chi ha counterato questo Pokémon nel top cut di questo torneo?", e ottieni una risposta in una sola chiamata con shape stabili e documentate.
Da dove vengono i dati
I battle log mensili di Smogon (il chaos JSON pubblico), i feed ufficiali di tornei (Pokémon Company, VGC, Smogon Tour), e fonti comunitarie come Limitless TCG per gli event community-run. Pokékipe fa la propria ingestion, normalizzazione e arricchimento sopra, e riespone il risultato pulito.
Cosa questa API non è
Non un ponte live verso Pokémon Showdown, non un simulatore di battaglia, non un endpoint di damage calculator, non un motore di teambuilding. Quei tool vivono sul sito. L'API è il layer dati sottostante.
Credito alle fonti
Tutto il credito va alle fonti. Smogon, gli esportatori del formato chaos JSON, e la comunità di giocatori che gioca i ladder ogni mese sono il motivo per cui questo dataset esiste. Pokékipe lo rende interrogabile, ma non possiede i dati grezzi.
Iniziare
La tua prima chiamata, in 30 secondi
Tre esempi copy-paste che fetchano il catalogo formati. Niente chiave API, niente setup, niente signup. Scegli il tuo tab linguaggio, incolla, esegui.
curl -s https://pokekipe.com/api/v1/formats \
| jq '.[0:3]'Sostituisci il path con qualsiasi endpoint listato nella reference qui sotto. La prima chiamata dovrebbe tornare in meno di un secondo a cache calda.
Autenticazione
Autenticazione e limiti di tasso
Le chiamate anonime funzionano per uso occasionale. Una chiave personale (gratuita, generata dalle impostazioni del tuo account) alza il tetto di rate-limit per analisti e tool-builder che scaricano dati in volume. Le chiavi non sbloccano mai nuovi endpoint; alzano solo il tetto.
Anonimo, senza chiave
PredefinitoFai chiamate senza alcun header. Il bucket è indicizzato sul tuo IP, quindi un piccolo script o un agent LLM con una manciata di richieste per sessione non toccherà mai il limite.
- Niente account, niente signup, nessun header da settare.
- Bucket per IP, ottimo per script ad-hoc e tool-use di agent LLM.
- Restituisce 429 se concateni pull di volume; passa allora a una chiave personale.
al minuto
60
al giorno
5,000
Autenticato, con chiave personale
Consigliato per il volumePassa la tua chiave come X-API-Key (o Authorization: Bearer pk_live_…). Le chiamate anonime continuano a funzionare in parallelo; la chiave alza solo il tetto, non sblocca nuovi endpoint.
- Bucket per utente: i tuoi cambi di IP non resettano il contatore.
- Tetti più generosi su ogni limite per-route.
- Fino a 5 chiavi attive per account, revocabili in qualsiasi momento.
al minuto
600
al giorno
100,000
Header su ogni risposta
Ogni risposta riuscita porta gli header di rate-limit qui sotto, così il tuo client può autoregolarsi senza retry. Leggili una volta per risposta e rallenta non appena Remaining si avvicina a poche richieste, non a zero.
| Header | Significato |
|---|---|
| X-RateLimit-Tier | Il tier che ti riguarda: anonimo (senza chiave) o autenticato (JWT o chiave API risolta). |
| X-RateLimit-Limit-Min | Tetto al minuto per il tuo tier (60 anonimo, 600 autenticato). |
| X-RateLimit-Limit-Day | Tetto giornaliero per il tuo tier (5 000 anonimo, 100 000 autenticato). |
| X-RateLimit-Remaining-Min | Chiamate restanti nella finestra minuto corrente. Rallenta quando si avvicina a zero. |
| X-RateLimit-Remaining-Day | Chiamate restanti nella finestra giorno corrente. Reset alla stessa ora a muro ogni giorno. |
| Retry-After | Inviato solo su 429. Aspetta questi secondi prima di ritentare, di solito meno di 60 per la finestra minuto. |
Errori
Errori che potresti vedere
Codici HTTP standard. Il body è sempre JSON con un campo "detail" che descrive il problema. Tratta 4xx come problema di contratto (la tua richiesta) e 5xx come problema dal nostro lato (ritenta con backoff).
OK
OK. Il body è il payload JSON documentato nella reference. Gli array vuoti significano "nessuna riga", non "mancante", trattali come dati, non come errore.
Not Modified
Not Modified. Gli header di cache sono stati validati. Usa il body in cache, nessun re-parse necessario. Restituito automaticamente quando invii If-None-Match o If-Modified-Since.
Bad Request
Bad Request. Un parametro di query o lo shape del body è errato. Il messaggio detail nomina il campo esatto. Non ritentare senza correggere l'input.
Unauthorized
Unauthorized. La richiesta richiedeva una chiave API o una sessione, e non ne ha ricevuta nessuna valida, oppure le credenziali sono state revocate. Non continuare a sparare, riemmetti la credenziale.
Not Found
Not Found. Il path o la risorsa non esiste. Per le route per-Pokémon, spesso significa che il formato non ha ancora dati di uso per quel Pokémon, non un typo dalla tua parte.
Too Many Requests
Too Many Requests. Hai toccato il tetto di rate-limit. Leggi Retry-After e aspetta. Backoff esponenziale è buon stile ma raramente necessario data la finestra corta.
Server Error
Internal Server Error. Qualcosa è esploso dal nostro lato. Ritenta una volta dopo qualche secondo; se persiste, scrivici su Discord con l'URL della richiesta.
Service Unavailable
Service Unavailable. Stiamo deployando o siamo temporaneamente sovraccarichi. Ritenta con backoff. Aggiornamenti di stato sul Discord della comunità.
Regole del gioco
Termini d'uso
Quattro regole base. Leggile una volta, risparmi un ping Discord al tuo io futuro.
Credito alle fonti
Attribuzione richiesta in caso di redistribuzione o ripubblicazione. Accredita Pokékipe (link a https://pokekipe.com), e accredita Smogon per il chaos JSON sottostante che pubblicano ogni mese.
Best-effort, niente SLA
Best-effort, niente SLA. I dati sono serviti "as is" senza garanzia di uptime. Cacha aggressivamente e degrada con grazia quando un endpoint è lento o restituisce 429.
Versionamento
Gli schemi sotto /api/v1/ restano retro-compatibili durante il ciclo di vita di v1. I breaking change vanno su /api/v2/ con preavviso su Discord e un header sunset sul path deprecato.
Uso commerciale
L'uso commerciale è permesso sotto CC BY 4.0. Se costruisci qualcosa sopra a questa API, ci farebbe piacere sentirlo sul Discord della comunità.
Naviga ogni endpoint, tutto in un posto
Naviga ogni endpoint con descrizioni, tabelle parametri, schema di richiesta e risposta, e sample di codice in curl, JavaScript e Python. Cerca tutta l'API in un box, deeplink a qualsiasi operazione, condividi l'URL.
- 100+ endpoint
- ·
- 3-pane navigazione, contenuto, sample
- ·
- ricerca full-text
- ·
- sample di richiesta live