Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-shop
string
required

Shopify store URL. Resolves the shop for the request (headless does not accept ?shop=).

Example:

"shop.myshopify.com"

Body

application/json

Request body

Live Elasticsearch facet counts for a query + applied filters.

collection

Collection id to scope aggregation. String or integer.

tree
integer

Explicit filter tree id.

query
string
default:""

Search term to aggregate against. May be empty.

applied_filters
object[]

Currently applied filter selections.

facets
object[]

Which facets to aggregate.

locale
string
default:en-US

BCP-47 locale.

market
integer

Shopify market id.

publication_ids
(string | integer)[]

Optional. Numeric Shopify publication (sales channel) ids. When present, only products published on at least one of these channels are returned and the default "published to the Online Store" gate is replaced by this filter; market and B2B filters still apply. A single id may be sent without the array wrapper. Each id must be one the merchant enabled under Settings → Sales channels; unknown ids return 400. The id is the numeric tail of gid://shopify/Publication/.

Maximum array length: 50
Pattern: ^[0-9]+$
Example:
options
object

Aggregation options.

visitor_id
string

Anonymous device/browser UID (the gl_s_uid cookie). The primary personalization key; stays stable when a customer logs in.

client_id
string

Per-session / per-device identifier.

customer_id
string

Shopify customer id. Present only when the shopper is logged in; enables customer-level personalization.

Response

Filter aggregations

Live facet counts (buckets + stats) for the current query and applied filters.

aggregations
object

Live counts keyed by filter key.

facets
object[]

Facet descriptors for the aggregated filters.

tree
object | null

Resolved tree summary, or null.

metadata
object

Response metadata.