GET
/
v1
/
recommendations
/
search
Get ranked search catalog
curl --request GET \
  --url https://api.hofj.com/v1/recommendations/search \
  --header 'Authorization: Bearer <token>'
{
  "data": {
    "locale": "<string>",
    "filters": {},
    "total": 123,
    "products": [
      {
        "productId": 123,
        "productSlug": "<string>",
        "rankPosition": 123,
        "combinedScore": 123,
        "viewWeightedScore": 123,
        "bookingWeightedScore": 123,
        "freshnessScore": 123,
        "totalViews": 123,
        "totalBookings": 123,
        "title": "<string>",
        "price": 123,
        "currency": "<string>",
        "primaryCategory": "<string>",
        "categories": [
          "<string>"
        ],
        "primaryDestination": "<string>",
        "destinations": [
          "<string>"
        ],
        "country": "<string>",
        "keywords": "<string>",
        "minDate": "2023-12-25",
        "maxDate": "2023-12-25",
        "slotCount": 123,
        "featured": true,
        "isSpecialOffer": true,
        "defaultDurationInDays": 123
      }
    ]
  },
  "meta": {
    "brand": "<string>",
    "channelId": 123,
    "cacheLoadedAt": "2023-11-07T05:31:56Z"
  }
}

Authorizations

Authorization
string
header
default:dev-internal-api-key
required

Use Authorization: Bearer <access_token> from POST /v1/oauth/token, or Authorization: Bearer <api_key>. Dev-only example key (do not use in production): see repository README.

Query Parameters

brand
string

Distribution channel brand: matches channel name or domainUrl (e.g. Weebora, weebora.com, booking.hofj.com, terrarossa.com). The resolved domain is BOTH the upstream host AND the tenant routing value. If omitted, CONTENT_DEFAULT_CHANNEL_DOMAIN must be set server-side.

locale
enum<string>

Locale for the brand site (it, en, es, fr). Injected as /{locale}/api/... on the upstream call. Defaults to CONTENT_DEFAULT_LOCALE.

Available options:
it,
en,
es,
fr
category
string

Filter by canonical category slug.

destination
string

Filter by destination slug.

country
string

Filter by ISO country code, for example ES or IT.

date_from
string<date>

Keep products with max_date >= date_from (YYYY-MM-DD).

date_to
string<date>

Keep products with min_date <= date_to (YYYY-MM-DD).

keyword
string

Space-separated tokens; all must match upstream search keywords.

price_min
number

Inclusive minimum price.

price_max
number

Inclusive maximum price.

top_n
integer
default:10

Number of products to return.

Required range: 1 <= x <= 200
slim
boolean
default:false

If true, returns lightweight items from the recommender upstream.

Response

Ranked search catalog

data
object
required
meta
object
required