Get Catalog List

Description

This service retrieves the catalog of available items for a specific mileage activity. The results can be filtered, sorted, and paginated using optional query parameters.


Request

Restrictions

This service requires an authenticated user and can only be called after a successful consumer login.

Endpoint

GET https://<server-url>/api/v4/mileage/{activity_code}/catalog/items

Path Parameters

Parameter
Type
Description

activity_code

String

The unique code for the mileage activity (e.g., "MPOINTS").

Parameters

Parameter
Location
Description

touchpoint

Query / Header

The identifier for the touchpoint. Use Thalamus-Touchpoint for the header.

token

Query / Header

The authentication token for the API session. Use Thalamus-Token for the header.

name

Query

Optional. Filter items by name.

page

Query

Optional. The page number for pagination.

size

Query

Optional. The number of items to return per page.

tags

Query

Optional. A comma-separated string of tags to filter items.

orderby

Query

Optional. The field to order the results by.

allfields

Query

Optional. A boolean to indicate if all fields should be returned.

description1-5

Query

Optional. Filter items by custom description fields.

Full URL Example

https://<server-url>/api/v4/mileage/MPOINTS/catalog/items?page=1&size=10&tags=food,kitchen&orderby=name&touchpoint=test&token=...

Request Body

This request does not have a body.


Response

✅ Successful Response: 200 OK

A JSON object is returned containing an array of catalog items that match the request criteria. Each item in the items array is an object with the following key fields:

Field
Type
Description

code

String

The unique code for the catalog item.

name

String

The display name of the item.

shortDescription

String

A brief description of the item.

longDescription

String

A detailed description of the item.

itemType

String

The type of item (PHYSICAL_ITEM, VIRTUAL_ITEM, VIRTUAL_VOUCHER_ITEM).

price

Number

The cost of the item in points.

availableStock

Number

The current number of items in stock.

available

Boolean

Indicates if the item is currently available for redemption (considers checkout limit and stock).

beginningDate

Number

The "valid from" date and time (in UNIX Time) set for the item.

expirationDate

Number

The "valid to" date and time (in UNIX Time) set for the item.

checkoutLimitReached

Boolean

Indicates if the current user has reached the checkout limit set for the item.

currentQuota

Number

The quantity available to be checked out by the current user (as per checkout limit).

maxQuotaAvailable

Number

The configured max quantity available for checkout per user.

quotaAvailable

Boolean

Indicates if the current item has checkouts available to the user (as per checkout limit).

maxQuotaAvailableInterval

String

The rate at which the user checkout max quota refreshes. If this attribute shows "Lifetime", the quota does not refresh. The rest of the options include a time interval, such as "Week", "Day", etc.

JSON

{
  "items": [
    {
      "code": "CatalogFisicoCode",
      "name": "CatalogFisico",
      "shortDescription": "Short description",
      "longDescription": "Long description",
      "tags": "tagtag",
      "smallImageURL": "http://image.com/small.jpg",
      "mediumImageURL": "http://image.com/medium.jpg",
      "largeImageURL": "http://image.com/large.jpg",
      "itemType": "PHYSICAL_ITEM",
      "price": 0,
      "available": true,
      "availableStock": 0,
      "chance": false,
      "checkoutLimitReached": false
    },
    {
      "code": "VirtualVoucherCode",
      "name": "VirtualVoucherItem",
      "shortDescription": "A description",
      "longDescription": "Descriptioon",
      "tags": "Tags",
      "smallImageURL": "http://image.com/small.jpg",
      "mediumImageURL": "http://image.com/medium.jpg",
      "largeImageURL": "http://image.com/large.jpg",
      "itemType": "VIRTUAL_VOUCHER_ITEM",
      "price": 0,
      "available": true,
      "availableStock": 9999,
      "chance": false,
      "checkoutLimitReached": false,
      "expirationDate": "1494957060000"
    }
  ]
}

❌ Unsuccessful Response: 400 Bad Request

Returned if the filter, pagination, or sorting parameters are invalid.

JSON

{
  "errors": {
    "filter": "InvalidPageAndSize",
    "tags": "InvalidFormat",
    "orderby": "InvalidFormat"
  }
}

❌ Unsuccessful Response: 404 Not Found

Returned if the specified activity_code does not exist or no items are found.

JSON

{
  "errors": {
    "error.message": "NOT_FOUND"
  }
}

Last updated

Was this helpful?