Get all items in the platform catalog
This endpoint allows you to retrieve the full list of reward items available on your platform. You can filter results by reward type, brand, currency, country, fulfillment type, and other attributes to find specific items and their UTIDs for ordering.
Endpoint
Use this endpoint to get the full platform catalog including brands, items, attributes, categories, and credential types. See Get credential types . This endpoint also supports a wide range of query parameters for filtering.
| Endpoint | Description |
|---|---|
GET {URI}/catalogs | Get all items in the platform's catalog. |
Parameters
The full catalog can be large. Use query parameters such as brandKey, utid, rewardType, currencyCode, country, or itemAttribute to reduce response size. The following query parameters are available with this endpoint to refine your search results:
| Query params | Data type | Description |
|---|---|---|
| verbose | boolean | verbose=true is the default and returns additional brand metadata, including status, disclaimer, description, shortDescription, terms, brandRequirements, and imageUrls. Use verbose=false when you only need basic brand and item data. |
| brandKey | string | Returns the brand and item details for a specific brand ID. |
| brandName | string | Returns the brand and item details for a specific brand name. |
| utid | string | Returns the brand and item details for a specific UTID. UTID is the unique identifier for a specific reward. Do not hardcode utids since catalog items can change. |
| rewardName | string | Returns the brand and item details of the specified reward name. |
| status | string | Returns all brands and item details with the specified status. Possible statuses are: "test", "active", "inactive", "deleted". Use status=active to return items that can be ordered in production. |
| rewardType | string | Returns all brands and item details with the specified reward type:
|
| currencyCode | string | Return all brands and item details associated with a specific currency. CurrencyCode value is returned as three letters such as USD. |
| country | string | Returns all brands and item details from a specific country. Country codes are two-digits. |
| itemAttribute | string | Is used to filter catalog items based on specific attributes, instead of browsing the entire catalog. It returns all brands and item details that match the selected attribute. Each matching item includes a UTID for ordering. You can query items by a specific attribute. The system returns all UTIDs that match that attribute. Available attributes are: EMAIL, PHONE, ADDRESS, EMBEDDED. |
| categoryIds | arrays of uuids | Returns all brands and item details for specific brand categories. For categoryIds, you can add UUID (Universally Unique Identifier). |
Notes:
- Check delivery options before ordering: Use the
attributesarray to determine supported delivery methods. Some attributes arePHONE,ADDRESS, andEMBEDDED. For delivery-method requirements and behavior, see Delivery methods in Tango API.- Check item value rules: If
valueType=FIXED_VALUE, usefaceValueas the required reward amount. IfvalueType=VARIABLE_VALUE, useminValueandmaxValueto determine the allowed amount range. For variable-value items,faceValueis0.- Avoid deprecated
fulfillmentType:fulfillmentTypeis deprecated. Useattributesinstead to determine delivery capabilities.
Retrieve catalog items when verbose is true
When the verbose is true, it returns the additional brand information, such as brand key, brand name, description, terms, brand requirements, status, items, and more. isExpirable indicates whether or not the gift card has an expiry date. The value for isExpirable =boolean is true or false. The following payload example is for when verbose=true:
{
"catalogName": "string",
"brands": [
{
"brandKey": "string",
"brandName": "string",
"disclaimer": "string",
"description": "string",
"shortDescription": "string",
"terms": "string",
"createdDate": "2025-11-04T18:54:41.989Z",
"lastUpdateDate": "2025-11-04T18:54:41.989Z",
"brandRequirements": {
"displayInstructions": "string",
"termsAndConditionsInstructions": "string",
"disclaimerInstructions": "string",
"alwaysShowDisclaimer": true
},
"imageUrls": {
"additionalProp": "string"
},
"status": "string",
"items": [
{
"utid": "string",
"rewardName": "string",
"currencyCode": "string",
"status": "string",
"valueType": "string",
"rewardType": "string",
"isExpirable": true,
"quantityConstraints": {
"minQuantity": 1,
"maxQuantity": 1
},
"isWholeAmountValueRequired": true,
"exchangeRateRule": "string",
"minValue": 0,
"maxValue": 0,
"faceValue": 0,
"fee": {
"type": "string",
"value": 0
},
"createdDate": "2025-11-04T18:54:41.989Z",
"lastUpdateDate": "2025-11-04T18:54:41.989Z",
"countries": [
"string"
],
"credentialTypes": [
"string"
],
"redemptionInstructions": "string",
"attributes": [
"string"
]
}
],
"categories": [
{
"identifier": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"description": "string"
}
]
}
]
}Retrieve catalog items when verbose is false
When verbose=false, it returns only brand name, brand key, and items. Use this for faster responses when you don't need brand metadata. isExpirable indicates whether or not the gift card has an expiry date. The value for isExpirable =boolean is true or false. The following payload example is for when verbose=false:
{
"catalogName": "string",
"brands": [
{
"brandKey": "string",
"brandName": "string",
"disclaimer": "string",
"description": "string",
"shortDescription": "string",
"terms": "string",
"createdDate": "2025-07-31T01:25:58.972Z",
"lastUpdateDate": "2025-07-31T01:25:58.972Z",
"brandRequirements": {
"displayInstructions": "string",
"termsAndConditionsInstructions": "string",
"disclaimerInstructions": "string",
"alwaysShowDisclaimer": true
},
"imageUrls": {
"additionalProp": "string"
},
"status": "string",
"items": [
{
"utid": "string",
"rewardName": "string",
"currencyCode": "string",
"status": "string",
"valueType": "string",
"rewardType": "string",
"isExpirable": true,
"isWholeAmountValueRequired": true,
"exchangeRateRule": "string",
"minValue": 0,
"maxValue": 0,
"faceValue": 0,
"fee": {
"type": "string",
"value": 0
},
"createdDate": "2025-07-31T01:25:58.972Z",
"lastUpdateDate": "2025-07-31T01:25:58.972Z",
"countries": [
"string"
],
"credentialTypes": [
"string"
],
"redemptionInstructions": "string",
"attributes": [
"string"
]
}
],
"categories": [
{
"identifier": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"description": "string"
}
]
}
]
}Examples
Here's an example payload for when you receive an error:
{
"timestamp": "2025-02-21T23:23:13.930Z",
"requestId": "string",
"path": "string",
"httpCode": 0,
"httpPhrase": "string",
"i18nKey": "string",
"message": "The error message will show here for error codes ",
"errors": [
{}
]
}Response Codes
The possible response codes for this endpoint are as follows. For details, see i18nkey codes and their error messages:
| Response code | Meaning |
|---|---|
| 200 | The request was successful.. |
| 400 | The server could not understand the request due to invalid syntax. |
| 401 | Authentication is required and has either not been provided or failed. |
| 403 | The server understood the request but refuses to authorize it. |
| 500 | Something went wrong on the server, but the server cannot be more specific about what the exact problem is. |
| 503 | The server is currently unable to handle the request due to temporary overload or maintenance. |
Updated 19 days ago
