WoT Statistics API

Comprehensive World of Tanks player statistics and analytics

v1.0.0

Raw Database Endpoints

These endpoints return raw database records with all fields as stored in the database tables. Useful for detailed analysis and data exports. Returns null if the requested resource is not found.

GET /tanks

Retrieves a list of all tanks in the database with their complete information. Returns an empty list if no tanks exist in the database.

Example Request
GET /tanks
Example Response
{
  "count": 3,
  "tanks": [
    {
      "tank_id": 41745,
      "name": "T-34",
      "tier": 5,
      "class_type": "Medium Tank",
      "nation": "USSR"
    }
  ]
}

GET /maps

Retrieves a list of all maps in the database with their complete information. Returns an empty list if no maps exist in the database.

Example Request
GET /maps
Example Response
{
  "count": 2,
  "maps": [
    {
      "map_id": 1,
      "map_name": "Himmelsdorf"
    }
  ]
}

GET /tank/{tank_id}

Retrieves detailed information about a specific tank by its ID. Returns null if the tank is not found.

Example Request
GET /tank/41745
Example Response
{
  "tank_id": 41745,
  "name": "T-34",
  "tier": 5,
  "class_type": "Medium Tank",
  "nation": "USSR"
}

GET /map/{map_name}

Retrieves information about a specific map by its name. Returns null if the map is not found. Map names are case-sensitive.

Example Request
GET /map/Himmelsdorf
Example Response
{
  "map_id": 1,
  "map_name": "Himmelsdorf"
}

GET /tankstats/{tank_id}

Retrieves all individual match statistics for a specific tank with pagination support. Returns complete raw database records including all fields such as battle_time, damage metrics, spotting data, and more. Returns an empty matches list if no matches are found for the tank.

Query Parameters
page (integer, optional) — Page number to retrieve. Default: 1
limit (integer, optional) — Number of results per page. Default: 50
Example Request
GET /tankstats/7489?page=1&limit=10
Example Response (truncated)
{
  "tank_id": 7489,
  "page": 1,
  "limit": 10,
  "total_matches": 150,
  "total_pages": 15,
  "matches": [
    {
      "match_entry": 9999008,
      "tank_id": 7489,
      "map_id": 35,
      "battle_time": "2025-09-18T19:56:27",
      "spawn": 2,
      "won": true,
      "total_damage": 1337,
      "...": "..."
    }
  ]
}

GET /mapstats/{map_id}

Retrieves all individual match statistics for a specific map with pagination support (raw database records). Returns every match_stats row for the requested map ID. Returns an empty matches list if no matches are found for the map.

Query Parameters
page (integer, optional) — Page number to retrieve. Default: 1
limit (integer, optional) — Number of results per page. Default: 50
Example Request
GET /mapstats/35?page=1&limit=20
Example Response (truncated)
{
  "map_id": 35,
  "page": 1,
  "limit": 20,
  "total_matches": 250,
  "total_pages": 13,
  "matches": [
    {
      "match_entry": 100234,
      "tank_id": 7489,
      "map_id": 35,
      "battle_time": "2025-09-18T19:56:27",
      "won": true,
      "total_damage": 1875,
      "...": "..."
    }
  ]
}

GET /tankmapstats/{tank_id}/{map_id}

Retrieves all match statistics for a specific tank on a specific map with pagination support. Returns an empty matches list if no matches are found for the tank-map combination.

Query Parameters
page (integer, optional) — Page number to retrieve. Default: 1
limit (integer, optional) — Number of results per page. Default: 50
Example Request
GET /tankmapstats/7249/12?page=1&limit=25
Example Response (truncated)
{
  "tank_id": 7249,
  "map_id": 12,
  "page": 1,
  "limit": 25,
  "total_matches": 75,
  "total_pages": 3,
  "matches": [
    {
      "match_entry": 100321,
      "tank_id": 7249,
      "map_id": 12,
      "battle_time": "2025-09-19T20:15:33",
      "spawn": 1,
      "won": true,
      "total_damage": 2580,
      "...": "..."
    }
  ]
}

Computed Statistics Endpoints

These endpoints return aggregated and computed statistics derived from raw data. Perfect for dashboards and analytics visualizations. Returns zero values or empty structures if no data is available.

GET /tankstats/advanced/{tank_id}

Retrieves aggregated advanced statistics for a specific tank including total matches, max damage, average damage, and win count. The tank_name field will be null if the tank ID doesn't exist in the database.

Example Request
GET /tankstats/advanced/41745
Example Response
{
  "tank_name": "T-34",
  "tank_count": 45,
  "max_damage": 2350,
  "average_damage": 1542,
  "won_games": 28
}

GET /mapsidestats/{map_id}

Retrieves aggregated statistics for a specific map by spawn side, including total matches played, wins, and win rates for each side. Useful for analyzing map balance.

Example Request
GET /mapsidestats/35
Example Response
{
  "map_id": 35,
  "total_matches": 250,
  "side_one": {
    "total_matches": 125,
    "wins": 68,
    "win_rate": 54.4
  },
  "side_two": {
    "total_matches": 125,
    "wins": 57,
    "win_rate": 45.6
  }
}

GET /platoonstats

Compares performance statistics between solo play (platoon = 0) and platoon play (platoon ≠ 0), showing total matches, total damage, and average damage for each category.

Example Request
GET /platoonstats
Example Response
{
  "no_platoon": {
    "count": 150,
    "total_damage": 225000,
    "average_damage": 1500
  },
  "platoon": {
    "count": 75,
    "total_damage": 135000,
    "average_damage": 1800
  }
}

Utility Endpoints

Health check and service status endpoints.

GET /

Displays this API documentation page.

GET /health

Health check endpoint to verify API availability.

Example Response
{
  "status": "healthy",
  "service": "WoT Statistics API"
}