Get all available Choice products
This endpoint allows you to retrieve all Choice Products available in your Tango platform catalog. It provides product details such as reward name, currency, and eligible countries, enabling seamless integration of global reward or incentive options into your application.
Use case
Acme Health wants to show patients, in its wellness and chronic‑care programs, only the rewards they can actually redeem. It uses this endpoint to dynamically retrieve a list of eligible digital reward options, filtered by country, currency, and program-specific reward names.
By calling this endpoint after a patient completes an action (such as finishing a wellness module or meeting some goals), Acme Health pulls the up‑to‑date catalog of active Choice Products and displays them in the app, ensuring the reward options are accurate, compliant, and personalized to each member’s location and program before issuing the selected reward.
Endpoint
Use the the following endpoint to get all available Choice Products in your Tango platform's catalog:
| Function | Purpose |
|---|---|
GET {URI}/choiceProducts | Get all available Choice products. |
Parameters
To filter the results, use the following query parameters with this endpoint:
Query params | Data type | Description |
|---|---|---|
rewardName | string | Use this filter to retrieve Choice Products that match a specific reward name. |
currencyCode | string | Use this filter to retrieve results by the currency associated with the Choice Product. 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. |
countries | array of strings | Use this filter to search products based on the countries where they’re available. |
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:
- UTID is what you need for ordering: The utid from this response is the identifier you pass when placing an order. Don't hardcode UTIDs — always reference the latest response.
- Choice Products only: This endpoint returns only Choice Products (Reward Link®, Global Choice Link, Promo Link™, Disbursement Link). Use GET /catalogs for the full catalog including standard items.
Examples
The following example is the generic payload with this endpoint showing the basic shape of a successful response:
{
"choiceProducts": [
{
"utid": "string",
"rewardName": "string",
"currencyCode": "string",
"countries": [
"string"
]
}
]
}This example shows what a real-world response may look like when your platform has active Tango Choice products. It includes actual sample values like UTIDs and product names. Your catalog may contain multiple Choice Products. Each entry includes: utid, rewardName, currencyCode, status, and countries such as US:
{
"choiceProducts": [
{
"utid": "U346020",
"rewardName": "Disbursement Link",
"currencyCode": "USD",
"status": "active",
"countries": [
"US"
],
},
{
"utid": "U088323",
"rewardName": "Promo Link",
"currencyCode": "USD",
"status": "active",
"countries": [
"US"
]
},
{
"utid": "U561593",
"rewardName": "Reward Link Preferred + Donations",
"currencyCode": "USD",
"status": "active",
"countries": [
"US"
]
}
]
}
This example shows what the API returns when something goes wrong—such as invalid parameters, authentication errors, or other failures. It includes the typical fields returned in an error response. The error response includes metadata and helps you understand how to detect and handle errors.
{
"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": [
{}
]
}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. |
Updated 2 days ago
