Search Items
Executes a search against the public catalog using the provided search parameters and returns a set of paginated results. SearchItems uses a cache of the catalog with item updates taking up to a few minutes to propagate. You should use the GetItem API for when trying to immediately get recent item updates. More information about the Search API can be found here: https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/search
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 |
| ItemNotFound | 1047 |
| NotImplemented | 1515 |
curl --request POST \
--url https://{titleId}.playfabapi.com/Catalog/SearchItems \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data @- <<EOF
{
"Search": "Pirates",
"Filter": "tags/any(t:t eq 'desert') and contentType eq 'map'",
"OrderBy": "lastModifiedDate asc",
"ContinuationToken": "abc=",
"Count": 2
}
EOFimport requests
url = "https://{titleId}.playfabapi.com/Catalog/SearchItems"
payload = {
"Search": "Pirates",
"Filter": "tags/any(t:t eq 'desert') and contentType eq 'map'",
"OrderBy": "lastModifiedDate asc",
"ContinuationToken": "abc=",
"Count": 2
}
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({
Search: 'Pirates',
Filter: 'tags/any(t:t eq \'desert\') and contentType eq \'map\'',
OrderBy: 'lastModifiedDate asc',
ContinuationToken: 'abc=',
Count: 2
})
};
fetch('https://{titleId}.playfabapi.com/Catalog/SearchItems', 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/SearchItems",
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([
'Search' => 'Pirates',
'Filter' => 'tags/any(t:t eq \'desert\') and contentType eq \'map\'',
'OrderBy' => 'lastModifiedDate asc',
'ContinuationToken' => 'abc=',
'Count' => 2
]),
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/SearchItems"
payload := strings.NewReader("{\n \"Search\": \"Pirates\",\n \"Filter\": \"tags/any(t:t eq 'desert') and contentType eq 'map'\",\n \"OrderBy\": \"lastModifiedDate asc\",\n \"ContinuationToken\": \"abc=\",\n \"Count\": 2\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/SearchItems")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Search\": \"Pirates\",\n \"Filter\": \"tags/any(t:t eq 'desert') and contentType eq 'map'\",\n \"OrderBy\": \"lastModifiedDate asc\",\n \"ContinuationToken\": \"abc=\",\n \"Count\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Catalog/SearchItems")
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 \"Search\": \"Pirates\",\n \"Filter\": \"tags/any(t:t eq 'desert') and contentType eq 'map'\",\n \"OrderBy\": \"lastModifiedDate asc\",\n \"ContinuationToken\": \"abc=\",\n \"Count\": 2\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Items": [
{
"Id": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral title",
"en-US": "US English title"
},
"Description": {
"NEUTRAL": "Neutral description",
"en-US": "US English description"
},
"ContentType": "example item",
"CreatorEntity": {
"Id": "someId",
"Type": "title_player_account",
"TypeString": "title_player_account"
},
"Tags": [
"pirates",
"holiday"
],
"CreationDate": "2018-08-17T22:32:10.4729879+00:00",
"LastModifiedDate": "2018-08-17T22:32:31.911375+00:00",
"Contents": [
{
"Id": "00000000-0000-0000-0000-000000000001",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000001/textures.zip",
"MaxClientVersion": "2.4.1",
"MinClientVersion": "2.0.0"
}
],
"Images": [
{
"Id": "00000000-0000-0000-0000-000000000003",
"Type": "Thumbnail",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000003/splashscreen_thumb.jpg"
}
],
"PriceOptions": {
"Prices": [
{
"Amounts": [
{
"ItemId": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"Amount": 3
}
]
}
]
},
"DisplayProperties": {
"mapDetails": {
"mapType": "desertIsland",
"gameMode": "capture",
"maxPlayers": 16
},
"averageMatchLengthInSeconds": 947
},
"DefaultStackId": "Static_Default_Stack_Id"
},
{
"Id": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral title",
"en-US": "US English title"
},
"Description": {
"NEUTRAL": "Neutral description",
"en-US": "US English description"
},
"ContentType": "example item",
"CreatorEntity": {
"Id": "someId",
"Type": "title_player_account",
"TypeString": "title_player_account"
},
"Tags": [
"pirates",
"holiday"
],
"CreationDate": "2018-08-17T22:32:10.4729879+00:00",
"LastModifiedDate": "2018-08-17T22:32:31.911375+00:00",
"Contents": [
{
"Id": "00000000-0000-0000-0000-000000000001",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000001/textures.zip",
"MaxClientVersion": "2.4.1",
"MinClientVersion": "2.0.0"
}
],
"Images": [
{
"Id": "00000000-0000-0000-0000-000000000003",
"Type": "Thumbnail",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000003/splashscreen_thumb.jpg"
}
],
"PriceOptions": {
"Prices": [
{
"Amounts": [
{
"ItemId": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"Amount": 3
}
]
}
]
},
"DisplayProperties": {
"mapDetails": {
"mapType": "desertIsland",
"gameMode": "capture",
"maxPlayers": 16
},
"averageMatchLengthInSeconds": 947
},
"DefaultStackId": "Static_Default_Stack_Id"
}
],
"ContinuationToken": "def=#"
}
}{
"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
Number of items to retrieve. This value is optional. Maximum page size is 50. Default value is 10.
An opaque token used to retrieve the next page of items, if any are available.
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
An OData filter used to refine the search query (For example: "type eq 'ugc'"). More info about Filter Complexity limits can be found here: https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/search#limits
The locale to be returned in the result.
An OData orderBy used to order the results of the search query. For example: "rating/average asc"
The text to search for.
An OData select query option used to augment the search results. If not defined, the default search result metadata will be returned.
The store to restrict the search request to.
Show child attributes
Show child attributes
Response
The Http status code. If X-ReportErrorAsSuccess header is set to true, this will report the actual http error code.
The Http status code as a string.
Show child attributes
Show child attributes
{
"Items": [
{
"Id": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral title",
"en-US": "US English title"
},
"Description": {
"NEUTRAL": "Neutral description",
"en-US": "US English description"
},
"ContentType": "example item",
"CreatorEntity": {
"Id": "someId",
"Type": "title_player_account",
"TypeString": "title_player_account"
},
"Tags": ["pirates", "holiday"],
"CreationDate": "2018-08-17T22:32:10.4729879+00:00",
"LastModifiedDate": "2018-08-17T22:32:31.911375+00:00",
"Contents": [
{
"Id": "00000000-0000-0000-0000-000000000001",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000001/textures.zip",
"MaxClientVersion": "2.4.1",
"MinClientVersion": "2.0.0"
}
],
"Images": [
{
"Id": "00000000-0000-0000-0000-000000000003",
"Type": "Thumbnail",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000003/splashscreen_thumb.jpg"
}
],
"PriceOptions": {
"Prices": [
{
"Amounts": [
{
"ItemId": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"Amount": 3
}
]
}
]
},
"DisplayProperties": {
"mapDetails": {
"mapType": "desertIsland",
"gameMode": "capture",
"maxPlayers": 16
},
"averageMatchLengthInSeconds": 947
},
"DefaultStackId": "Static_Default_Stack_Id"
},
{
"Id": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral title",
"en-US": "US English title"
},
"Description": {
"NEUTRAL": "Neutral description",
"en-US": "US English description"
},
"ContentType": "example item",
"CreatorEntity": {
"Id": "someId",
"Type": "title_player_account",
"TypeString": "title_player_account"
},
"Tags": ["pirates", "holiday"],
"CreationDate": "2018-08-17T22:32:10.4729879+00:00",
"LastModifiedDate": "2018-08-17T22:32:31.911375+00:00",
"Contents": [
{
"Id": "00000000-0000-0000-0000-000000000001",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000001/textures.zip",
"MaxClientVersion": "2.4.1",
"MinClientVersion": "2.0.0"
}
],
"Images": [
{
"Id": "00000000-0000-0000-0000-000000000003",
"Type": "Thumbnail",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000003/splashscreen_thumb.jpg"
}
],
"PriceOptions": {
"Prices": [
{
"Amounts": [
{
"ItemId": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"Amount": 3
}
]
}
]
},
"DisplayProperties": {
"mapDetails": {
"mapType": "desertIsland",
"gameMode": "capture",
"maxPlayers": 16
},
"averageMatchLengthInSeconds": 947
},
"DefaultStackId": "Static_Default_Stack_Id"
}
],
"ContinuationToken": "def=#"
}
Was this page helpful?
curl --request POST \
--url https://{titleId}.playfabapi.com/Catalog/SearchItems \
--header 'Content-Type: application/json' \
--header 'X-EntityToken: <api-key>' \
--data @- <<EOF
{
"Search": "Pirates",
"Filter": "tags/any(t:t eq 'desert') and contentType eq 'map'",
"OrderBy": "lastModifiedDate asc",
"ContinuationToken": "abc=",
"Count": 2
}
EOFimport requests
url = "https://{titleId}.playfabapi.com/Catalog/SearchItems"
payload = {
"Search": "Pirates",
"Filter": "tags/any(t:t eq 'desert') and contentType eq 'map'",
"OrderBy": "lastModifiedDate asc",
"ContinuationToken": "abc=",
"Count": 2
}
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({
Search: 'Pirates',
Filter: 'tags/any(t:t eq \'desert\') and contentType eq \'map\'',
OrderBy: 'lastModifiedDate asc',
ContinuationToken: 'abc=',
Count: 2
})
};
fetch('https://{titleId}.playfabapi.com/Catalog/SearchItems', 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/SearchItems",
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([
'Search' => 'Pirates',
'Filter' => 'tags/any(t:t eq \'desert\') and contentType eq \'map\'',
'OrderBy' => 'lastModifiedDate asc',
'ContinuationToken' => 'abc=',
'Count' => 2
]),
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/SearchItems"
payload := strings.NewReader("{\n \"Search\": \"Pirates\",\n \"Filter\": \"tags/any(t:t eq 'desert') and contentType eq 'map'\",\n \"OrderBy\": \"lastModifiedDate asc\",\n \"ContinuationToken\": \"abc=\",\n \"Count\": 2\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/SearchItems")
.header("X-EntityToken", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"Search\": \"Pirates\",\n \"Filter\": \"tags/any(t:t eq 'desert') and contentType eq 'map'\",\n \"OrderBy\": \"lastModifiedDate asc\",\n \"ContinuationToken\": \"abc=\",\n \"Count\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Catalog/SearchItems")
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 \"Search\": \"Pirates\",\n \"Filter\": \"tags/any(t:t eq 'desert') and contentType eq 'map'\",\n \"OrderBy\": \"lastModifiedDate asc\",\n \"ContinuationToken\": \"abc=\",\n \"Count\": 2\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Items": [
{
"Id": "dddddddd-dddd-dddd-dddd-dddddddddddd",
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral title",
"en-US": "US English title"
},
"Description": {
"NEUTRAL": "Neutral description",
"en-US": "US English description"
},
"ContentType": "example item",
"CreatorEntity": {
"Id": "someId",
"Type": "title_player_account",
"TypeString": "title_player_account"
},
"Tags": [
"pirates",
"holiday"
],
"CreationDate": "2018-08-17T22:32:10.4729879+00:00",
"LastModifiedDate": "2018-08-17T22:32:31.911375+00:00",
"Contents": [
{
"Id": "00000000-0000-0000-0000-000000000001",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000001/textures.zip",
"MaxClientVersion": "2.4.1",
"MinClientVersion": "2.0.0"
}
],
"Images": [
{
"Id": "00000000-0000-0000-0000-000000000003",
"Type": "Thumbnail",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000003/splashscreen_thumb.jpg"
}
],
"PriceOptions": {
"Prices": [
{
"Amounts": [
{
"ItemId": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"Amount": 3
}
]
}
]
},
"DisplayProperties": {
"mapDetails": {
"mapType": "desertIsland",
"gameMode": "capture",
"maxPlayers": 16
},
"averageMatchLengthInSeconds": 947
},
"DefaultStackId": "Static_Default_Stack_Id"
},
{
"Id": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral title",
"en-US": "US English title"
},
"Description": {
"NEUTRAL": "Neutral description",
"en-US": "US English description"
},
"ContentType": "example item",
"CreatorEntity": {
"Id": "someId",
"Type": "title_player_account",
"TypeString": "title_player_account"
},
"Tags": [
"pirates",
"holiday"
],
"CreationDate": "2018-08-17T22:32:10.4729879+00:00",
"LastModifiedDate": "2018-08-17T22:32:31.911375+00:00",
"Contents": [
{
"Id": "00000000-0000-0000-0000-000000000001",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000001/textures.zip",
"MaxClientVersion": "2.4.1",
"MinClientVersion": "2.0.0"
}
],
"Images": [
{
"Id": "00000000-0000-0000-0000-000000000003",
"Type": "Thumbnail",
"Url": "https://endpoint.blob.core.windows.net/some-identifier-private/00000000-0000-0000-0000-000000000003/splashscreen_thumb.jpg"
}
],
"PriceOptions": {
"Prices": [
{
"Amounts": [
{
"ItemId": "cccccccc-cccc-cccc-cccc-cccccccccccc",
"Amount": 3
}
]
}
]
},
"DisplayProperties": {
"mapDetails": {
"mapType": "desertIsland",
"gameMode": "capture",
"maxPlayers": 16
},
"averageMatchLengthInSeconds": 947
},
"DefaultStackId": "Static_Default_Stack_Id"
}
],
"ContinuationToken": "def=#"
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}