Skip to main content
Search products and browse reported inventory

Headers

If-None-Match
string

Strong entity tag from an earlier response.

If-Modified-Since
string

HTTP-date fallback validator. ETag takes precedence.

Query Parameters

q
string

SKU, product-name, and reviewed brand-alias search. Exact reviewed aliases take precedence; otherwise matching uses phrases, all tokens, and a bounded typo-tolerant fallback. Required for sort=relevance. Nonempty queries must retain at least two characters after normalization; punctuation-only queries return INVALID_PARAMETER.

Required string length: 2 - 200
sku
string

Legacy single-value current or unambiguous historical Utah DABS SKU selector. Mutually exclusive with skus and product_ids.

Pattern: ^[0-9]{6}$
Examples:

"347210"

"004190"

skus
string[]

Comma-separated current or unambiguous historical Utah DABS SKUs. Mutually exclusive with sku and product_ids; leading zeros are preserved.

Maximum array length: 25
Pattern: ^[0-9]{6}$
product_ids
string<uuid>[]

Comma-separated exact stable product UUIDs. Mutually exclusive with sku and skus.

Maximum array length: 25
first_observed_since
string<date-time>

Include products first observed by Nektir at or after this RFC 3339 time. This is a Nektir observation time, not a DABS release or source-update time. Mutually exclusive with changed_since.

changed_since
string<date-time>

Include products with a matching published Nektir change observation at or after this RFC 3339 time. Mutually exclusive with first_observed_since.

change_types
enum<string>[]

Change types used with changed_since. When omitted, product-level price, status, presentation, aggregate-inventory, and catalog-presence changes are included; high-volume store-level events and first observations are excluded.

Maximum array length: 8
Available options:
product_first_observed,
price_changed,
status_changed,
product_presentation_changed,
aggregate_inventory_changed,
store_inventory_first_observed,
store_inventory_changed,
catalog_presence_changed
brand_ids
string<uuid>[]

Comma-separated reviewed Nektir brand UUIDs; OR semantics within this filter and AND semantics with other filter groups. Unresolved products do not match.

Maximum array length: 25
family_ids
string<uuid>[]

Comma-separated reviewed product-family UUIDs; OR semantics within this filter.

Maximum array length: 25
family_id
string<uuid>

Exact reviewed product-family UUID. Mutually exclusive with family_ids.

relationship_type
enum<string>[]

Comma-separated reviewed relationships between products and their family.

Maximum array length: 4
Available options:
expression,
package_variant,
successor,
other
category_ids
string[]

Comma-separated API category IDs; OR semantics. Selecting a parent category includes products assigned to any active descendant category.

Maximum array length: 20
Pattern: ^cat_[a-z0-9_]+$
wine_varietals
enum<string>[]

Comma-separated normalized wine varietals; OR semantics within this filter.

Maximum array length: 10
Available options:
cabernet_sauvignon,
cabernet_franc,
chardonnay,
chenin_blanc,
gamay,
gewurztraminer,
grenache,
malbec,
merlot,
mourvedre,
muscat,
nebbiolo,
petite_sirah,
petit_verdot,
pinot_blanc,
pinot_grigio,
pinot_gris,
pinot_noir,
riesling,
roussanne,
sangiovese,
semillon,
sauvignon_blanc,
syrah,
viognier,
zinfandel
beverage_styles
enum<string>[]

Comma-separated normalized styles; OR semantics within this filter.

Maximum array length: 10
Available options:
blanco,
reposado,
anejo,
extra_anejo,
cristalino,
joven,
single_malt,
blended_scotch,
rye_whiskey,
irish_whiskey,
canadian_whiskey,
brut,
blanc_de_blancs,
blanc_de_noirs,
rose,
champagne,
prosecco,
cava,
port,
sherry,
vermouth,
marsala,
madeira,
sangria,
late_harvest,
pilsner,
pale_ale,
porter,
stout,
wheat_beer,
hefeweizen,
oktoberfest,
belgian_style_ale
origin_country_codes
enum<string>[]

Comma-separated ISO 3166-1 alpha-2 countries explicitly supported by DABS taxonomy; OR semantics.

Maximum array length: 10
Available options:
AR,
AT,
AU,
CL,
DE,
ES,
FR,
GR,
IT,
NZ,
PT,
ZA
production_designations
enum<string>[]

Comma-separated normalized whiskey production designations; OR semantics within this filter.

Maximum array length: 6
Available options:
bottled_in_bond,
straight,
single_barrel,
small_batch,
cask_strength,
barrel_proof
statuses
enum<string>[]

Comma-separated DABS status codes; OR semantics.

Maximum array length: 10
Available options:
1,
A,
D,
L,
N,
P,
S,
T,
U,
X
price_min_minor
integer<int64>

Inclusive minimum USD cents. Must not exceed price_max_minor when both bounds are supplied. Unknown prices do not match.

Required range: x >= 0
price_max_minor
integer<int64>

Inclusive maximum USD cents. Must be at least price_min_minor when both bounds are supplied. Unknown prices do not match.

Required range: x >= 0
dabs_new_item
boolean

Exact match for the nullable DABS-reported newItem flag. Its duration and business meaning are unverified.

dabs_on_spa
boolean

Exact match for the nullable DABS-reported onSpa flag. This is not labeled as a sale or promotion.

availability
enum<string>
default:any

Reported observation predicate; never a purchase guarantee.

Available options:
any,
reported_positive,
checked
purchase_eligibility
enum<string>
default:any

Independent policy classification for ordinary consumer purchase.

Available options:
any,
eligible,
restricted,
unavailable,
unknown
inventory_age
enum<string>
default:within_policy

Whether inventory predicates require the current retrieval-age policy.

Available options:
within_policy,
any_age
store_ids
string<uuid>[]

Comma-separated stable store UUIDs, mutually exclusive with coordinates.

Maximum array length: 25
inventory_store_codes
string[]

Comma-separated four-digit DABS inventory store codes, with leading zeros preserved. Mutually exclusive with store_ids and coordinates.

Maximum array length: 25
Pattern: ^[0-9]{4}$
lat
number<double>

WGS84 latitude; must contain a numeric coordinate and be paired with lng. Empty values are invalid.

Required range: -90 <= x <= 90
lng
number<double>

WGS84 longitude; must contain a numeric coordinate and be paired with lat. Empty values are invalid.

Required range: -180 <= x <= 180
radius_m
integer
default:50000

Radius in meters; requires both lat and lng. Supplying it without coordinates returns INVALID_PARAMETER.

Required range: 1 <= x <= 500000
sort
enum<string>

relevance requires q; -first_observed requires first_observed_since; and -last_changed requires changed_since. Every sort has a stable UUID tie-breaker.

Available options:
relevance,
name,
-name,
price,
-price,
sku,
-first_observed,
-last_changed
collapse
enum<string>
default:none

Set to family on a text search to return one representative result per reviewed family. Ungrouped products remain individual results. Inventory-scoped predicates are intentionally incompatible; retrieve the family detail to compare member availability. Collapsed search uses sort=relevance.

Available options:
none,
family
limit
integer
default:25
Required range: 1 <= x <= 100
cursor
string

Signed opaque keyset cursor, valid for 15 minutes and only with the original resource endpoint, query, and sort. Reuse on another endpoint or with changed filters returns CURSOR_QUERY_MISMATCH. Follow links.next unchanged.

Maximum string length: 2048
include
enum<string>[]

Comma-separated optional expansions. coverage_details adds pair-state accounting and requires an inventory scope or predicate on product search. facets adds query-dependent brand, category, status, and price counts after all requested filters have been applied.

Maximum array length: 2
Available options:
coverage_details,
facets

Response

Product page from one immutable publication revision.

data
object[]
required
meta
object
required