Skip to content

Battlefield: Bad Company 2

Deprecation and retirement of v1 API

Version 1 of the API will be deprecated on January 1, 2026. Please migrate to version 2.

Our Battlefield: Bad Company 2 endpoints are available at https://api.bflist.io/bfbc2/v1.

Please note: We are currently not able to query all Battlefield: Bad Company 2 servers, due to issues with how some servers are hosted. Which is why do not offer a livestats endpoint for BFBC2. If you have a server that you would like see added, please reach out via Twitter or email.

Get a page from the list of servers#

Per default, we send 50 servers per page. You can set a custom page size betweeen 20 and 100 via an optional perPage query parameter.

GET /servers/:page

Response

200 OK
X-Total-Pages: 2
[
  {
    "guid": "237052242",
    "ip": "173.199.105.53",
    "port": 19567,
    "name": "Fire & Frost Conquest - Arica Harbor 24/7",
    "numPlayers": 14,
    "maxPlayers": 32,
    "map": "Levels/MP_006CQ",
    "mapLabel": "Arica Harbour",
    "gameType": "CONQUEST",
    "roundsPlayed": 2,
    "roundsTotal": 2,
    "targetScore": 0,
    "password": false,
    "ranked": true,
    "punkbuster": true,
    "punkbusterVersion": "v1.763 | A1382 C2.305",
    "joinQueue": true,
    "uptime": 58267,
    "roundTime": 3572,
    "region": "EU",
    "version": "851434",
    "teams": [
      {
        "tickets": 349.5546
      },
      {
        "tickets": 755.46545
      }
    ],
    "players": [
      {
        "name": "4karos",
        "tag": "15 RUS",
        "team": 1,
        "squad": 1,
        "squadLabel": "Alpha",
        "kills": 49,
        "deaths": 61,
        "score": 3670,
        "ping": 161
      },
      // more players
    ]
  },
  // more servers
]

Get a server's details#

GET /servers/:ip::port

Note: You can also access each property individually. For example, GET /servers/:ip::port/name will return only the server's name as plain text. Complex properties (gameExpansions, extendedInfo, settings, maps, slots, teams, players) are returned as JSON. So, GET /servers/:ip::port/players will return a JSON array of players on the server.

Response

200 OK
{
  "guid": "937183869",
  "ip": "108.61.112.196",
  "port": 19567,
  "name": "#1 [=RhRA=] Panzerschlacht HC  by rhra.de",
  "numPlayers": 32,
  "maxPlayers": 32,
  "map": "Levels/MP_005",
  "mapLabel": "Atacama Desert",
  "gameType": "CONQUEST",
  "roundsPlayed": 1,
  "roundsTotal": 1,
  "targetScore": 0,
  "password": false,
  "ranked": true,
  "punkbuster": true,
  "punkbusterVersion": "v1.905 | A1382 C2.305",
  "joinQueue": true,
  "uptime": 348761,
  "roundTime": 3362,
  "region": "EU",
  "version": "851434",
  "teams": [
    {
      "tickets": 67.940315
    },
    {
      "tickets": 703.44141
    }
  ],
  "players": [
    {
      "name": "Zulumaster",
      "tag": "=RhRA=",
      "team": 2,
      "squad": 0,
      "squadLabel": "No squad",
      "kills": 0,
      "deaths": 0,
      "score": 0,
      "ping": 0
    },
    // more players
  ]
}

Get a player's details#

GET /players/:name

Note: You can also access each property individually. For example, GET /players/:name/score will return only the players's current score as plain text.

Response

200 OK
{
  "name": "bulletshy07",
  "tag": "",
  "team": 1,
  "squad": 1,
  "squadLabel": "Alpha",
  "kills": 14,
  "deaths": 6,
  "score": 7600,
  "ping": 84
}

Get a player's current server's details#

GET /players/:name/server

Please see the section on getting an individual server's details, as this endpoint's features and response structure are identical.