Skip to main content
A collection is a catalog you curate yourself — brands, websites, categories, and specific products you pick. Create it once, then search, browse, and chat inside it by passing config.collection_id. Creating and managing collections is free.

What’s in a collection

Each collection is made of one or more clauses. Inside a clause, fill in any of:
  • Any of these brands (brand_ids)
  • Any of these websites (website_ids)
  • Any of these categories (category_ids)
  • Any of these products (product_ids)
Let’s walk through an example. You want Nike running shoes. That’s one clause: Nike under brands, running shoes under categories.
Search inside that collection and you’ll only get Nike products in running shoes — not all Nike, and not running shoes from other brands.
Want REI too? Adding a clause and adding to a clause give different results.

Add a clause

Nike running shoes or anything from REI.

Add to the clause

Only Nike running shoes, and only from REI.
Filters on a later search can only narrow what’s already in the collection — they can’t widen it. In the Nike running shoes collection:
A collection can have up to 100 clauses, 100 IDs in each list per clause, and 500 product_ids in total.
For websites, you can pass a merchant ID or a domain like nike.com. You can create an empty collection (clauses: []) and add clauses later. Optional user_id ties the collection to one of your users. If a later search uses this collection and you don’t send x-user-id, Channel3 attributes clicks to that user.

Search, browse, image search, and similar

Pass the ID on config.collection_id.
The same config.collection_id field works on POST /v1/image-search, POST /v1/similar, and POST /experimental/find-products-in-image. A 404 means that ID doesn’t exist. /v1/lookup doesn’t take a collection.

List collections

List is paginated. Pass user_id to see one user’s collections.

Get a collection

Fetch one collection by ID. The response includes name, description, user_id, and every clause.
A 404 means that ID doesn’t exist.

Update a collection

PATCH can replace a clause in place by clause_id, remove one, or add another clause.