Get Catalog All
GET /inventory/v1/catalog
Get the entire catalog.
This endpoint endpoint is generally discouraged outside of prototyping and early development. It’s not that the endpoint won’t function, but rather that it creates a pattern that may result in a poor end user experience. It has etag/if-none-match handling, but it is for the entire catalog. So if a single byte changes inside the catalog (e.g. turning on a loot record, adding a single new item, changing a price point, adjusting the threshold to hit level X in an XP Table), then the etag will change. If clients are re-requesting data from this endpoint, then those changes will result in them re-downloading, and re-parsing the entire catalog for that tiny modification.
Early on in a game’s lifecycle, this doesn’t matter much - since catalog data is pretty small. But as your game grows, and you create lots of things to receive/purchase/grant, the data will balloon in size. Parsing the response does occur on unreal’s main thread, and with a sufficiently large catalog, you may see hitches. There will also be lots of data in there that may not even be necessary for your client to see at all (e.g. if you only grant the loot from the dedicated server or if an item is just a tracker, it doesn’t necessarily need to be visible on the client).
We generally encourage having a well-known list of vendors to request from /inventory/v1/catalog/vendor/{vendor_id}
, and then requesting the entire set of xp tables, price points, and bucket rulesets (as those are generally pretty small lists). That list of vendors could come from anywhere, it could be hardcoded, be set from an ini (if your client is unlikely to need arbitrary vendor additions, but you want to retain the ability to patch it) or it could come down in a kv.
Authorizations
Parameters
Header Parameters
If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.
If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.
Responses
200
Successful Response
Full list of all loaded objects for the catalog. Organized in a normalized model
object
The XP Tables.
object
object
A collection of XP Levels from 1 to N. Each level has a minimum XP value.
object
Custom data associated with the resource
object
The XP Table UUID
object
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
The Portal Use Rulesets. Use Inventory Bucket Use Rule Sets instead.
object
Custom data associated with the resource
object
object
A collection of Portal Use Rules.
object
Custom data associated with the resource
object
object
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
The rules on how to use Inventory Buckets.
object
object
A collection of Inventory Bucket Use Rules.
object
Custom data associated with the resource
object
object
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
The Vendors.
object
object
A collection of Loot and how to fulfill them.
object
Custom data associated with the resource
object
The Vendor UUID
Determines how the Vendor fulfills the loot
The Loot the Vendor will fulfill mapped by Loot ID.
object
Loot determines how an Item fulfilled. When Loot is fulfilled, the Item is granted to the player or the Sub Vendor is fulfilled but not both.
object
Custom data associated with the resource
object
The Loot UUID
The Loot ID
The Vendor ID
The Vendor UUID
The Item ID. Optional Item that will be granted to the player if Sub Vendor ID is not specified.
The Item UUID. Optional Item that will be granted to the player if Sub Vendor ID is not specified.
In-line Item definition. Optional Item that will be granted to the player if Sub Vendor ID is not specified.
object
Custom data associated with the resource
object
The Item UUID
The type of item.
This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot that will be fulfilled.
This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot ID that will be fulfilled.
The XP Table that is used to determine the Player’s level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item.
The XP Table that is used to determine the Player’s level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item.
The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor’s Loot table. This is only valid for an unit Item.
The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor’s Loot table. This is only valid for an unit Item.
The item of the currency used by this coupon. This is only valid for an unit Item.
The item of the currency used by this coupon. This is only valid for an unit Item.
The percentage of the discount. This is only valid for an unit Item.
If true, the coupon will be consumed when used; reducing the Player’s Inventory quantity by 1. This is only valid for an unit Item.
The Inventory Bucket Use Rule Set ID that determines how this item can be used across buckets.
List of Loot IDs this item can discount
List of Loot this item can discount
Cache information for this item.
object
The Sub Vendor ID. Optional Vendor ID that will be used to fulfill the Loot instead of granting the Item.
The Sub Vendor UUID. Optional Vendor ID that will be used to fulfill the Loot instead of granting the Item.
The quantity of the Item or Sub Vendor to fulfill. This will be multiplied by the quantity of fulfilled Loot and the parent Loot if quantity_type is relative.
The Inventory Selector Type. Determine how the Inventory is selected and quantity is modified.
The Inventory Operation. Determine how the Loot quantity is modified based on the context it is fulfilled in. This also determines the order Loot will be fulfilled in when sort_order is the same.
Determines if the Loot is active. Inactive Loot will not be fulfilled.
The sort order of the Loot. Lower sort order will be fulfilled first. Inventory Operation is used as a tie breaker when sort_order is the same.
The drop weight of the Loot. Higher drop weight will be more likely to be fulfilled.
When dropped in a randomly sampled vendor, will this create a new order or fill inline?. The primary use case for this is when you want the same loot to be dropped multiple times in a randomly sampled vendor.
When dropped in a randomly sampled vendor, will the sub vendor allow dropping part of the the bundle? False means it will only drop if the entire sub vendor can be given to the player
Item required to be owned/rented to drop this Loot in a randomly sampled vendor
Item required to be owned/rented to drop this Loot in a randomly sampled vendor
Amount of the required_item_id to be owned/rented to drop this Loot in a randomly sampled vendor
Amount of owned/rented of this Loot’s item that will prevent this Loot from dropping in a randomly sampled vendor
Determines how the quantity is modified in the context it is fulfilled in.
When fulfilling Loot if this is set the quantity will be multiplied by the quantity of this Item in the Player’s Inventory.
When fulfilling Loot if this is set the quantity will be multiplied by the quantity of this Item in the Player’s Inventory.
Determines if the Loot can be claimed by the client. This is dangerous without the correct loot confiuration as a client could claim Loot multiple times.
The Time Frame ID. Optional Time Frame ID that will be used the expiration of Loot when it is fulfilled.
Inventory Bucket to use for this Loot.
Allows treating quantity as additional levels to grant to the Player.
The current price point guid. Optional Price Point ID that will be used to determine the price of the Loot when it is fulfilled.
The pre sale price point guid. Optional Price Point ID that will be used to show the previous price of the Loot.
Cache info for the Loot.
object
Hard cap on quantity of an item this Loot can give. Disabled with 0
Current price that this loot can be purchased with
object
Breakpoints that the loot is available for purchase with
Price Breakpoint for a specific quantity of units to purchase.
object
Amount of units that must be purchased to use this price
List of all possible prices that this breakpoint can be purchased with.
Single price that the loot can be purchased with. Note that all currencies of this list will be spent together.
object
All required currencies to use this price for purchase. All currencies in this list are spent together.
One currency (of potentially multiple) that can be used for a purchase, and how much of that currency is required for the purchase.
object
The Item used as the currency for the purchase.
The Item used as the currency for the purchase.
The current amount of the item needed to use this price currency
The amount of the item needed before the sale began
Does the number of units being purchased need to be an exact match to the quantity on a Price Breakpoint?
Can the number of units being purchased be higher than the highest quantity on the Price Breakpoints?
Cache info for the Vendor.
object
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
The Loots.
object
object
Loot determines how an Item fulfilled. When Loot is fulfilled, the Item is granted to the player or the Sub Vendor is fulfilled but not both.
object
Custom data associated with the resource
object
The Loot UUID
The Loot ID
The Vendor ID
The Vendor UUID
The Item ID. Optional Item that will be granted to the player if Sub Vendor ID is not specified.
The Item UUID. Optional Item that will be granted to the player if Sub Vendor ID is not specified.
In-line Item definition. Optional Item that will be granted to the player if Sub Vendor ID is not specified.
object
Custom data associated with the resource
object
The Item UUID
The type of item.
This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot that will be fulfilled.
This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot ID that will be fulfilled.
The XP Table that is used to determine the Player’s level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item.
The XP Table that is used to determine the Player’s level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item.
The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor’s Loot table. This is only valid for an unit Item.
The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor’s Loot table. This is only valid for an unit Item.
The item of the currency used by this coupon. This is only valid for an unit Item.
The item of the currency used by this coupon. This is only valid for an unit Item.
The percentage of the discount. This is only valid for an unit Item.
If true, the coupon will be consumed when used; reducing the Player’s Inventory quantity by 1. This is only valid for an unit Item.
The Inventory Bucket Use Rule Set ID that determines how this item can be used across buckets.
List of Loot IDs this item can discount
List of Loot this item can discount
Cache information for this item.
object
The Sub Vendor ID. Optional Vendor ID that will be used to fulfill the Loot instead of granting the Item.
The Sub Vendor UUID. Optional Vendor ID that will be used to fulfill the Loot instead of granting the Item.
The quantity of the Item or Sub Vendor to fulfill. This will be multiplied by the quantity of fulfilled Loot and the parent Loot if quantity_type is relative.
The Inventory Selector Type. Determine how the Inventory is selected and quantity is modified.
The Inventory Operation. Determine how the Loot quantity is modified based on the context it is fulfilled in. This also determines the order Loot will be fulfilled in when sort_order is the same.
Determines if the Loot is active. Inactive Loot will not be fulfilled.
The sort order of the Loot. Lower sort order will be fulfilled first. Inventory Operation is used as a tie breaker when sort_order is the same.
The drop weight of the Loot. Higher drop weight will be more likely to be fulfilled.
When dropped in a randomly sampled vendor, will this create a new order or fill inline?. The primary use case for this is when you want the same loot to be dropped multiple times in a randomly sampled vendor.
When dropped in a randomly sampled vendor, will the sub vendor allow dropping part of the the bundle? False means it will only drop if the entire sub vendor can be given to the player
Item required to be owned/rented to drop this Loot in a randomly sampled vendor
Item required to be owned/rented to drop this Loot in a randomly sampled vendor
Amount of the required_item_id to be owned/rented to drop this Loot in a randomly sampled vendor
Amount of owned/rented of this Loot’s item that will prevent this Loot from dropping in a randomly sampled vendor
Determines how the quantity is modified in the context it is fulfilled in.
When fulfilling Loot if this is set the quantity will be multiplied by the quantity of this Item in the Player’s Inventory.
When fulfilling Loot if this is set the quantity will be multiplied by the quantity of this Item in the Player’s Inventory.
Determines if the Loot can be claimed by the client. This is dangerous without the correct loot confiuration as a client could claim Loot multiple times.
The Time Frame ID. Optional Time Frame ID that will be used the expiration of Loot when it is fulfilled.
Inventory Bucket to use for this Loot.
Allows treating quantity as additional levels to grant to the Player.
The current price point guid. Optional Price Point ID that will be used to determine the price of the Loot when it is fulfilled.
The pre sale price point guid. Optional Price Point ID that will be used to show the previous price of the Loot.
Cache info for the Loot.
object
Hard cap on quantity of an item this Loot can give. Disabled with 0
Current price that this loot can be purchased with
object
Breakpoints that the loot is available for purchase with
Price Breakpoint for a specific quantity of units to purchase.
object
Amount of units that must be purchased to use this price
List of all possible prices that this breakpoint can be purchased with.
Single price that the loot can be purchased with. Note that all currencies of this list will be spent together.
object
All required currencies to use this price for purchase. All currencies in this list are spent together.
One currency (of potentially multiple) that can be used for a purchase, and how much of that currency is required for the purchase.
object
The Item used as the currency for the purchase.
The Item used as the currency for the purchase.
The current amount of the item needed to use this price currency
The amount of the item needed before the sale began
Does the number of units being purchased need to be an exact match to the quantity on a Price Breakpoint?
Can the number of units being purchased be higher than the highest quantity on the Price Breakpoints?
Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers
object
The Items.
object
A collection of Items by Item ID
object
An Item. Item come in a couple of different flavors; determined by the type
field.
Unit
items are stored in a player’s inventory.
Recipe
items are not stored in a player’s inventory and are used to fulfill SubVendor Loot.
RecipeWithPriceReduction
items are not stored in a player’s inventory and are used to fulfill SubVendor Loot but at a reduced cost if the Player owns some of the Loot.
Entitlement
items are stored in a player’s inventory and are fulfilled to the player each time an Inventory Session is created and when the Entitlement is fulfilled to the Player.
object
Custom data associated with the resource
object
The Item UUID
The type of item.
This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot that will be fulfilled.
This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot ID that will be fulfilled.
The XP Table that is used to determine the Player’s level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item.
The XP Table that is used to determine the Player’s level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item.
The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor’s Loot table. This is only valid for an unit Item.
The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor’s Loot table. This is only valid for an unit Item.
The item of the currency used by this coupon. This is only valid for an unit Item.
The item of the currency used by this coupon. This is only valid for an unit Item.
The percentage of the discount. This is only valid for an unit Item.
If true, the coupon will be consumed when used; reducing the Player’s Inventory quantity by 1. This is only valid for an unit Item.
The Inventory Bucket Use Rule Set ID that determines how this item can be used across buckets.
List of Loot IDs this item can discount
List of Loot this item can discount
Cache information for this item.
object
Item’s cache information.
object
The Price Points.
object
Price Points mapped by Price Point ID.
object
A collection of Price Breakpoints (volume pricing).
object
Custom data associated with the resource
object
The name of the Price Point.
Forces the quantity to be equal to a quantity on a Price Breakpoint.
Only allows quantity to be fulfilled up the highest quantity on the Price Breakpoints
Current Price Breakpoints.
Price based on quantity and the Item ID of the currency used.
object
The Item used as the currency for the purchase.
Deprecated. Use the currencies field instead.
Deprecated. Use the currencies field instead.
List of currencies for this break point
The currencies of a Price Breakpoint.
object
The Item used as the currency for the purchase.
The Item used as the currency for the purchase.
The price of the Item.
Previous Price Breakpoints.
Price based on quantity and the Item ID of the currency used.
object
The Item used as the currency for the purchase.
Deprecated. Use the currencies field instead.
Deprecated. Use the currencies field instead.
List of currencies for this break point
The currencies of a Price Breakpoint.
object
The Item used as the currency for the purchase.
The Item used as the currency for the purchase.
The price of the Item.
Cache info for the Price Point.
object
Cache info for the Price Points.
object
The Time Frames.
object
Time Frames mapped by Time Frame ID.
object
Time Frames are used to calculate the expiration of Inventory
object
The name of the Time Frame.
Whether or not the Time Frame is active.
Number of hours that this time frame lasts until restarting.0 interval means no repeating.
Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone
Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone
Cache info for the Time Frame.
object
Cache info for the Time Frames.
object
The Platform SKUs.
object
A collection of SKUs
Platform SKU that can be converted to inventory or keys
object
Custom data associated with the resource
object
The platform of the SKU
The SKU of the platform
The Loot that will be granted to the player
object
The action taken on the platform when granting this SKU
The Loot ID that will be granted to the player
The Loot ID that will be granted to the player when the SKU is refunded
The Loot ID that will be granted to the player when the SKU is charged back
The Loot ID that will be granted to the player when the SKU is charged back is reversed
The External Key Entitlement
object
The External Key Campaign ID
The quantity of the External Key Entitlement
Cache info for the Platform SKUs.
object
Cache info for the Platform SKUs.
object
Cache info for the Catalog.
object
Headers
Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.
304
Content still has the same etag and has not changed
403
Forbidden
object
404
Not Found
object
422
Validation Error