Skip to content
API pública · v1

API pública Pokékipe

Analítica competitiva de Pokémon, gratuita, derivada de las estadísticas mensuales de uso publicadas por Smogon y refrescada cada mes. Sin cuenta para uso ocasional; genera una clave personal desde los ajustes de tu cuenta para elevar el techo de rate-limit en pulls de volumen.

  • Endpoints

    100+

  • Formatos cubiertos

    30+

  • Refresco

    Mensual

  • Auth

    Opcional

  • Licencia

    CC BY 4.0

Por qué existe

Lo que esta API es y lo que no es

Cuatro cosas que saber antes de escribir una sola línea de código contra /api/v1/.

Lo que esta API es

Una superficie JSON de solo lectura sobre los datos competitivos mundiales de Pokémon. Pregunta "¿cuál es el meta de la Gen 9 OU a 1500+ ELO este mes?" o "¿quién contró este Pokémon en el top cut de este torneo?", y obtén una respuesta en una sola llamada con shapes estables y documentadas.

De dónde vienen los datos

Los battle logs mensuales de Smogon (el chaos JSON público), los feeds oficiales de torneos (Pokémon Company, VGC, Smogon Tour), y fuentes comunitarias como Limitless TCG para events community. Pokékipe hace su propia ingestion, normalización y enriquecimiento por encima, y reexpone el resultado limpio.

Lo que esta API no es

No es un puente live a Pokémon Showdown, ni un simulador de combate, ni un endpoint de damage calculator, ni un motor de teambuilding. Esas herramientas viven en el sitio. La API es la capa de datos debajo.

Crédito a las fuentes

Todo el crédito va a las fuentes. Smogon, los exportadores del formato chaos JSON, y la comunidad de jugadores que juega los ladders cada mes son la razón por la que existe este dataset. Pokékipe lo hace consultable, pero no posee los datos brutos.

Empezar

Tu primera llamada, en 30 segundos

Tres ejemplos copy-paste que descargan el catálogo de formatos. Sin clave de API, sin setup, sin signup. Elige tu pestaña de lenguaje, pega, ejecuta.

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

Reemplaza la ruta con cualquier endpoint listado en la referencia de abajo. La primera llamada debería volver en menos de un segundo con caché caliente.

Autenticación

Autenticación y límites de tasa

Las llamadas anónimas funcionan para uso ocasional. Una clave personal (gratuita, generada desde los ajustes de tu cuenta) eleva el techo de rate-limit para analistas y desarrolladores que descargan datos en volumen. Las claves nunca desbloquean nuevos endpoints; solo elevan el techo.

Anónimo, sin clave

Por defecto

Haz llamadas sin ningún header. El bucket está indexado en tu IP, así que un script pequeño o un agente LLM con un puñado de peticiones por sesión nunca tocará el límite.

  • Sin cuenta, sin signup, sin header que poner.
  • Bucket por IP, perfecto para scripts ad-hoc y tool-use de agentes LLM.
  • Devuelve 429 si encadenas pulls de volumen; cambia entonces a una clave personal.

por minuto

60

por día

5,000

Autenticado, con clave personal

Recomendado para volumen

Pasa tu clave como X-API-Key (o Authorization: Bearer pk_live_…). Las llamadas anónimas siguen funcionando en paralelo; la clave solo eleva el techo, no desbloquea nuevos endpoints.

  • Bucket por usuario: tus cambios de IP no resetean el contador.
  • Techos más generosos en cada límite por ruta.
  • Hasta 5 claves activas por cuenta, revocables en cualquier momento.

por minuto

600

por día

100,000

Headers en cada respuesta

Cada respuesta exitosa lleva los headers de rate-limit de abajo, para que tu cliente pueda autorregularse sin reintentos. Léelos una vez por respuesta y baja el ritmo en cuanto Remaining se acerque a unas pocas peticiones, no a cero.

HeaderSignificado
X-RateLimit-TierEl palier que te concierne: anónimo (sin clave) o autenticado (JWT o clave de API resuelta).
X-RateLimit-Limit-MinTecho por minuto para tu palier (60 anónimo, 600 autenticado).
X-RateLimit-Limit-DayTecho diario para tu palier (5 000 anónimo, 100 000 autenticado).
X-RateLimit-Remaining-MinLlamadas restantes en la ventana minuto actual. Baja el ritmo cuando se acerca a cero.
X-RateLimit-Remaining-DayLlamadas restantes en la ventana día actual. Reset a la misma hora de pared cada día.
Retry-AfterSolo enviado en 429. Espera estos segundos antes de reintentar, normalmente menos de 60 para la ventana minuto.

Errores

Errores que podrías ver

Códigos HTTP estándar. El cuerpo es siempre JSON con un campo "detail" que describe el problema. Trata 4xx como problema de contrato (tu petición) y 5xx como problema nuestro (reintenta con backoff).

200

OK

OK. El cuerpo es el payload JSON documentado en la referencia. Los arrays vacíos significan "sin filas", no "falta", trátalos como datos, no como un fallo.

304

Not Modified

Not Modified. Los headers de caché se validaron. Usa el cuerpo en caché, sin necesidad de re-parsear. Se devuelve automáticamente cuando envías If-None-Match o If-Modified-Since.

400

Bad Request

Bad Request. Un parámetro de query o el shape del body es incorrecto. El mensaje detail nombra el campo exacto. No reintentes sin corregir la entrada.

401

Unauthorized

Unauthorized. La petición necesitaba una clave de API o sesión y no recibió ninguna válida, o las credenciales fueron revocadas. No sigas reintentando, vuelve a emitir la credencial.

404

Not Found

Not Found. La ruta o el recurso no existe. Para rutas por-Pokémon, esto suele significar que el formato aún no tiene datos de uso para ese Pokémon, no un error tipográfico de tu lado.

429

Too Many Requests

Too Many Requests. Has tocado el techo de rate-limit. Lee Retry-After y espera. Backoff exponencial es buen estilo pero raramente necesario dado que la ventana es corta.

500

Server Error

Internal Server Error. Algo explotó de nuestro lado. Reintenta una vez tras unos segundos; si persiste, escríbenos en Discord con la URL de la petición.

503

Service Unavailable

Service Unavailable. Estamos desplegando o temporalmente sobrecargados. Reintenta con backoff. Estados publicados en el Discord de la comunidad.

Reglas del juego

Términos de uso

Cuatro reglas básicas. Léelas una vez, le ahorras un ping de Discord a tu yo futuro.

Crédito a las fuentes

Atribución requerida al redistribuir o republicar. Acredita a Pokékipe (link a https://pokekipe.com), y acredita a Smogon por el chaos JSON subyacente que publican cada mes.

Best-effort, sin SLA

Best-effort, sin SLA. Los datos se sirven "as is" sin garantía de uptime. Cachéa agresivamente y degrada con gracia cuando un endpoint sea lento o devuelva 429.

Versionado

Los esquemas bajo /api/v1/ se mantienen retrocompatibles durante el ciclo de vida de v1. Los breaking changes van a /api/v2/ con aviso previo en Discord y un header sunset en la ruta deprecada.

Uso comercial

El uso comercial está permitido bajo CC BY 4.0. Si construyes algo encima de esta API, nos encantaría escucharlo en el Discord de la comunidad.

Referencia · OpenAPI 3Live, tres-paneles

Explora cada endpoint, todo en un sitio

Explora cada endpoint con descripciones, tablas de parámetros, esquemas de petición y respuesta, y muestras de código en curl, JavaScript y Python. Busca toda la API en una caja, deeplink a cualquier operación, comparte la URL.

  • 100+ endpoints
  • ·
  • 3-pane navegación, contenido, muestras
  • ·
  • búsqueda de texto completo
  • ·
  • muestras de petición en vivo