Skip to main content
The price filter on POST /v1/search accepts a min_price and/or max_price in the currency of the request (default: USD). Either bound is optional — set only one to create an open-ended range.
A product passes the price filter if any of its offers falls within the range — not every offer has to match. Search results still return all offers for each product, so you may see prices above max_price or below min_price alongside an offer that qualified. To show only in-range prices in your UI, filter product.offers client-side.

Basic price range

import Channel3 from "@channel3/sdk";

const client = new Channel3();

const results = await client.products.search({
  query: "running shoes",
  filters: {
    price: { min_price: 50, max_price: 150 },
  },
});
from channel3_sdk import Channel3

client = Channel3()

results = client.products.search(
    query="running shoes",
    filters={
        "price": {"min_price": 50, "max_price": 150},
    },
)
curl -X POST https://api.trychannel3.com/v1/search \
  -H "x-api-key: $CHANNEL3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "running shoes",
    "filters": { "price": { "min_price": 50, "max_price": 150 } }
  }'

Under a price ceiling

Set only max_price to find products below a given price.
const results = await client.products.search({
  query: "office chair",
  filters: {
    price: { max_price: 200 },
  },
});
results = client.products.search(
    query="office chair",
    filters={"price": {"max_price": 200}},
)

Currency

Pass a currency parameter alongside the price filter to search in a non-USD currency. Prices in the response will be returned in the same currency.
const results = await client.products.search({
  query: "leather sofa",
  currency: "GBP",
  filters: {
    price: { max_price: 800 },
  },
});
results = client.products.search(
    query="leather sofa",
    currency="GBP",
    filters={"price": {"max_price": 800}},
)

Combining with other filters

Price filters compose freely with all other filters.
TypeScript
const results = await client.products.search({
  query: "sneakers",
  filters: {
    price:        { min_price: 80, max_price: 200 },
    brand_ids:    ["brand_nike"],
    availability: ["InStock"],
  },
});