curl --request GET \
--url http://127.0.0.1:5185/v1/productsconst options = {method: 'GET'};
fetch('http://127.0.0.1:5185/v1/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://127.0.0.1:5185/v1/products"
response = requests.get(url)
print(response.text){
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_ids": {
"utah_dabs_sku": "347210"
},
"name": "<string>",
"brand": "<string>",
"brand_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"brand_slug": "<string>",
"package_size": {
"milliliters": 2,
"display": "<string>",
"normalization_state": "normalized"
},
"price": {
"amount_minor": 1,
"currency": "USD",
"display": "$19.99",
"source": "utah_dabs_workbook",
"times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
}
},
"status": {
"code": "1",
"label": "General distribution",
"lifecycle": "active",
"source_raw": "<string>"
},
"categories": [
{
"id": "<string>",
"name": "<string>"
}
],
"catalog_times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
},
"dabs_flags": {
"new_item_raw": true,
"on_spa_raw": true,
"semantics": "source_flags_unverified",
"times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
}
},
"availability_summary": {
"scope_store_count": 1,
"reported_positive_store_count": 1,
"eligible_positive_store_count": 1,
"reported_zero_store_count": 1,
"row_absent_store_count": 1,
"unchecked_store_count": 1,
"retrieved_at_min": "2023-11-07T05:31:56Z",
"retrieved_at_max": "2023-11-07T05:31:56Z",
"retrieval_policy_id": "<string>",
"meets_retrieval_policy": true,
"upstream_age_known": false,
"last_refresh_attempt": {
"attempted_at": "2023-11-07T05:31:56Z",
"status": "succeeded"
}
},
"name_components": {
"product_name": "<string>",
"expression": "<string>",
"age_statement": "<string>",
"pack_count": 2
},
"attributes": {
"vintage_year": 1999,
"proof": 120,
"package_form": "can",
"beverage_styles": [
"blanco"
],
"production_designations": [
"bottled_in_bond"
],
"certifications": [
"kosher_for_passover_mevushal"
],
"source_programs": [
"special_order"
]
}
}
],
"meta": {
"snapshot": {
"publication_revision": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"published_at": "2023-11-07T05:31:56Z",
"cursor_expires_at": "2023-11-07T05:31:56Z"
},
"page": {
"limit": 50,
"has_more": true,
"next_cursor": "<string>"
},
"coverage": {
"status": "complete_for_retrieval_policy",
"scope": {
"type": "none",
"store_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"candidate_product_count": 1,
"scope_store_count": 1,
"expected_pair_count": 1,
"checked_product_count": 1,
"within_policy_product_count": 1,
"reported_positive_pair_count": 1,
"reported_zero_pair_count": 1,
"row_absent_pair_count": 1,
"unchecked_pair_count": 1,
"retrieved_at_min": "2023-11-07T05:31:56Z",
"retrieved_at_max": "2023-11-07T05:31:56Z",
"retrieval_policy_id": "<string>",
"retrieval_policy_max_age_seconds": 2,
"upstream_age_known": false,
"denominator_definition": "candidate_products_after_non_inventory_filters_x_reviewed_stores_in_scope"
},
"warnings": [
{
"code": "INVENTORY_COVERAGE_PARTIAL",
"message": "<string>"
}
]
},
"links": {
"self": "<string>",
"next": "<string>"
}
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}Search products and browse reported inventory
Searches the published local projection. Inventory predicates can be scoped
to one or more stores, a radius, or the statewide reviewed consumer-store
set. store_ids and lat/lng are mutually exclusive. An empty result does
not imply no stock when meta.coverage.status is partial or none.
curl --request GET \
--url http://127.0.0.1:5185/v1/productsconst options = {method: 'GET'};
fetch('http://127.0.0.1:5185/v1/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://127.0.0.1:5185/v1/products"
response = requests.get(url)
print(response.text){
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_ids": {
"utah_dabs_sku": "347210"
},
"name": "<string>",
"brand": "<string>",
"brand_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"brand_slug": "<string>",
"package_size": {
"milliliters": 2,
"display": "<string>",
"normalization_state": "normalized"
},
"price": {
"amount_minor": 1,
"currency": "USD",
"display": "$19.99",
"source": "utah_dabs_workbook",
"times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
}
},
"status": {
"code": "1",
"label": "General distribution",
"lifecycle": "active",
"source_raw": "<string>"
},
"categories": [
{
"id": "<string>",
"name": "<string>"
}
],
"catalog_times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
},
"dabs_flags": {
"new_item_raw": true,
"on_spa_raw": true,
"semantics": "source_flags_unverified",
"times": {
"source_updated_at": "2023-11-07T05:31:56Z",
"retrieved_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z"
}
},
"availability_summary": {
"scope_store_count": 1,
"reported_positive_store_count": 1,
"eligible_positive_store_count": 1,
"reported_zero_store_count": 1,
"row_absent_store_count": 1,
"unchecked_store_count": 1,
"retrieved_at_min": "2023-11-07T05:31:56Z",
"retrieved_at_max": "2023-11-07T05:31:56Z",
"retrieval_policy_id": "<string>",
"meets_retrieval_policy": true,
"upstream_age_known": false,
"last_refresh_attempt": {
"attempted_at": "2023-11-07T05:31:56Z",
"status": "succeeded"
}
},
"name_components": {
"product_name": "<string>",
"expression": "<string>",
"age_statement": "<string>",
"pack_count": 2
},
"attributes": {
"vintage_year": 1999,
"proof": 120,
"package_form": "can",
"beverage_styles": [
"blanco"
],
"production_designations": [
"bottled_in_bond"
],
"certifications": [
"kosher_for_passover_mevushal"
],
"source_programs": [
"special_order"
]
}
}
],
"meta": {
"snapshot": {
"publication_revision": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"published_at": "2023-11-07T05:31:56Z",
"cursor_expires_at": "2023-11-07T05:31:56Z"
},
"page": {
"limit": 50,
"has_more": true,
"next_cursor": "<string>"
},
"coverage": {
"status": "complete_for_retrieval_policy",
"scope": {
"type": "none",
"store_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"candidate_product_count": 1,
"scope_store_count": 1,
"expected_pair_count": 1,
"checked_product_count": 1,
"within_policy_product_count": 1,
"reported_positive_pair_count": 1,
"reported_zero_pair_count": 1,
"row_absent_pair_count": 1,
"unchecked_pair_count": 1,
"retrieved_at_min": "2023-11-07T05:31:56Z",
"retrieved_at_max": "2023-11-07T05:31:56Z",
"retrieval_policy_id": "<string>",
"retrieval_policy_max_age_seconds": 2,
"upstream_age_known": false,
"denominator_definition": "candidate_products_after_non_inventory_filters_x_reviewed_stores_in_scope"
},
"warnings": [
{
"code": "INVENTORY_COVERAGE_PARTIAL",
"message": "<string>"
}
]
},
"links": {
"self": "<string>",
"next": "<string>"
}
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "<string>",
"title": "<string>",
"status": 499,
"detail": "<string>",
"instance": "<string>",
"code": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}Headers
Strong entity tag from an earlier response.
HTTP-date fallback validator. ETag takes precedence.
Query Parameters
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.
2 - 200Exact six-character Utah DABS SKU.
^[0-9]{6}$"347210"
"004190"
Comma-separated reviewed Nektir brand UUIDs; OR semantics within this filter and AND semantics with other filter groups. Unresolved products do not match.
25Comma-separated API category IDs; OR semantics. Selecting a parent category includes products assigned to any active descendant category.
20^cat_[a-z0-9_]+$Comma-separated DABS status codes; OR semantics.
101, A, D, L, N, P, S, T, U, X Inclusive minimum USD cents. Unknown prices do not match.
x >= 0Inclusive maximum USD cents. Unknown prices do not match.
x >= 0Exact match for the nullable DABS-reported newItem flag. Its duration and business meaning are unverified.
Exact match for the nullable DABS-reported onSpa flag. This is not labeled as a sale or promotion.
Reported observation predicate; never a purchase guarantee.
any, reported_positive, checked Independent policy classification for ordinary consumer purchase.
any, eligible, restricted, unavailable, unknown Whether inventory predicates require the current retrieval-age policy.
within_policy, any_age Comma-separated stable store UUIDs, mutually exclusive with coordinates.
25WGS84 latitude; must be paired with lng.
-90 <= x <= 90WGS84 longitude; must be paired with lat.
-180 <= x <= 180Radius in meters; valid only with coordinates.
1 <= x <= 500000relevance, name, -name, price, -price, sku 1 <= x <= 100Signed opaque keyset cursor, valid for 15 minutes and only with the original query.
2048