Autocomplete
UseGET /v1/search/suggestions for compact typeahead results. It searches products, reviewed brands, reviewed product families, and categories without returning full product or family payloads.
limit applies to each requested group and is capped at 20. Omit types to return all four groups. Every suggestion contains a relative href for the full resource or filtered collection. Product suggestions also preserve the six-character DABS SKU under source_ids.
Autocomplete requires q with at least two characters after search normalization. Case, accents, apostrophes, and punctuation are normalized: Rémy Martin searches as remy martin. Missing, empty, or punctuation-only queries return 400 INVALID_PARAMETER. Send a typeahead request once the input contains two searchable characters.
Product search also requires two characters when q is provided; brand, family, and store search require one. Omit q (or send an empty value) to browse those collections without a text filter. A nonempty query that normalizes to no searchable characters is rejected instead of returning an unfiltered collection. SKUs remain strings, including leading zeros.
Autocomplete is a navigation aid, not an inventory result. Follow the product link or search the product collection when you need price, status, availability, or freshness.
Query-dependent facets
Addinclude=facets to product browsing when an interface needs counts for the result set it is displaying:
meta.facets includes the matching product count, represented brands, category lineage, DABS statuses, and observed price bounds. Counts are calculated after every requested filter—including the same facet’s active filter. They therefore describe the exact current result set, not hypothetical counts produced by removing one filter at a time.
Facets are opt-in because they require extra aggregation work. Cache them with the response ETag. The counts are pinned to the same publication revision as the returned products, but they do not imply complete inventory when an inventory-scoped query reports partial coverage.
You can combine facets with coverage_details as a comma-separated include list when an inventory-scoped diagnostic view genuinely needs both: