Search

The Search module provides product discovery for storefront-facing applications. It supports keyword search, faceted filters, autocomplete suggestions, product listing pages backed by Vertex AI retail search, display banner ads, and product recommendations.

Banners

Display banner ad operations powered by Osmos.

Operations
GET
/service/application/search/v1.0/banners
# Fetch display banner ads.
GET

Fetch display banner ads.

FDK Method Name: getBanners
Returns display banner ads from Osmos for the current storefront context. Supports geo, device, category, and cohort targeting via query parameters. Always returns HTTP 200 — failures degrade to an empty banners array with meta.totalBanners=0. Geo fields (city, state, country) fall back to the x-location-detail header or app_location_details cookie when not sent as query params. Login status is auto-derived from the UserId cookie when the login_status param is omitted.
Parameters
keyword
string
Search keyword context for ad targeting.
category
string
Generic category context for ad targeting.
category_l1
string
L1 category context for ad targeting.
category_l2
string
L2 category context for ad targeting.
category_l3
string
L3 category context for ad targeting.
placement
string
Ad unit / placement key for targeting (e.g. home, category, search).
device
string
Device type for ad targeting.
Enum
platform
string
Platform identifier for targeting.
channel
string
Channel identifier for targeting.
segment
string
User segment identifier for ad targeting.
campaign_tag
string
Campaign tag for ad targeting.
network
string
Network identifier for ad targeting.
brand
string
Brand name for ad targeting context. Accepts a single brand name string (not comma-separated).
sku
string
SKU identifier(s) for ad targeting. Accepts a single SKU or comma-separated list.
limit
integer
Maximum number of banner ads to return. Overridden by the banner_ads_per_unit search setting when configured.
city
string
User city for geo targeting. Falls back to x-location-detail header or app_location_details cookie.
state
string
User state for geo targeting. Falls back to x-location-detail header or app_location_details cookie.
country
string
User country for geo targeting. Falls back to x-location-detail header or app_location_details cookie.
store
string
Store / channel key (e.g. AJIO). Falls back to x-store-id header.
login_status
string
User authentication state for ad targeting. When omitted, auto-derived from the UserId cookie (logged_in if present, not_logged_in otherwise).
Enum
cohort
string
Cohort tag for personalised ad targeting. Falls back to x-cohort-id header.
browser_id
string
Client browser ID. Overrides the auto-derived userId (from UserId / anonymous_id cookies) for Osmos tracking when provided.
Response
200
Success. Returns banner ads. Empty banners array when no ads are available or on circuit-open / timeout fallback.
BannerListing
banners
array of object (BannerItem)
List of banner ads. Empty array when unavailable, disabled, or on fallback.
Array of BannerItem
banner_id
string
Unique banner identifier (Osmos uclid).
placement
string
Nullable
Ad unit / placement name this banner was served from.
image_url_desktop
string
Desktop banner image URL.
image_url_mobile
string
Mobile banner image URL.
impression_url
string
Pixel URL to fire on banner impression for tracking.
click_url
string
Tracking URL to fire on banner click.
destination_url
string
Final landing URL the user navigates to after clicking.
position
integer
Nullable
Display rank / position of the banner. When multiple ad units return duplicate positions, Phoenix re-indexes to guarantee uniqueness.
alt_text
string
Accessibility alt text for the banner image.
title
string
Banner headline copy.
description
string
Banner sub-copy / body text.
cta_text
string
Call-to-action button label.
cta_url
string
Call-to-action button URL.
metadata
object
Arbitrary extra metadata forwarded from Osmos.
additionalProperties
Allows you to attach properties in addition to the ones mentioned above. Any additional properties are allowed.
meta
object (BannerListingMeta)
BannerListingMeta
source
string
Data source identifier. "osmos" when the Osmos API was called (regardless of whether banners were returned). "disabled" when the banners_enabled search setting is false.
Enum
total_banners
integer
Number of banners in the response array.
additionalProperties
Allows you to attach properties in addition to the ones mentioned above. Any additional properties are allowed.
additionalProperties
Allows you to attach properties in addition to the ones mentioned above. Any additional properties are allowed.
Examples
Parameters
Parameters are not required.
GET
/service/application/search/v1.0/banners
Loading...
Response
Loading...

Recommendations

Product recommendation operations — placement-based (GET) and unified strategy router (POST).

Operations
GET
/service/application/search/v1.0/recommendations
# Placement-based product recommendations.
POST
/service/application/search/v1.0/recommendations
# Unified recommendation strategies.
GET

Placement-based product recommendations.

FDK Method Name: getRecommendations
Returns placement-based product recommendations for a storefront visitor. The backend (Vertex Predict or RRA) is determined per placement_type via the PLACEMENT_BACKEND_* environment variables — no global feature flag. Returns a single flat product list. Always returns HTTP 200 — failures degrade to an empty items array with metadata.fallback=true.
Parameters
placement_type
string
Required
Recommendation placement key that determines the model to invoke (e.g. similar-products, recently-viewed, bought-together).
visitor_id
string
Required
Storefront visitor ID. Used by Vertex for personalisation context and by RRA for session scoping.
product_id
string
Single seed product ID. Mutually exclusive with product_ids.
product_ids
string
Comma-separated seed product IDs. Mutually exclusive with product_id. Results are merged into a single flat list.
page_size
integer
Number of recommended products to return (max 50).
Default Value : 10
filter
string
Vertex filter expression to narrow recommendation results.
pincode
string
Delivery pincode for price zone resolution.
Response
200
400
Success. Returns a flat list of recommended products. Empty items array on fallback (circuit open, timeout, or no results).
RecommendationListing
items
array of object (RecommendedProductItem)
Flat list of recommended products. Empty array on fallback.
Array of RecommendedProductItem
uid
integer
Unique product identifier.
name
string
Product display name.
slug
string
URL-safe product identifier.
brand
object
Brand name and UID.
price
object
Effective and marked price bands.
medias
array of object
Product images.
sellable
boolean
Whether the product is currently purchasable.
additionalProperties
Allows you to attach properties in addition to the ones mentioned above. Any additional properties are allowed.
page
object (StandardPage)
StandardPage
current
integer
Current page number (1-indexed).
total
integer
Nullable
Total number of pages. null for cursor-based (open-ended) endpoints.
has_previous
boolean
Whether a previous page exists.
has_next
boolean
Whether a next page exists.
item_total
integer
Total number of items on the current page.
type
string
Pagination mode.
Enum
next_id
string
Cursor token for the next page. Only present when type=cursor and has_next=true.
additionalProperties
Allows you to attach properties in addition to the ones mentioned above. Any additional properties are allowed.
metadata
object (RecommendationListingMetadata)
RecommendationListingMetadata
placement_type
string
Echoes the requested placement_type.
attribution_token
string
Vertex attribution token for downstream event logging. Empty string when RRA backend is active.
missing_ids
array of string
Seed product IDs that were not found in productMaster.
fallback
boolean
Present and true only when a fallback response is returned.
additionalProperties
Allows you to attach properties in addition to the ones mentioned above. Any additional properties are allowed.
additionalProperties
Allows you to attach properties in addition to the ones mentioned above. Any additional properties are allowed.
Examples
Parameters
Parameters are not required.
GET
/service/application/search/v1.0/recommendations
Loading...
Response
Loading...
POST

Unified recommendation strategies.

FDK Method Name: postRecommendations
Single entry point for all recommendation strategies: batch, widget, personalized, curated, filters, and trends. Use the `strategy` field to select the recommendation type. If `strategy` is omitted but a `products` array is present, auto-detects as batch. Always returns HTTP 200. **Strategy summary:** - **batch** — Similar products for one or more seed product IDs (via RRA). - **widget** — Widget-based recommendations (via RRA); requires widget_id + widget_type + store. - **personalized** — Personalized category recommendations blending exploit + coldstart + explore buckets. - **curated** — Editorial / curated content widgets from RRA; requires widget_id + widget_level + store. - **filters** — Per-user filter affinities (brand, category, discount); requires user_id + store. - **trends** — Top trending option codes by Cohort, Segment, or Brick; requires trend_type + value + store.
Parameters
No Parameters
Request body
strategy
string
Recommendation strategy. If omitted and `products` is present, defaults to batch.
Enum
products
array of object (SimilarBatchProduct)
Seed product entries (strategy=batch). At least one entry with product_id is required.
Array of SimilarBatchProduct
product_id
string
Required
Seed product ID.
store
string
Store / channel key for RRA routing. Defaults to the application ID when omitted.
size
integer
Max number of similar products for this seed. Defaults to RRA_MAX_PER_PRODUCT server config.
pincode
string
Delivery pincode for price zone resolution (batch/widget/personalized).
widget_id
string
Widget placement identifier (strategy=widget, curated).
widget_type
string
Widget type key (strategy=widget).
store
string
Store / channel key. Required for widget, personalized, curated, filters, and trends strategies. Falls back to x-store-id header.
page_size
integer
Number of products to return, max 50 (strategy=widget/personalized).
Default Value : 20
show_default_if_no_data
boolean
Return default content if none exists (strategy=widget, curated).
Default Value : false
primary_cohort
string
Primary cohort tag (strategy=personalized).
category_id
string
Category identifier (strategy=personalized).
offset
string
Opaque cursor token for pagination (strategy=personalized).
widget_level
string
Widget level / tier identifier (strategy=curated). Required when strategy is curated.
user_id
string
User identifier for fetching per-user filter affinities (strategy=filters). Required when strategy is filters.
trend_type
string
Trend dimension type (strategy=trends). Required when strategy is trends.
Enum
value
string
Trend dimension value to query (strategy=trends). Required when strategy is trends.
Response
200
400
Success. Response shape depends on strategy — batch returns SimilarBatchListing, widget returns WidgetListing, personalized returns PersonalizedListing, curated returns CuratedListing, filters returns UserFiltersResult, trends returns TrendsResult. Empty items/data on fallback.
Examples
Parameters
body:
body
POST
/service/application/search/v1.0/recommendations
Loading...
Response
Loading...