EoL for API version 1, 2 and 4

Starting January 15th 2022, API v1 and v2 will no longer be available. API v4 support will be dropped starting 15th January 2022 and will no longer be available in a few weeks/month. Please migrate to v5 if you aren't using it already. To use v5, add &version=5 to your API calls.

Found a bug? A question?

Open a ticket on discord, or PM HeyImLifeline (hugo#0069) :-) Discord here


By generating an API key, you accept that your API key can be suspended without any notice and for any reason. It's also highly recommended to join our Discord for any support & info.

Project URL (not required):

(Very) short usage description:

Player stats API

Clubs beta testing

You can query a user's club information by adding the "enableClubsBeta" GET parameter. It will be enabled by default in the short term.

Basic query

Endpoint: / Parameters: version [4,5], 5 is the default one and the only one actively supported. (API v1 and v2 are no longer available). | Platform [PC,PS4,X1], Nintendo Switch users cannot be fetched. For PC player, you must use the Origin account name linked to the Steam account otherwise you may run into errors. | Auth [YOURAPIKEY], use the API key generated.

Authorization You can either put your API Key as a GET parameter in your query ("auth") or use an "Authorization" header with your API Key.

Request example:


You can also query multiple players at the same time, response will be as an array of players. The more players you add, the longer the query will take:


UID query

You can query users by their UIDs, multiple UID queries will also work with the syntax above. Example query:


API response

The response will be as follows, for version 5

"global" -> Contains main account data, such as avatar, name, UID, ranked informations and battlepass data (For battlepass data to be displayed, the user must have the Battlepass badge displayed on his currently selected legend). The "badges" array contains all ACCOUNT WIDE saved badges in our database. Legend specific badges will be saved in the "legends" array.
"realtime" -> Contains some basic information about the account, such as the lobbyState (open/invite), if the player is in game, online or offline, if his party is full and his currently selected legend.
"legends" -> The currently selected legend will ONLY return currently selected trackers and badges. For past saved data, look into the "all" array. Each legend will be displayed in the "all" array, with current and past saved data for trackers and badges. Each tracker data saved will also include a "rank" array, which is the player ladder position from our database. This value is updated each 6 hours, and will return a string "NOT_CALCULATED_YET" if it has not been updated yet. The lower topPercent is, the better.
"total" -> A sum of each stats saved from the player.
All stats trackers keys can be found on

New match history API

Your API key must be whitelisted to access this API

To prevent abuse and ensure fairuse of this API, you must have your API key whitelisted first. To do so, open a ticket on the Apex Legends API discord server (see the link on the homepage) and provide the following information: How to access your project? How will the data be used? How many users are you planning to query data from? Provide any additional info you may find necessary, screenshots of your current end product are appreciated. We reserve the right remove your access if you don't make "fairuse" of it.

The legacy match history API will no longer be updated in the following weeks and is being replaced with a newer version, available to anyone.

Basic Request


API response

[ { "uid": "1000575543540", "name": "HeyImLIFELINE", "legendPlayed": "Lifeline", "gameMode": "BATTLE_ROYALE", "gameLengthSecs": 1069, "gameStartTimestamp": 1628691346, "gameEndTimestamp": 1628692415, "gameData": [ { "key": "kills", "value": 3, "name": "Kills" }, { "key": "dropped_items_for_squadmates", "value": 3, "name": "Care items for mates" }, { "key": "damage", "value": 1097, "name": "Damage" } ], "estimatedLevelProgress": 4140, "BRScoreChange": 238, "BRScore": 1644, "ArenasScoreChange": 0, "ArenasScore": 0, "cosmetics": { "pose": "Peace", "skin": "Revolutionary", "frame": "Feel the Beat", "intro": "Champion, challenger", "poseRarity": "Common", "skinRarity": "Rare", "frameRarity": "Legendary", "introRarity": "Common" } } ]

All fields should be easy to understand. gameMode can either be "BATTLE_ROYALE", "ARENAS" or "UNKNOWN". UNKNOWN will be returned if we couldn't determine which game mode was played.

To update the content of the API, make a basic stats query on the player you want to save games. Basic stats requests should be made every 4mins to 6mins only (faster requests only aimed at updating this API content will NOT be considered fairuse). If your current implementation forces you to make more frequent updates on a given player, don't forget to say it in your first whitelist request.

Optional parameters

mode: Can be UNKONWN, ARENAS, BATTLE_ROYALE. Will only return games in the given game mode (for "ANY" game mode, just don't use it).

start: UNIX timestamp to only return games after the given timestamp.

end: UNIX timestamp to only return games before the given timestamp.

limit: Only return X most recent games.

Those parameters can be combined. To only get the 10 most recent games for player UID 1000575543540 starting from 1628672946 to 1628687519 in Battle Royale:


Legacy Match history API

This API is only available to Supporters

This API uses lots of server ressources. Only people who help us paying the bills get access to it. You can support us on Patreon, and you can ask questions on discord if needed.

Query structure

Like any other request, you must have an API key. It is highly to use UIDs instead of Names in this query, as if the user changes name, his data will no longer be saved anymore. DO NOT mix names and UIDs in your tracked players list. Only use one type.

An example query would be, with UIDs (you can replace uid=UID by name=NAME, like in the Stats API if you really want to):


The "history" parameter must be set to 1 to access the match history API. Data returned differs according to the "action" parameter


The action=info parameter will return the players you're currently tracking. If you're using UIDs, the name field will be replaced by uid as an int. "registered" is your total currently tracked players.

{ "registered": 2, "data": [ { "name": "mrc9h13n", "platform": "PC" }, { "name": "heyimlifeline", "platform": "PC" } ] }


This parameter will return ALL tracked events for the player given in the player and platform parameter. An example response would be

[ { "uid": "1000575543540", "player": "HeyImLIFELINE", "timestamp": "1575905943", "eventType": "Game", "xpProgress": "180", "gameLength": "3", "legendPlayed": "Lifeline", "event": [ { "value": 95, "key": "damage", "name": "Damage" }, { "value": 1, "key": "games_played", "name": "Games played" } ] }, { "uid": "1000575543540", "player": "HeyImLIFELINE", "timestamp": "1575905943", "eventType": "Session", "event": { "action": "leave", "sessionDuration": "9" } }, { "uid": "1000575543540", "player": "HeyImLIFELINE", "timestamp": "1575905673", "eventType": "Level", "event": { "newLevel": "89" } }, { "uid": "1000575543540", "player": "HeyImLIFELINE", "timestamp": "1575905673", "eventType": "Game", "xpProgress": "16740", "gameLength": "4", "legendPlayed": "Lifeline", "event": [ { "value": 1, "key": "games_played", "name": "Games played" } ] }, { "uid": "1000575543540", "player": "HeyImLIFELINE", "timestamp": "1575905403", "eventType": "Level", "event": { "newLevel": "88" } }, { "uid": "1000575543540", "player": "HeyImLIFELINE", "timestamp": "1575905403", "eventType": "Session", "event": { "action": "join" } } ]

There are 4 events tracked: Login, leave, level up, rank up and game played.

Game will return the data from the player's trackers displayed on his profile (max 3), the legend he was using, timestamp, XP progress (approx.) and the game duration.


Removes the given user from the tracked users list. Will return your current registered users.


Add the given player to your current registered users. Maximum amount depends on your API access type.

Map rotation API

Return the current and next map in rotation for Battle Royale, Arenas and Ranked modes. Returned data should be self-explanatory.


Crafting rotation API

Returns the current items available to craft in Replicators.

Make a call with your API key to the following endpoint


News API


Make a call with your API key to the following endpoint


You can change en-us by your wanted language.

Server status API


You must put either a clickable link to "" OR have a message such as "Data from" when displaying data coming from this API. Your key may be suspended otherwise.

Gives Origin logins, EA novafusion, EA accounts, Apex Crossplay Oauth (any platform other than Mobile), our core systems and 3rd party gaming platforms (Xbox live/PSN). Update every 3 to 5 minutes. Status may be "UP", "DOWN", "SLOW", "OVERLOADED" or "NO DATA".


Origin/EA API

Used to query a player without getting his Apex Legends Stats. This player must however have already played Apex Legends, otherwise you will get a player not found error. If you want to find ANY player on ANY platform, see "Name to UID" API below.
the "showAllHits" parameter may be added to your request to show all users returned, instead of the player with the highest matching score.


Name to UID API

Used find the UID of a player on any platform, even if he has not played Apex before. Platforms may be [PC,PS4,X1] like Stats API.