Update Leaderboard Definition
Updates a leaderboard definition.
Allowed entity token types: title, game_server
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| LeaderboardSizeLimitExceeded | 1575 |
| MaxQueryableVersionsExceeded | 23015 |
| MaxQueryableVersionsValueNotAllowedForTier | 1591 |
| PlayFabErrorEventNotSupportedForEntityType | 23013 |
| ResetIntervalCannotBeModified | 1598 |
POST
/
Leaderboard
/
UpdateLeaderboardDefinition
Update Leaderboard Definition
curl --request POST \
--url https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"Name": "HighestScoresByLevel",
"VersionConfiguration": {
"MaxQueryableVersions": 1
},
"SizeLimit": 1000,
"EventEmissionConfig": {
"VersionEndConfig": {},
"EntityRankOnVersionEndConfig": {
"RankLimit": 1
}
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition"
payload = {
"Name": "HighestScoresByLevel",
"VersionConfiguration": { "MaxQueryableVersions": 1 },
"SizeLimit": 1000,
"EventEmissionConfig": {
"VersionEndConfig": {},
"EntityRankOnVersionEndConfig": { "RankLimit": 1 }
}
}
headers = {
"X-EntityToken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-EntityToken': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
Name: 'HighestScoresByLevel',
VersionConfiguration: {MaxQueryableVersions: 1},
SizeLimit: 1000,
EventEmissionConfig: {VersionEndConfig: {}, EntityRankOnVersionEndConfig: {RankLimit: 1}}
})
};
fetch('https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'Name' => 'HighestScoresByLevel',
'VersionConfiguration' => [
'MaxQueryableVersions' => 1
],
'SizeLimit' => 1000,
'EventEmissionConfig' => [
'VersionEndConfig' => [
],
'EntityRankOnVersionEndConfig' => [
'RankLimit' => 1
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-EntityToken: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition"
payload := strings.NewReader("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 1\n },\n \"SizeLimit\": 1000,\n \"EventEmissionConfig\": {\n \"VersionEndConfig\": {},\n \"EntityRankOnVersionEndConfig\": {\n \"RankLimit\": 1\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-EntityToken", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 1\n },\n \"SizeLimit\": 1000,\n \"EventEmissionConfig\": {\n \"VersionEndConfig\": {},\n \"EntityRankOnVersionEndConfig\": {\n \"RankLimit\": 1\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-EntityToken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 1\n },\n \"SizeLimit\": 1000,\n \"EventEmissionConfig\": {\n \"VersionEndConfig\": {},\n \"EntityRankOnVersionEndConfig\": {\n \"RankLimit\": 1\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}Authorizations
This API requires an Entity Session Token, available from the Entity GetEntityToken method.
Body
application/json
The name of the leaderboard to update the definition for.
The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
[In Preview]: The configuration for the events emitted by this leaderboard. If not specified, no events will be emitted.
Show child attributes
Show child attributes
Maximum number of entries on this leaderboard
The version reset configuration for the leaderboard definition.
Show child attributes
Show child attributes
Last modified on October 1, 2026
Was this page helpful?
⌘I
Update Leaderboard Definition
curl --request POST \
--url https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"Name": "HighestScoresByLevel",
"VersionConfiguration": {
"MaxQueryableVersions": 1
},
"SizeLimit": 1000,
"EventEmissionConfig": {
"VersionEndConfig": {},
"EntityRankOnVersionEndConfig": {
"RankLimit": 1
}
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition"
payload = {
"Name": "HighestScoresByLevel",
"VersionConfiguration": { "MaxQueryableVersions": 1 },
"SizeLimit": 1000,
"EventEmissionConfig": {
"VersionEndConfig": {},
"EntityRankOnVersionEndConfig": { "RankLimit": 1 }
}
}
headers = {
"X-EntityToken": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-EntityToken': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
Name: 'HighestScoresByLevel',
VersionConfiguration: {MaxQueryableVersions: 1},
SizeLimit: 1000,
EventEmissionConfig: {VersionEndConfig: {}, EntityRankOnVersionEndConfig: {RankLimit: 1}}
})
};
fetch('https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'Name' => 'HighestScoresByLevel',
'VersionConfiguration' => [
'MaxQueryableVersions' => 1
],
'SizeLimit' => 1000,
'EventEmissionConfig' => [
'VersionEndConfig' => [
],
'EntityRankOnVersionEndConfig' => [
'RankLimit' => 1
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-EntityToken: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition"
payload := strings.NewReader("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 1\n },\n \"SizeLimit\": 1000,\n \"EventEmissionConfig\": {\n \"VersionEndConfig\": {},\n \"EntityRankOnVersionEndConfig\": {\n \"RankLimit\": 1\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-EntityToken", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 1\n },\n \"SizeLimit\": 1000,\n \"EventEmissionConfig\": {\n \"VersionEndConfig\": {},\n \"EntityRankOnVersionEndConfig\": {\n \"RankLimit\": 1\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Leaderboard/UpdateLeaderboardDefinition")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-EntityToken"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 1\n },\n \"SizeLimit\": 1000,\n \"EventEmissionConfig\": {\n \"VersionEndConfig\": {},\n \"EntityRankOnVersionEndConfig\": {\n \"RankLimit\": 1\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}