Skip to content
API pública · v1

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ão

Faç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 volume

Passe 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.

HeaderSignificado
X-RateLimit-TierO tier que se aplica a você: anônimo (sem chave) ou autenticado (JWT ou chave de API resolvida).
X-RateLimit-Limit-MinTeto por minuto para seu tier (60 anônimo, 600 autenticado).
X-RateLimit-Limit-DayTeto diário para seu tier (5 000 anônimo, 100 000 autenticado).
X-RateLimit-Remaining-MinChamadas restantes na janela do minuto atual. Diminua o ritmo quando se aproximar de zero.
X-RateLimit-Remaining-DayChamadas restantes na janela do dia atual. Reset no mesmo horário todo dia.
Retry-AfterEnviado 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).

200

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.

304

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.

400

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.

401

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.

404

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.

429

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.

500

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.

503

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.

Referência · OpenAPI 3Live, três-painéis

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