API pública JSON · v1
Todos los datos que muestra WG-Watch también están disponibles como JSON. Sin clave, sin registro, gratis: pensado para bots de Discord, sitios web de clanes y análisis propios.
Pruébalo ya
No se necesita clave. Abre esta dirección en el navegador o consúltala con curl:
La dirección inicial lista todos los endpoints con sus límites en formato legible por máquina. https://wg-watch.com/api/v1
Endpoints
Siete endpoints GET bajo una URL base común. Cada respuesta incluye cabeceras Cache-Control y el mismo objeto meta con la atribución.
https://wg-watch.com/api/v1
/api/v1/player/{account_id}/{region}
Perfil de jugador con WN8, WN7 y eficiencia ya calculados.
/api/v1/player/{account_id}/{region}/history
Historial diario y evaluación para 7, 30 y 90 días. Parámetro: days (1–400).
/api/v1/clan/{clan_id}/{region}
Datos del clan con los valores medios de los perfiles reales de los miembros.
/api/v1/clan/{clan_id}/{region}/weekly
Resumen semanal del clan: actividad de los miembros, clasificaciones y estadísticas agregadas.
/api/v1/online
Cifras actuales de jugadores por juego y región, con el máximo medido.
/api/v1/online/history
Serie diaria de cifras de jugadores. Parámetros: game, region, days.
/api/v1/status
Estado del servicio y marcas de tiempo de las cachés públicas.
Un mismo formato para todas las respuestas
El éxito o el error se deciden en un solo campo. Todo lo demás está en lugares fijos: un solo manejo de errores cubre todos los endpoints.
success — true en caso de éxito, false en caso de error. Basta una sola comprobación.
meta — fuente, versión, marca de tiempo y la atribución (meta.attribution), lista para enlazar.
data — los datos reales del endpoint. En caso de error, un objeto error ocupa su lugar.
GET /api/v1/clan/500214248/eu
{
"success": true,
"meta": {
"source": "WG-Watch.com",
"version": "v1",
"generated": "2026-08-06T18:05:12+00:00",
"attribution": "Data via wg-watch.com — please credit when reusing."
},
"data": {
"clan_id": 500214248,
"tag": "MERCY",
"name": "No Mercy",
"members_count": 100,
"ratings": {
"elo_10": 1146,
"elo_8": 1000,
"skirmish_win_rate": 63.59,
"skirmish_battles": 4590
},
"members": {
"profiles_measured": 98,
"avg_win_rate": 55.24,
"avg_damage": 1804,
"avg_battles": 20983
},
"cached_at": 1786031123
}
}
members.profiles_measured —
indica de cuántos perfiles de miembros se calcularon realmente las medias.
Lo que esta API ofrece y la API de Wargaming no
Métricas listas en lugar de datos brutos: WN8, WN7 y eficiencia ya están calculados, incluidos los valores esperados que de otro modo tendrías que mantener tú.
Historial: Wargaming solo entrega el estado actual. WG-Watch recoge puntos de medición diarios y devuelve diferencias en periodos de tiempo.
Medias de clanes basadas en perfiles reales: no el número de Elo, sino la tasa de victorias real de los miembros, indicando de cuántos perfiles procede.
Carga de servidores agregada: valores por minuto, series diarias y máximos que la API de WG no ofrece así.
Límites de solicitud
Los límites se aplican por dirección IP y minuto, y son deliberadamente generosos. Si los superas, la API responde con HTTP 429 e indica en la cabecera Retry-After cuándo continuar.
solicitudes por minuto
pro IP/api/v1/player/{account_id}/{region}
30/min
/api/v1/player/{account_id}/{region}/history
20/min
/api/v1/clan/{clan_id}/{region}
30/min
/api/v1/clan/{clan_id}/{region}/weekly
10/min
/api/v1/online
60/min
/api/v1/online/history
30/min
/api/v1/status
60/min
Las consultas en vivo tienen límites más estrictos
Los perfiles que aún no están en la caché se obtienen en vivo de Wargaming: 5 solicitudes por minuto por solicitante, 30 por minuto en total. Los aciertos de caché solo cuentan contra el límite normal del endpoint.
Reglas de uso
Indica la fuente. Quien reutilice los datos enlaza wg-watch.com. No se pide nada más, y aparece en cada respuesta bajo meta.attribution.
Respeta los límites. El límite es por IP y por minuto. Si lo superas, recibirás HTTP 429 con Retry-After. Si necesitas más, pregúntanos por el formulario de contacto.
Cachea las respuestas. Cada respuesta lleva una cabecera Cache-Control con una duración razonable. Respétala y los límites serán suficientes sin esfuerzo.
Solo lectura. Solo hay GET. No se contemplan accesos de escritura.
Actualidad de los datos
Los datos de jugadores y clanes provienen de la caché y pueden tener hasta una hora de antigüedad: el campo cached_at indica el momento como marca de tiempo Unix. Si un perfil aún no está en la caché, la API lo obtiene en vivo de Wargaming y lo guarda; la respuesta lleva entonces live_fetched: true. Las consultas en vivo están más limitadas (5/minuto por solicitante, 30/minuto en total) y aún no incluyen WN8/WN7/eficiencia: para eso está ratings.available: false. Estos valores se generan en cuanto el perfil se abre una vez en la página. Las cifras de jugadores están actualizadas al minuto.
Desde el navegador
La API establece Access-Control-Allow-Origin: *: una consulta directa desde el sitio web del clan funciona sin pasar por un servidor propio.
Versionado
La versión forma parte de la ruta: actualmente v1. Las nuevas versiones llegan al lado, no encima: las integraciones existentes no se rompen.
Cabeceras de respuesta
Cache-Control indica la vigencia de los datos, CORS permite el acceso directo desde el navegador y Retry-After elimina las suposiciones tras un 429.
Access-Control-Allow-Origin: * Cache-Control: public, max-age=300 Content-Type: application/json; charset=utf-8 Retry-After: 60 # nur bei HTTP 429
Errores
Los errores siempre vienen en el mismo formato. error.code es estable y legible por máquina; error.message está dirigido a personas y puede cambiar.
error.code · player_not_found
{
"success": false,
"error": {
"code": "player_not_found",
"message": "No such player on this region.",
"region": "eu"
}
}
| HTTP | Endpoint | Descripción |
|---|---|---|
| 400 | invalid_account_id |
Account ID missing or not a positive integer. |
| 400 | invalid_region |
Region is not one of eu, na, asia. |
| 404 | player_not_found |
No account with this ID on this region. |
| 404 | clan_not_cached |
Clan not in cache yet. |
| 404 | no_history |
No snapshots recorded for this account. |
| 404 | unknown_endpoint |
Path does not match any endpoint. |
| 404 | unknown_version |
API version in the path does not exist. |
| 429 | rate_limited |
Per-IP limit exceeded. See Retry-After. |
| 429 | rate_limited_global |
Shared live-lookup budget exhausted this minute. |
| 503 | database_unavailable |
Temporary backend problem. |
¿Falta algo?
¿Falta un campo o un endpoint completo? Escríbenos: la API crece con lo que realmente se necesita.
Ir al formulario de contacto