Search products by keyword with full-text search

Changed on

Public read endpoint: works without credentials at anonymous rate limits. Sending a Bearer API key raises limits to your tier (free tier: 10 requests/min, 10,000/day) and enables usage attribution.

get/products/search

Request

Query parameters

qstring

Keyword search query (full-text). Alias: query.

querystring

Alias for q (accepted for agent convenience; prefer q).

deliver_to'SG' | 'US' | 'VN' | 'TH' | 'MY' | 'ID' | 'PH'

REQUIRED for buyer-facing use: ISO-3166 country of the end user (e.g. "SG", "US"). Ranks deliverable products first and prevents all-market scans. Prefer over country_code.

domainstring

Filter by merchant platform (e.g. lazada, shopee)

regionstring

Filter by region (sea, us, eu, au)

country_code'SG' | 'US' | 'VN' | 'TH' | 'MY'

Filter by ISO country code. When provided without an explicit currency param, the default currency is inferred (SG→SGD, US→USD, VN→VND, TH→THB, MY→MYR). min_price/max_price apply in the inferred currency. Default: SG.

include_unshippableboolean

Include products not deliverable to deliver_to country (default true). Set to false to return only same-country products.

min_pricenumber

Minimum price in the active currency (inferred from country_code or explicit currency param)

max_pricenumber

Maximum price in the active currency (inferred from country_code or explicit currency param)

currencystring

Explicit currency override. If omitted and country_code is set, currency is inferred from country_code.

compactboolean

Return minimal payload for AI agents. Adds normalized_price_usd field. Reduces response ~40%.

limitinteger
offsetinteger
mode'keyword' | 'semantic' | 'hybrid'

Search mode. keyword (default) is full-text search on the indexed search_vector. semantic embeds the query (flow-embed-1, 1024-dim) and searches the pgvector pool, and hybrid RRF-merges the FTS and semantic candidate ranks. If vector infrastructure is unavailable, semantic and hybrid fall back to the keyword path.

Response

Product list with meta (total, response_time_ms, cached, mode)

Changes

    • breaking

      the response property // became nullable for the status

    • info

      the endpoint scheme security BearerAuth was removed from the API

    • info

      added the non-success response with the status

    • info

      removed the non-success response with the status

    • info

      added the optional property to the response with the status

    • info

      added the new optional query request parameter deliver_to

    • info

      added the new optional query request parameter include_unshippable

    • info

      added the new optional query request parameter query

    • info

      added the media type application/json for the response with the status