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.
const results = await client.products.search({
query: "sneakers",
filters: {
price: { min_price: 80, max_price: 200 },
brand_ids: ["brand_nike"],
availability: ["InStock"],
},
});