Skip to content

Battlefield 4

Deprecation and retirement of v1 API

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

Battlefield 4 endpoints are available at https://api.bflist.io/bf4/v1.

Live stats#

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

GET /livestats

Response

200 OK

{
  "servers": 682,
  "players": 6174
}

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

Note: Some servers only contain a limited set of attributes. For these servers, _completeInfo will be set to false. More details below.

Response

200 OK
X-Total-Pages: 13
[
  {
    "guid": "18b3fdf2-11c5-4156-8175-8553e2f50576",
    "ip": "94.250.208.28",
    "port": 25200,
    "name": "SUPER@ [SiC] S3 Second Assault / Final Stand Conquest All Maps",
    "numPlayers": 64,
    "maxPlayers": 64,
    "map": "XP0_Firestorm",
    "mapLabel": "Op. Firestorm 2014",
    "gameType": "ConquestLarge",
    "roundsPlayed": 1,
    "roundsTotal": 1,
    "targetScore": 0,
    "password": false,
    "ranked": true,
    "punkbuster": true,
    "punkbusterVersion": "v1.905 | A1390 C2.351",
    "joinQueue": true,
    "quickmatch": false,
    "uptime": 38222,
    "roundTime": 1902,
    "region": "EU",
    "country": "DE",
    "pingSite": "ams",
    "version": "179665",
    "teams": [
      {
        "tickets": 163.133789
      },
      {
        "tickets": 133.308365
      }
    ],
    "players": [
      {
        "name": "HorseVengeance",
        "team": 2,
        "squad": 7,
        "squadLabel": "Golf",
        "kills": 4,
        "deaths": 4,
        "score": 1788,
        "rank": 140,
        "rankLabel": "General",
        "ping": 175,
        "type": 0,
        "typeLabel": "Player"
      },
      // more players
    ],
    "_completeInfo": true
  },
  {
    "guid": "bd860787-4163-4467-9d4f-cd468a520fd5",
    "ip": "185.50.104.69",
    "port": 25501,
    "name": "Battlefield da Depressao - LOCKER 24/7 50Hz - i3D.net",
    "numPlayers": 61,
    "maxPlayers": 64,
    "map": "MP_Prison",
    "mapLabel": "Operation Locker",
    "gameType": "Obliteration",
    "roundTime": 967,
    "players": [
      {
        "name": "GuiksOfficial",
        "team": "0",
        "squad": 0,
        "squadLabel": "No squad",
        "kills": 0,
        "deaths": 0,
        "score": 0,
        "rank": 10,
        "rankLabel": "Lance Corporal V",
        "ping": -1,
        "type": 0,
        "typeLabel": "Player"
      },
      // more players
    ],
    "_completeInfo": false
  },
  // 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.

Note: Some servers only contain a limited set of attributes. For these servers, _completeInfo will be set to false. More details below.

Response

200 OK
{
  "guid": "4b2e867a-058b-4f81-b5c9-a84b41777310",
  "ip": "94.250.199.131",
  "port": 25200,
  "name": "5 ### | Pizza Party | ### | INFANTRY MIXMODES VANILLA | EPS 60",
  "numPlayers": 45,
  "maxPlayers": 64,
  "map": "MP_Resort",
  "mapLabel": "Hainan Resort",
  "gameType": "Domination",
  "roundsPlayed": 1,
  "roundsTotal": 2,
  "targetScore": 0,
  "password": false,
  "ranked": true,
  "punkbuster": true,
  "punkbusterVersion": "v1.905 | A1390 C2.351",
  "joinQueue": true,
  "quickmatch": false,
  "uptime": 20361,
  "roundTime": 99,
  "region": "EU",
  "country": "DE",
  "pingSite": "ams",
  "version": "179665",
  "teams": [
    {
      "tickets": 489
    },
    {
      "tickets": 454.5987
    }
  ],
  "players": [
    {
      "name": "Liquid-LCS",
      "team": 2,
      "squad": 1,
      "squadLabel": "Alpha",
      "kills": 0,
      "deaths": 1,
      "score": 150,
      "rank": 140,
      "rankLabel": "General",
      "ping": 53,
      "type": 0,
      "typeLabel": "Player"
    },
    // more players
  ],
  "_completeInfo": true
}

Get a player's details#

GET /players/:name

Player type is one of: player (0), spectator(1), commander (2).

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": "Thelolwut7",
  "team": 2,
  "squad": 6,
  "squadLabel": "Foxtrot",
  "kills": 18,
  "deaths": 9,
  "score": 5049,
  "rank": 64,
  "rankLabel": "Chief Warrant Officer Three IV",
  "ping": 58,
  "type": 0,
  "typeLabel": "Player"
}

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.

Incomplete servers#

Battlefield 4 servers can be updated in two different ways. Either directly, by retrieving data from the game server itself, or via Battlelog snapshots. However, a lot more details are available when querying the server directly. Hence Battlelog snapshots are only used if the direct communication with the game server fails.

To indicate whether a server has the complete set of properties available, each server object contains a boolean property: _completeInfo. If _completeInfo is true, the server contains all the usual properties. If, however, _completeInfo is false, the server only contains a limited set of properties. The following properties will be missing: roundsPlayed, roundsTotal, targetScore, password, ranked, punkbuster, punkbusterVersion, joinQueue, quickmatch, uptime, region, country, pingSite, version, teams.