API pública Pokékipe
Analytics competitivo de Pokémon, gratuito, derivado das estatísticas mensais de uso publicadas pela Smogon e atualizado a cada mês. Sem conta para uso ocasional; gere uma chave pessoal nas configurações da sua conta para elevar o teto de rate-limit em pulls em volume.
Endpoints
100+
Formatos cobertos
30+
Refresh
Mensal
Auth
Opcional
Licença
CC BY 4.0
Por que existe
O que esta API é, e o que não é
Quatro coisas para saber antes de escrever uma única linha de código contra /api/v1/.
O que esta API é
Uma superfície JSON read-only sobre os dados Pokémon competitivos mundiais. Pergunte "qual é o meta da Gen 9 OU a 1500+ ELO este mês?" ou "quem counterou este Pokémon no top cut deste torneio?", e obtenha uma resposta em uma chamada com shapes estáveis e documentadas.
De onde vêm os dados
Os battle logs mensais da Smogon (o chaos JSON público), os feeds oficiais de torneios (Pokémon Company, VGC, Smogon Tour), e fontes comunitárias como Limitless TCG para events community-run. Pokékipe faz a própria ingestion, normalização e enriquecimento por cima, e re-expõe o resultado limpo.
O que esta API não é
Não é uma ponte live para o Pokémon Showdown, nem um simulador de batalha, nem um endpoint de damage calculator, nem um motor de teambuilding. Essas ferramentas vivem no site. A API é a camada de dados embaixo.
Crédito às fontes
Todo o crédito vai para as fontes. Smogon, os exportadores do formato chaos JSON, e a comunidade de jogadores que joga os ladders todo mês são a razão deste dataset existir. Pokékipe o torna consultável, mas não é dono dos dados brutos.
Começar
Sua primeira chamada, em 30 segundos
Três exemplos copy-paste que buscam o catálogo de formatos. Sem chave de API, sem setup, sem signup. Escolha sua aba de linguagem, cole, execute.
curl -s https://pokekipe.com/api/v1/formats \
| jq '.[0:3]'Substitua o path por qualquer endpoint listado na referência abaixo. A primeira chamada deve voltar em menos de um segundo com cache aquecido.
Autenticação
Autenticação e limites de taxa
Chamadas anônimas funcionam para uso ocasional. Uma chave pessoal (gratuita, gerada nas configurações da sua conta) eleva o teto de rate-limit para analistas e devs que puxam dados em volume. Chaves nunca desbloqueiam novos endpoints; só elevam o teto.
Anônimo, sem chave
PadrãoFaça chamadas sem qualquer header. O bucket é indexado no seu IP, então um script pequeno ou agent LLM com poucas requisições por sessão nunca vai bater o limite.
- Sem conta, sem signup, sem header para setar.
- Bucket por IP, ideal para scripts ad-hoc e tool-use de agent LLM.
- Toma 429 se você sustentar pulls em volume; mude então para uma chave pessoal.
por minuto
60
por dia
5,000
Autenticado, com chave pessoal
Recomendado para volumePasse sua chave como X-API-Key (ou Authorization: Bearer pk_live_…). Chamadas anônimas continuam funcionando em paralelo; a chave só eleva o teto, não desbloqueia novos endpoints.
- Bucket por usuário: suas mudanças de IP não resetam o contador.
- Tetos mais generosos em cada limite por rota.
- Até 5 chaves ativas por conta, revogáveis a qualquer momento.
por minuto
600
por dia
100,000
Headers em cada resposta
Toda resposta bem-sucedida carrega os headers de rate-limit abaixo, para que seu cliente consiga se auto-regular sem retries. Leia-os uma vez por resposta e diminua o ritmo assim que Remaining se aproximar de poucas requisições, não de zero.
| Header | Significado |
|---|---|
| X-RateLimit-Tier | O tier que se aplica a você: anônimo (sem chave) ou autenticado (JWT ou chave de API resolvida). |
| X-RateLimit-Limit-Min | Teto por minuto para seu tier (60 anônimo, 600 autenticado). |
| X-RateLimit-Limit-Day | Teto diário para seu tier (5 000 anônimo, 100 000 autenticado). |
| X-RateLimit-Remaining-Min | Chamadas restantes na janela do minuto atual. Diminua o ritmo quando se aproximar de zero. |
| X-RateLimit-Remaining-Day | Chamadas restantes na janela do dia atual. Reset no mesmo horário todo dia. |
| Retry-After | Enviado apenas em 429. Aguarde estes segundos antes de tentar novamente, normalmente menos de 60 para a janela minuto. |
Erros
Erros que você pode ver
Códigos HTTP padrão. O body é sempre JSON com um campo "detail" descrevendo o problema. Trate 4xx como problema de contrato (sua requisição) e 5xx como problema do nosso lado (retry com backoff).
OK
OK. O body é o payload JSON documentado na referência. Arrays vazios significam "sem linhas", não "faltando", trate-os como dados, não como falha.
Not Modified
Not Modified. Os headers de cache foram validados. Use o body em cache, sem necessidade de re-parse. Retornado automaticamente quando você envia If-None-Match ou If-Modified-Since.
Bad Request
Bad Request. Um parâmetro de query ou shape do body está errado. A mensagem detail nomeia o campo exato. Não tente novamente sem corrigir a entrada.
Unauthorized
Unauthorized. A requisição precisava de uma chave de API ou sessão e não recebeu nenhuma válida, ou as credenciais foram revogadas. Não fique reenviando, reemita a credencial.
Not Found
Not Found. O path ou recurso não existe. Em rotas por-Pokémon, isso costuma significar que o formato ainda não tem dados de uso para esse Pokémon, não um typo do seu lado.
Too Many Requests
Too Many Requests. Você bateu o teto de rate-limit. Leia Retry-After e aguarde. Backoff exponencial é boa etiqueta mas raramente necessário, dada a janela curta.
Server Error
Internal Server Error. Algo explodiu do nosso lado. Tente de novo após alguns segundos; se persistir, nos chame no Discord com a URL da requisição.
Service Unavailable
Service Unavailable. Estamos fazendo deploy ou temporariamente sobrecarregados. Tente de novo com backoff. Atualizações de status no Discord da comunidade.
Regras do jogo
Termos de uso
Quatro regras básicas. Leia uma vez, isso poupa um ping no Discord do seu eu futuro.
Crédito às fontes
Atribuição obrigatória ao redistribuir ou republicar. Credite Pokékipe (link para https://pokekipe.com), e credite a Smogon pelo chaos JSON subjacente que eles publicam todo mês.
Best-effort, sem SLA
Best-effort, sem SLA. Os dados são servidos "as is" sem garantia de uptime. Cache agressivamente e degrade com graça quando um endpoint estiver lento ou retornar 429.
Versionamento
Os esquemas sob /api/v1/ permanecem retro-compatíveis dentro do ciclo de vida da v1. Breaking changes vão para /api/v2/ com aviso prévio no Discord e um header sunset no path depreciado.
Uso comercial
Uso comercial é permitido sob CC BY 4.0. Se você construir algo em cima desta API, adoraríamos saber no Discord da comunidade.
Navegue cada endpoint, tudo em um lugar
Navegue cada endpoint com descrições, tabelas de parâmetros, esquemas de requisição e resposta, e amostras de código em curl, JavaScript e Python. Pesquise toda a API em uma caixa, deeplink para qualquer operação, compartilhe a URL.
- 100+ endpoints
- ·
- 3-pane navegação, conteúdo, amostras
- ·
- busca full-text
- ·
- amostras de requisição live