Pour les développeurs

API publique JSON · v1

Toutes les données affichées par WG-Watch sont aussi disponibles en JSON. Sans clé, sans inscription, gratuitement — pensé pour les bots Discord, les sites de clans et tes propres analyses.

Sans clé API Sans inscription Gratuit
5
Endpoints
0
Clés API nécessaires
0
Inscription nécessaire
JSON
Format de réponse
01

Essayer immédiatement

Aucune clé nécessaire. Ouvre cette adresse dans le navigateur ou récupère-la avec curl :

Terminal · curl GET
$ curl https://wg-watch.com/api/v1/online
$ curl https://wg-watch.com/api/v1/player/519363312/eu
$ curl "https://wg-watch.com/api/v1/online/history?game=wot&region=eu&days=30"
$ curl https://wg-watch.com/api/v1/clan/500214248/eu/weekly
$ curl https://wg-watch.com/api/v1/status
$

L'adresse de départ liste tous les endpoints avec leurs limites, lisible par machine. https://wg-watch.com/api/v1

02

Endpoints

Sept endpoints GET sous une URL de base commune. Chaque réponse porte des en-têtes Cache-Control et le même objet meta avec l'attribution.

URL de base: https://wg-watch.com/api/v1
GET /api/v1/player/{account_id}/{region}

Profil de joueur avec WN8, WN7 et efficacité déjà calculés.

GET /api/v1/player/{account_id}/{region}/history

Historique quotidien et analyse sur 7, 30 et 90 jours. Paramètre : days (1–400).

GET /api/v1/clan/{clan_id}/{region}

Données du clan avec les valeurs moyennes des profils réels des membres.

GET /api/v1/clan/{clan_id}/{region}/weekly

Récapitulatif hebdomadaire du clan : activité des membres, classements et statistiques agrégées.

GET /api/v1/online

Nombres de joueurs actuels par jeu et région, avec le record mesuré.

GET /api/v1/online/history

Série quotidienne des nombres de joueurs. Paramètres : game, region, days.

GET /api/v1/status

État du service et horodatages des caches de données publics.

03

Une seule enveloppe pour toutes les réponses

Succès ou échec : tout se joue sur un seul champ. Le reste est à des places fixes — un seul gestionnaire d'erreurs couvre tous les endpoints.

success — true en cas de succès, false en cas d'erreur. Une seule vérification suffit.

meta — source, version, horodatage et l'attribution (meta.attribution), prête à être liée.

data — les données proprement dites de l'endpoint. En cas d'erreur, l'objet error prend sa place.

200 OK 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 — indique sur combien de profils de membres les moyennes ont réellement été calculées.

04

Ce que cette API offre, que l'API Wargaming n'offre pas

Indicateurs prêts à l'emploi plutôt que données brutes : WN8, WN7 et efficacité sont déjà calculés — y compris les valeurs attendues qu'il faudrait sinon maintenir soi-même.

Historique : Wargaming ne fournit que l'état actuel. WG-Watch collecte des points de mesure quotidiens et en tire des différences sur des périodes.

Moyennes de clan à partir de vrais profils : pas le score Elo, mais le taux de victoire réel des membres — en précisant sur combien de profils il repose.

Charge des serveurs agrégée : valeurs à la minute, séries quotidiennes et records que l'API WG ne fournit pas.

05

Limites de requêtes

Les limites s'appliquent par adresse IP et par minute et sont volontairement généreuses. En cas de dépassement, l'API répond HTTP 429 et indique dans l'en-tête Retry-After quand continuer.

requêtes par minute

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

Les appels en direct sont plus strictement limités

Les profils pas encore en cache sont récupérés en direct chez Wargaming — 5 requêtes par minute par appelant, 30 par minute au total. Les succès en cache ne comptent que contre la limite normale de l'endpoint.

5
/min · IP
30
/min · total
06

Règles d'utilisation

01

Mentionner la source. Quiconque réutilise les données doit mettre un lien vers wg-watch.com. Rien de plus n'est demandé — et c'est indiqué dans chaque réponse sous meta.attribution.

02

Respecter les limites. La limite s'applique par IP et par minute. En cas de dépassement, HTTP 429 avec Retry-After. Ceux qui ont besoin de plus n'ont qu'à demander via le formulaire de contact.

03

Mettre les réponses en cache. Chaque réponse porte un en-tête Cache-Control avec une durée raisonnable. Respecte-le, et les limites suffiront largement.

04

Lecture seule. Il n'y a que du GET. Aucun accès en écriture n'est prévu.

Actualité des données

Les données de joueurs et de clans proviennent du cache et peuvent avoir jusqu'à une heure ; le champ cached_at indique le moment sous forme de timestamp Unix. Si un profil de joueur n'est pas encore dans le cache, l'API le récupère en direct chez Wargaming et le stocke ; la réponse porte alors live_fetched: true. Les appels en direct sont plus strictement limités (5/minute par appelant, 30/minute au total) et ne fournissent pas encore WN8/WN7/efficacité — pour cela, ratings.available: false. Ces valeurs sont générées dès que le profil a été ouvert une fois sur la page. Les nombres de joueurs sont actualisés à la minute.

Depuis le navigateur

L'API définit Access-Control-Allow-Origin: * — un appel direct depuis le site du clan fonctionne sans passer par ton propre serveur.

Versionnage

La version fait partie du chemin — actuellement v1. Les nouvelles versions arrivent à côté, pas par-dessus : les intégrations existantes ne cassent pas.

En-têtes de réponse

Cache-Control indique la durée de validité des données, CORS autorise l'accès direct depuis le navigateur, et Retry-After met fin aux devinettes après 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
07

Erreurs

Les erreurs arrivent toujours sous la même forme. error.code est stable et lisible par machine, error.message s'adresse aux humains et peut changer.

404 error.code · player_not_found
{
  "success": false,
  "error": {
    "code": "player_not_found",
    "message": "No such player on this region.",
    "region": "eu"
  }
}
HTTP Endpoint Description
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.

Quelque chose manque ?

Il manque un champ ou tout un endpoint ? Écris-nous — l'API grandit avec ce qui est réellement nécessaire.

Aller au formulaire de contact