Update Statistic Definition
Update an existing entity statistic definition.
Allowed entity token types: title, game_server
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| ApiNotEnabledForTitle | 1520 |
| InvalidBaseTimeForInterval | 1581 |
| MaxQueryableVersionsExceeded | 23015 |
| MaxQueryableVersionsValueNotAllowedForTier | 1591 |
| ResetIntervalCannotBeModified | 1598 |
| StatisticNotFound | 1195 |
POST
/
Statistic
/
UpdateStatisticDefinition
Update Statistic Definition
curl --request POST \
--url https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"Name": "HighestScoresByLevel",
"VersionConfiguration": {
"MaxQueryableVersions": 2
},
"EventEmissionConfig": {
"UpdateEventConfig": {
"EventType": "PlayStream"
}
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition"
payload = {
"Name": "HighestScoresByLevel",
"VersionConfiguration": { "MaxQueryableVersions": 2 },
"EventEmissionConfig": { "UpdateEventConfig": { "EventType": "PlayStream" } }
}
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: 2},
EventEmissionConfig: {UpdateEventConfig: {EventType: 'PlayStream'}}
})
};
fetch('https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition', 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/Statistic/UpdateStatisticDefinition",
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' => 2
],
'EventEmissionConfig' => [
'UpdateEventConfig' => [
'EventType' => 'PlayStream'
]
]
]),
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/Statistic/UpdateStatisticDefinition"
payload := strings.NewReader("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 2\n },\n \"EventEmissionConfig\": {\n \"UpdateEventConfig\": {\n \"EventType\": \"PlayStream\"\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/Statistic/UpdateStatisticDefinition")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 2\n },\n \"EventEmissionConfig\": {\n \"UpdateEventConfig\": {\n \"EventType\": \"PlayStream\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition")
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\": 2\n },\n \"EventEmissionConfig\": {\n \"UpdateEventConfig\": {\n \"EventType\": \"PlayStream\"\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
Name of the statistic. Must be less than 150 characters. Restricted to a-Z, 0-9, '(', ')', '_', '-' and '.'.
The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
[In Preview]: Configurations for different Statistics events that can be emitted by the service.
Show child attributes
Show child attributes
The version reset configuration for the statistic definition.
Show child attributes
Show child attributes
Last modified on October 1, 2026
Was this page helpful?
⌘I
Update Statistic Definition
curl --request POST \
--url https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"Name": "HighestScoresByLevel",
"VersionConfiguration": {
"MaxQueryableVersions": 2
},
"EventEmissionConfig": {
"UpdateEventConfig": {
"EventType": "PlayStream"
}
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition"
payload = {
"Name": "HighestScoresByLevel",
"VersionConfiguration": { "MaxQueryableVersions": 2 },
"EventEmissionConfig": { "UpdateEventConfig": { "EventType": "PlayStream" } }
}
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: 2},
EventEmissionConfig: {UpdateEventConfig: {EventType: 'PlayStream'}}
})
};
fetch('https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition', 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/Statistic/UpdateStatisticDefinition",
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' => 2
],
'EventEmissionConfig' => [
'UpdateEventConfig' => [
'EventType' => 'PlayStream'
]
]
]),
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/Statistic/UpdateStatisticDefinition"
payload := strings.NewReader("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 2\n },\n \"EventEmissionConfig\": {\n \"UpdateEventConfig\": {\n \"EventType\": \"PlayStream\"\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/Statistic/UpdateStatisticDefinition")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"HighestScoresByLevel\",\n \"VersionConfiguration\": {\n \"MaxQueryableVersions\": 2\n },\n \"EventEmissionConfig\": {\n \"UpdateEventConfig\": {\n \"EventType\": \"PlayStream\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Statistic/UpdateStatisticDefinition")
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\": 2\n },\n \"EventEmissionConfig\": {\n \"UpdateEventConfig\": {\n \"EventType\": \"PlayStream\"\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": {}
}