Skip to main content
The brand_ids filter on POST /v1/search limits results to products from specific brands. Brand IDs are stable identifiers you resolve once via the brands API and then reuse.
What’s the difference between brands and websites?A brand makes or labels a product (Nike, Dyson). A website is the online store selling it (nike.com, bestbuy.com). Use brand_ids to filter by brand and website_ids to filter by retailer — they’re independent. One brand’s products often appear on many websites. See the Brand and Website models.

Step 1 — Resolve brand IDs

Use GET /v1/brands/search to find a brand by name and retrieve its ID.
import Channel3 from "@channel3/sdk";

const client = new Channel3();

const brands = await client.brands.search({ query: "Nike" });
const nikeId = brands.brands[0].id;
console.log(nikeId); // e.g. "brand_nike_abc123"

Step 2 — Filter search results by brand

Pass the resolved ID (or IDs) to the brand_ids filter.
const results = await client.products.search({
  query: "running shoes",
  filters: {
    brand_ids: [nikeId],
  },
});

Filtering to multiple brands

Pass multiple IDs to include products from any of the listed brands (OR logic).
TypeScript
const [nikeResult, adidasResult] = await Promise.all([
  client.brands.search({ query: "Nike" }),
  client.brands.search({ query: "Adidas" }),
]);

const results = await client.products.search({
  query: "running shoes",
  filters: {
    brand_ids: [nikeResult.brands[0].id, adidasResult.brands[0].id],
  },
});

Browsing all brands

Use GET /v1/brands to list brands or GET /v1/brands/{brand_id} to retrieve a specific brand by its ID.
// List brands (paginated)
const allBrands = await client.brands.list({ limit: 50 });

// Retrieve a specific brand
const brand = await client.brands.retrieve("brand_nike_abc123");
console.log(brand.name, brand.logo_url);