Skip to content

Battlefield 3

Deprecation and retirement of v1 API

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

Battlefield 3 endpoints are available at https://api.bflist.io/bf3/v1.

Live stats#

Get the number of currently active players and servers in Battlefield 3.

GET /livestats

Response

200 OK

{
  "servers": 183,
  "players": 1477
}

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: 4
[
  {
    "guid": "d51411f6-4ef8-454d-8b72-a4f80df906ad",
    "ip": "94.250.194.4",
    "port": 25200,
    "name": "Cloverfield :: TOTAL WAR : No Rules | 64 Slots",
    "numPlayers": 36,
    "maxPlayers": 64,
    "map": "MP_013",
    "mapLabel": "Damavand Peak",
    "gameType": "ConquestLarge",
    "roundsPlayed": 0,
    "roundsTotal": 1,
    "targetScore": 0,
    "password": false,
    "ranked": true,
    "punkbuster": true,
    "punkbusterVersion": "v1.905 | A1386 C2.352",
    "joinQueue": true,
    "quickmatch": true,
    "uptime": 379790,
    "roundTime": 997,
    "region": "EU",
    "country": "DE",
    "pingSite": "ams",
    "version": "3065862",
    "teams": [
      {
        "tickets": 998.397
      },
      {
        "tickets": 1002.03906
      }
    ],
    "players": [
      {
        "name": "McWhooopper",
        "team": 1,
        "squad": 2,
        "squadLabel": "Bravo",
        "kills": 7,
        "deaths": 10,
        "score": 2916,
        "rank": 6,
        "rankLabel": "Lance Corporal 1 Star",
        "ping": 31
      },
      // 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": "86fd8e84-9d67-48af-8801-aea0435601b4",
  "ip": "94.250.199.89",
  "port": 25200,
  "name": "[JAH] Warriors #08 - Markaz Monolith - 48 Slots",
  "numPlayers": 21,
  "maxPlayers": 32,
  "map": "XP4_FD",
  "mapLabel": "Markaz Monolith",
  "gameType": "ConquestLarge",
  "roundsPlayed": 1,
  "roundsTotal": 2,
  "targetScore": 0,
  "password": false,
  "ranked": true,
  "punkbuster": true,
  "punkbusterVersion": "v1.905 | A1386 C2.352",
  "joinQueue": true,
  "quickmatch": false,
  "uptime": 49083,
  "roundTime": 4480,
  "region": "EU",
  "country": "DE",
  "pingSite": "ams",
  "version": "3065862",
  "teams": [
    {
      "tickets": 206.844238
    },
    {
      "tickets": 916.877869
    }
  ],
  "players": [
    {
      "name": "BattleForgeChen",
      "team": 2,
      "squad": 1,
      "squadLabel": "Alpha",
      "kills": 18,
      "deaths": 0,
      "score": 7808,
      "rank": 105,
      "rankLabel": "Colonel Service Star 60",
      "ping": 212
    },
    // 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": "SetPhaserToKill",
  "team": 2,
  "squad": 1,
  "squadLabel": "Alpha",
  "kills": 4,
  "deaths": 6,
  "score": 7730,
  "rank": 145,
  "rankLabel": "Colonel Service Star 100",
  "ping": 311
}

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.