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.

EndpointDescription
GET {URI}/catalogsGet all items in the platform's catalog.

Parameters

The following query parameters are available with this endpoint to refine your search results:

Query params

Data type

Description

verbose

boolean

Default is True. When true, will return the additional brand fields: status, disclaimer, description, short description, terms, brand requirements collection, and image urls collection.

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.

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".

rewardType

string

Returns all brands and item details with the specified reward type:

  • all
  • gift card (such as Starbucks, Amazon.com, Target, and many others in a variety of currencies.)
  • promo (See Promo Link™)
  • donation (such as American Cancer Society, American Red Cross, etc.)
  • Reward Link (See Reward Link®)
  • payment ACH (See Pay with ACH or Wire)
  • payment card
  • reporting
  • payment-paypal
  • Tango open loop
  • cash equivalent
  • physical gift card

currencyCode

string

Return all brands and item details associated with a specific currency. We accept AUD, CAD, EUR, GBP, and USD for Global Choice Link s. Only one currency can be specified. Currency can never be changed. The currency defaults to USD if no currency is specified.

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).

Response body notes

On a successful request (200 OK), the response body includes several important fields. Below are some key notes and considerations to help you understand field behaviors and best practices:

  • Verbose vs. non-verbose mode: verbose=true (default) returns full brand details: status, disclaimer, description, shortDescription, terms, brandRequirements, and imageUrls. verbose=false returns only brand name, brand key, and items — use this for faster responses when you don't need brand metadata.

  • UTID is the key field: utid is the unique identifier you pass when placing an order. Always reference the UTID from the catalog response. Do not hardcode UTIDs, as they can change.

  • Fixed vs. variable value items:

    • if valueType=FIXED_VALUE, then use faceValue for the exact amount.
    • if valueType=VARIABLE_VALUE, then use minValue and maxValue to determine the allowed range. The faceValue field will be 0.
  • Item attributes determine delivery options: Check the attributes array (EMAIL, PHONE, ADDRESS, EMBEDDED) to know which deliveryMethod values are supported for that item before placing an order.

  • Status filtering: The catalog returns items in all statuses by default. Filter by status=active to only get orderable items. Items with status test, inactive, or deleted cannot be ordered in production.

  • Currency and country: A single brand can have items in multiple currencies and countries. Filter by currencyCode or country to narrow results for your use case.

  • Large response payload: The full catalog can be large. Use query parameters (brandKey, utid, rewardType, currencyCode, country) to filter and reduce payload size.

  • Deprecated field: fulfillmentType (DIGITAL/PHYSICAL) is deprecated. Use attributes (EMAIL, PHONE, ADDRESS, EMBEDDED) instead 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 codeMeaning
200The request was successful..
400The server could not understand the request due to invalid syntax.
401Authentication is required and has either not been provided or failed.
403The server understood the request but refuses to authorize it.
500Something went wrong on the server, but the server cannot be more specific about what the exact problem is.
503The server is currently unable to handle the request due to temporary overload or maintenance.


© 2026 Tango API are provided by Tango, a division of BHN, Inc.