Making Requests

Content Negotiation

Clients using the API should specify that they accept responses using the application/vnd.api+json format. For convenience, we will also accept application/json since it is the default for many popular client libraries.

The Server will respond with a Content-Type header that mirrors the format requested by the client.

Setting Headers

To specify the headers, use this code:


curl "endpoint-url" \
-H "Authorization: Bearer <api-key>"
-H "Accept: application/vnd.api+json"



URL url = new URL("endpoint-url");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization","Bearer <api-key>");
conn.setRequestProperty("Accept", "application/vnd.api+json");



import requests

url = "endpoint-url"

header = {
  "Authorization": "Bearer <api-key>",
  "Accept": "application/vnd.api+json"

r = requests.get(url, headers=header)


import "net/http"

client := &http.Client{}
req, _ := http.NewRequest("GET","endpoint-url",nil)
req.Header.Set("Authorization", "Bearer <api-key>")
req.Header.Set("Accept", "application/vnd.api+json")
res, _ := client.Do(req)

Platforms and Regions

The PUBG API shards data by either platform or platform-region depending on the request, and therefore requires a shard to be specified in the URL for most requests. The current shards are:

shards/$platform - the platform shard

  • kakao - Kakao
  • psn - PS4
  • steam - Steam
  • tournament - Tournaments
  • xbox - Xbox

shards/$platform-region - the platform-region shard

  • pc-as - Asia
  • pc-eu - Europe
  • pc-jp - Japan
  • pc-kakao - Kakao
  • pc-krjp - Korea
  • pc-na - North America
  • pc-oc - Oceania
  • pc-ru - Russia
  • pc-sa - South and Central America
  • pc-sea - South East Asia
  • pc-tournament - Tournaments
  • psn-as - Asia
  • psn-eu - Europe
  • psn-na - North America
  • psn-oc - Oceania
  • xbox-as - Asia
  • xbox-eu - Europe
  • xbox-na - North America
  • xbox-oc - Oceania
  • xbox-sa - South America

The shard is specified after the pubg domain and before the endpoint like this:


Note: Use the platform shard when making requests for PC and PS4 players’ season stats for seasons after division.bro.official.2018-09, and for Xbox season stats for seasons after division.bro.official.2018-08. Use the platform-region shard for making any other requests for players’ season stats.

The platform shard should be used at all other endpoints that require a shard. The platform-region shard is deprecated.


Clients can specify the header Accept-Encoding: gzip, and the server will compress responses. Responses will be returned with Content-Encoding: gzip.

Given the size of matches, this can have significant performance benefits.

To specify the header Accept-Encoding, use this code:


-H "Accept-Encoding: gzip"




header = {"Accept-Encoding":"gzip"}


req.Header.Set("Accept-Encoding", "gzip")

Data Retention Period

The data retention period is 14 days. Match data older than 14 days will not be available. Match lists go back 14 days for the players endpoint, and the season stats enpoint will show up to the 32 most recent matches within 14 days.


All Server responses will be in JSON-API format and contain a root JSON object.

Each response will contain at least one of the following top-level members:

  • data : the response’s “primary data”
  • errors : an array of error objects

A response may contain any of these top-level members:

  • links: a links object related to the primary data.
  • included: an array of resource objects that are related to the primary data and/or each other (“included resources”).
  • meta: not currently used.

If a document does not contain a top-level data key, the included array will not be present either.

Cross Origin Resource Sharing

The API supports Cross Origin Resource Sharing (CORS) for AJAX requests from any origin. You can read the CORS W3C Recommendation here.

Here’s a sample request sent from a browser hitting ‘’:


curl -i -H "Origin:"
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Content-Length

This is what the CORS preflight request looks like:

curl -i -H "Origin:" -X OPTIONS
HTTP/1.1 200 OK
Access-Control-Allow-Headers: Origin,X-Title-Id,Authorization
Access-Control-Allow-Methods: GET,POST,OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 86400