Get Catalog Items
NOTE: This is a Legacy Economy API, and is in bugfix-only mode. All new Economy features are being developed only for version 2. Retrieves the specified version of the title’s catalog of virtual goods, including all defined properties
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| ProductDisabledForTitle | 1609 |
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/GetCatalogItems \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"CatalogVersion": "1"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/GetCatalogItems"
payload = { "CatalogVersion": "1" }
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({CatalogVersion: '1'})
};
fetch('https://{titleId}.playfabapi.com/Client/GetCatalogItems', 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/Client/GetCatalogItems",
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([
'CatalogVersion' => '1'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <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/Client/GetCatalogItems"
payload := strings.NewReader("{\n \"CatalogVersion\": \"1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<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/Client/GetCatalogItems")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"CatalogVersion\": \"1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/GetCatalogItems")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"CatalogVersion\": \"1\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Catalog": [
{
"ItemId": "shield_level_5",
"ItemClass": "shields",
"CatalogVersion": "5",
"DisplayName": "Level 5 Shield",
"Description": "Strong defense against projectile attacks",
"VirtualCurrencyPrices": {
"RM": 199,
"GV": 25
},
"RealCurrencyPrices": {
"GBP": 149,
"EUR": 169
}
},
{
"ItemId": "energy_boost_1",
"ItemClass": "boosts",
"CatalogVersion": "5",
"DisplayName": "Energy Drink Six-Pack",
"Description": "Get a quick burst of energy whenever you need it",
"VirtualCurrencyPrices": {
"RM": 199,
"GV": 25
}
},
{
"ItemId": "required_item_for_grant_a_1",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 1",
"Description": "Item 1 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "required_item_for_grant_a_2",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 2",
"Description": "Item 2 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "required_item_for_grant_a_3",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 3",
"Description": "Item 3 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "required_item_for_grant_a_4",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 4",
"Description": "Item 4 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "granted_item_a",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Granted Item A",
"Description": "Bonus item granted for free once the full set of 4 Grant Set items are collected"
},
{
"ItemId": "consumable_item_1",
"ItemClass": "Consumables",
"CatalogVersion": "5",
"DisplayName": "Consumable Item 1",
"Description": "Item demonstrating usage-based consumables",
"VirtualCurrencyPrices": {
"GV": 500
},
"Consumable": {
"UsageCount": 3
}
},
{
"ItemId": "consumable_item_2",
"ItemClass": "Consumables",
"CatalogVersion": "5",
"DisplayName": "Consumable Item 2",
"Description": "Item demonstrating time-based consumables",
"VirtualCurrencyPrices": {
"GV": 750
},
"Consumable": {
"UsagePeriod": 3600,
"UsagePeriodGroup": "usage_group_1"
}
},
{
"ItemId": "sub_bundle_item_1",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Bundled Item 1",
"Description": "Item which is added to the user inventory as part of a bundle"
},
{
"ItemId": "sub_bundle_item_2",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Bundled Item 2",
"Description": "Item which is added to the user inventory as part of a bundle"
},
{
"ItemId": "item_bundle_1",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Item bundle 1",
"Description": "Item which, when added to the user inventory, also adds other bundled items",
"VirtualCurrencyPrices": {
"RM": 599
},
"Bundle": {
"BundledItems": [
"sub_bundle_item_1",
"sub_bundle_item_2"
],
"BundledResultTables": [
"random_result_1"
],
"BundledVirtualCurrencies": {
"GV": 1000
}
}
},
{
"ItemId": "key_item_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Key Item 1",
"Description": "Key used to unlock Container 1",
"VirtualCurrencyPrices": {
"RM": 199
}
},
{
"ItemId": "sub_container_item_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Container Item 1",
"Description": "Item which is added to the user inventory as part of opening a container"
},
{
"ItemId": "sub_container_item_2",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Container Item 2",
"Description": "Item which is added to the user inventory as part of opening a container"
},
{
"ItemId": "item_container_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Item Container 1",
"Description": "Item which, when opened with Key Item 1, also adds the items it holds to the user inventory",
"VirtualCurrencyPrices": {
"RM": 499
},
"Consumable": {
"UsageCount": 1
},
"Container": {
"KeyItemId": "key_item_1",
"ItemContents": [
"sub_container_item_1",
"sub_container_item_2"
],
"ResultTableContents": [
"random_result_1"
],
"VirtualCurrencyContents": {
"GV": 1000
}
}
},
{
"ItemId": "item_container_2",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Item Container 2",
"Description": "Item which, when opened (no key needed), adds the items it holds to the user inventory",
"VirtualCurrencyPrices": {
"RM": 99
},
"Consumable": {
"UsageCount": 1
},
"Container": {
"VirtualCurrencyContents": {
"GV": 1000
}
}
},
{
"ItemId": "starterpack_1",
"ItemClass": "starterpacks",
"CatalogVersion": "5",
"DisplayName": "Super Starter Pack",
"Description": "Everything you need to get started fast track at the right price"
}
]
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}Authorizations
This API requires a client session ticket, available from any Client Login function.
Body
Which catalog is being requested. If null, uses the default catalog.
Response
If CatalogVersion is not specified, only inventory items associated with the most recent version of the catalog will be returned.
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.
If CatalogVersion is not specified, only inventory items associated with the most recent version of the catalog will be returned.
Show child attributes
Show child attributes
{
"Catalog": [
{
"ItemId": "shield_level_5",
"ItemClass": "shields",
"CatalogVersion": "5",
"DisplayName": "Level 5 Shield",
"Description": "Strong defense against projectile attacks",
"VirtualCurrencyPrices": { "RM": 199, "GV": 25 },
"RealCurrencyPrices": { "GBP": 149, "EUR": 169 }
},
{
"ItemId": "energy_boost_1",
"ItemClass": "boosts",
"CatalogVersion": "5",
"DisplayName": "Energy Drink Six-Pack",
"Description": "Get a quick burst of energy whenever you need it",
"VirtualCurrencyPrices": { "RM": 199, "GV": 25 }
},
{
"ItemId": "required_item_for_grant_a_1",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 1",
"Description": "Item 1 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": { "RM": 249, "GV": 1500 }
},
{
"ItemId": "required_item_for_grant_a_2",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 2",
"Description": "Item 2 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": { "RM": 249, "GV": 1500 }
},
{
"ItemId": "required_item_for_grant_a_3",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 3",
"Description": "Item 3 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": { "RM": 249, "GV": 1500 }
},
{
"ItemId": "required_item_for_grant_a_4",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 4",
"Description": "Item 4 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": { "RM": 249, "GV": 1500 }
},
{
"ItemId": "granted_item_a",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Granted Item A",
"Description": "Bonus item granted for free once the full set of 4 Grant Set items are collected"
},
{
"ItemId": "consumable_item_1",
"ItemClass": "Consumables",
"CatalogVersion": "5",
"DisplayName": "Consumable Item 1",
"Description": "Item demonstrating usage-based consumables",
"VirtualCurrencyPrices": { "GV": 500 },
"Consumable": { "UsageCount": 3 }
},
{
"ItemId": "consumable_item_2",
"ItemClass": "Consumables",
"CatalogVersion": "5",
"DisplayName": "Consumable Item 2",
"Description": "Item demonstrating time-based consumables",
"VirtualCurrencyPrices": { "GV": 750 },
"Consumable": {
"UsagePeriod": 3600,
"UsagePeriodGroup": "usage_group_1"
}
},
{
"ItemId": "sub_bundle_item_1",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Bundled Item 1",
"Description": "Item which is added to the user inventory as part of a bundle"
},
{
"ItemId": "sub_bundle_item_2",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Bundled Item 2",
"Description": "Item which is added to the user inventory as part of a bundle"
},
{
"ItemId": "item_bundle_1",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Item bundle 1",
"Description": "Item which, when added to the user inventory, also adds other bundled items",
"VirtualCurrencyPrices": { "RM": 599 },
"Bundle": {
"BundledItems": ["sub_bundle_item_1", "sub_bundle_item_2"],
"BundledResultTables": ["random_result_1"],
"BundledVirtualCurrencies": { "GV": 1000 }
}
},
{
"ItemId": "key_item_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Key Item 1",
"Description": "Key used to unlock Container 1",
"VirtualCurrencyPrices": { "RM": 199 }
},
{
"ItemId": "sub_container_item_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Container Item 1",
"Description": "Item which is added to the user inventory as part of opening a container"
},
{
"ItemId": "sub_container_item_2",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Container Item 2",
"Description": "Item which is added to the user inventory as part of opening a container"
},
{
"ItemId": "item_container_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Item Container 1",
"Description": "Item which, when opened with Key Item 1, also adds the items it holds to the user inventory",
"VirtualCurrencyPrices": { "RM": 499 },
"Consumable": { "UsageCount": 1 },
"Container": {
"KeyItemId": "key_item_1",
"ItemContents": [
"sub_container_item_1",
"sub_container_item_2"
],
"ResultTableContents": ["random_result_1"],
"VirtualCurrencyContents": { "GV": 1000 }
}
},
{
"ItemId": "item_container_2",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Item Container 2",
"Description": "Item which, when opened (no key needed), adds the items it holds to the user inventory",
"VirtualCurrencyPrices": { "RM": 99 },
"Consumable": { "UsageCount": 1 },
"Container": { "VirtualCurrencyContents": { "GV": 1000 } }
},
{
"ItemId": "starterpack_1",
"ItemClass": "starterpacks",
"CatalogVersion": "5",
"DisplayName": "Super Starter Pack",
"Description": "Everything you need to get started fast track at the right price"
}
]
}
Was this page helpful?
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/GetCatalogItems \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"CatalogVersion": "1"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/GetCatalogItems"
payload = { "CatalogVersion": "1" }
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({CatalogVersion: '1'})
};
fetch('https://{titleId}.playfabapi.com/Client/GetCatalogItems', 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/Client/GetCatalogItems",
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([
'CatalogVersion' => '1'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <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/Client/GetCatalogItems"
payload := strings.NewReader("{\n \"CatalogVersion\": \"1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<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/Client/GetCatalogItems")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"CatalogVersion\": \"1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/GetCatalogItems")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"CatalogVersion\": \"1\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Catalog": [
{
"ItemId": "shield_level_5",
"ItemClass": "shields",
"CatalogVersion": "5",
"DisplayName": "Level 5 Shield",
"Description": "Strong defense against projectile attacks",
"VirtualCurrencyPrices": {
"RM": 199,
"GV": 25
},
"RealCurrencyPrices": {
"GBP": 149,
"EUR": 169
}
},
{
"ItemId": "energy_boost_1",
"ItemClass": "boosts",
"CatalogVersion": "5",
"DisplayName": "Energy Drink Six-Pack",
"Description": "Get a quick burst of energy whenever you need it",
"VirtualCurrencyPrices": {
"RM": 199,
"GV": 25
}
},
{
"ItemId": "required_item_for_grant_a_1",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 1",
"Description": "Item 1 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "required_item_for_grant_a_2",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 2",
"Description": "Item 2 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "required_item_for_grant_a_3",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 3",
"Description": "Item 3 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "required_item_for_grant_a_4",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Grant Set Item 4",
"Description": "Item 4 from the set of items needed to get Granted Item A for free",
"VirtualCurrencyPrices": {
"RM": 249,
"GV": 1500
}
},
{
"ItemId": "granted_item_a",
"ItemClass": "sets",
"CatalogVersion": "5",
"DisplayName": "Granted Item A",
"Description": "Bonus item granted for free once the full set of 4 Grant Set items are collected"
},
{
"ItemId": "consumable_item_1",
"ItemClass": "Consumables",
"CatalogVersion": "5",
"DisplayName": "Consumable Item 1",
"Description": "Item demonstrating usage-based consumables",
"VirtualCurrencyPrices": {
"GV": 500
},
"Consumable": {
"UsageCount": 3
}
},
{
"ItemId": "consumable_item_2",
"ItemClass": "Consumables",
"CatalogVersion": "5",
"DisplayName": "Consumable Item 2",
"Description": "Item demonstrating time-based consumables",
"VirtualCurrencyPrices": {
"GV": 750
},
"Consumable": {
"UsagePeriod": 3600,
"UsagePeriodGroup": "usage_group_1"
}
},
{
"ItemId": "sub_bundle_item_1",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Bundled Item 1",
"Description": "Item which is added to the user inventory as part of a bundle"
},
{
"ItemId": "sub_bundle_item_2",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Bundled Item 2",
"Description": "Item which is added to the user inventory as part of a bundle"
},
{
"ItemId": "item_bundle_1",
"ItemClass": "Bundles",
"CatalogVersion": "5",
"DisplayName": "Item bundle 1",
"Description": "Item which, when added to the user inventory, also adds other bundled items",
"VirtualCurrencyPrices": {
"RM": 599
},
"Bundle": {
"BundledItems": [
"sub_bundle_item_1",
"sub_bundle_item_2"
],
"BundledResultTables": [
"random_result_1"
],
"BundledVirtualCurrencies": {
"GV": 1000
}
}
},
{
"ItemId": "key_item_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Key Item 1",
"Description": "Key used to unlock Container 1",
"VirtualCurrencyPrices": {
"RM": 199
}
},
{
"ItemId": "sub_container_item_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Container Item 1",
"Description": "Item which is added to the user inventory as part of opening a container"
},
{
"ItemId": "sub_container_item_2",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Container Item 2",
"Description": "Item which is added to the user inventory as part of opening a container"
},
{
"ItemId": "item_container_1",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Item Container 1",
"Description": "Item which, when opened with Key Item 1, also adds the items it holds to the user inventory",
"VirtualCurrencyPrices": {
"RM": 499
},
"Consumable": {
"UsageCount": 1
},
"Container": {
"KeyItemId": "key_item_1",
"ItemContents": [
"sub_container_item_1",
"sub_container_item_2"
],
"ResultTableContents": [
"random_result_1"
],
"VirtualCurrencyContents": {
"GV": 1000
}
}
},
{
"ItemId": "item_container_2",
"ItemClass": "Containers",
"CatalogVersion": "5",
"DisplayName": "Item Container 2",
"Description": "Item which, when opened (no key needed), adds the items it holds to the user inventory",
"VirtualCurrencyPrices": {
"RM": 99
},
"Consumable": {
"UsageCount": 1
},
"Container": {
"VirtualCurrencyContents": {
"GV": 1000
}
}
},
{
"ItemId": "starterpack_1",
"ItemClass": "starterpacks",
"CatalogVersion": "5",
"DisplayName": "Super Starter Pack",
"Description": "Everything you need to get started fast track at the right price"
}
]
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}