Submit Item Review Vote
Submit a vote for a review, indicating whether the review was helpful or unhelpful.
Allowed entity token types: title, master_player_account, title_player_account
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| DatabaseThroughputExceeded | 1113 |
POST
/
Catalog
/
SubmitItemReviewVote
Submit Item Review Vote
curl --request POST \
--url https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"ReviewId": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"ItemId": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"Vote": "Helpful"
}
'import requests
url = "https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote"
payload = {
"ReviewId": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"ItemId": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"Vote": "Helpful"
}
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({
ReviewId: 'dddddddd-dddd-dddd-dddd-dddddddddddd',
ItemId: 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee',
Vote: 'Helpful'
})
};
fetch('https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote', 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/Catalog/SubmitItemReviewVote",
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([
'ReviewId' => 'dddddddd-dddd-dddd-dddd-dddddddddddd',
'ItemId' => 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee',
'Vote' => 'Helpful'
]),
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/Catalog/SubmitItemReviewVote"
payload := strings.NewReader("{\n \"ReviewId\": \"dddddddd-dddd-dddd-dddd-dddddddddddd\",\n \"ItemId\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n \"Vote\": \"Helpful\"\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/Catalog/SubmitItemReviewVote")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ReviewId\": \"dddddddd-dddd-dddd-dddd-dddddddddddd\",\n \"ItemId\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n \"Vote\": \"Helpful\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote")
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 \"ReviewId\": \"dddddddd-dddd-dddd-dddd-dddddddddddd\",\n \"ItemId\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n \"Vote\": \"Helpful\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"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
An alternate ID of the item associated with the review.
Show child attributes
Show child attributes
The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
The entity to perform this action on.
Show child attributes
Show child attributes
The string ID of the item associated with the review.
The ID of the review to submit a helpfulness vote for.
The helpfulness vote of the review.
Available options:
None, UnHelpful, Helpful Last modified on October 1, 2026
Was this page helpful?
⌘I
Submit Item Review Vote
curl --request POST \
--url https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data '
{
"ReviewId": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"ItemId": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"Vote": "Helpful"
}
'import requests
url = "https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote"
payload = {
"ReviewId": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"ItemId": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"Vote": "Helpful"
}
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({
ReviewId: 'dddddddd-dddd-dddd-dddd-dddddddddddd',
ItemId: 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee',
Vote: 'Helpful'
})
};
fetch('https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote', 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/Catalog/SubmitItemReviewVote",
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([
'ReviewId' => 'dddddddd-dddd-dddd-dddd-dddddddddddd',
'ItemId' => 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee',
'Vote' => 'Helpful'
]),
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/Catalog/SubmitItemReviewVote"
payload := strings.NewReader("{\n \"ReviewId\": \"dddddddd-dddd-dddd-dddd-dddddddddddd\",\n \"ItemId\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n \"Vote\": \"Helpful\"\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/Catalog/SubmitItemReviewVote")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ReviewId\": \"dddddddd-dddd-dddd-dddd-dddddddddddd\",\n \"ItemId\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n \"Vote\": \"Helpful\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Catalog/SubmitItemReviewVote")
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 \"ReviewId\": \"dddddddd-dddd-dddd-dddd-dddddddddddd\",\n \"ItemId\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n \"Vote\": \"Helpful\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}