Skip to main content
POST
/
v1
/
search
Python
import os
from channel3_sdk import Channel3

client = Channel3(
    api_key=os.environ.get("CHANNEL3_API_KEY"),  # This is the default and can be omitted
)
page = client.products.search()
page = page.products[0]
print(page.id)
import Channel3 from '@channel3/sdk';

const client = new Channel3({
  apiKey: process.env['CHANNEL3_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const productDetail of client.products.search()) {
  console.log(productDetail.id);
}
curl --request POST \
  --url https://api.trychannel3.com/v1/search \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "query": "<string>",
  "image_url": "<string>",
  "base64_image": "<string>",
  "limit": 20,
  "filters": {},
  "config": {
    "mode": "default",
    "keyword_search_only": false
  },
  "page_token": "<string>"
}
'
{ "products": [ { "id": "<string>", "title": "<string>", "description": "<string>", "brands": [ { "id": "<string>", "name": "<string>" } ], "images": [], "categories": [ "<string>" ], "category": { "slug": "<string>", "title": "<string>", "has_children": true, "path": [ { "slug": "<string>", "title": "<string>" } ] }, "materials": [ "<string>" ], "key_features": [ "<string>" ], "offers": [ { "url": "<string>", "domain": "<string>", "price": { "price": 123, "currency": "<string>", "compare_at_price": 123 }, "max_commission_rate": 0, "dimensions": { "length": { "number": 123 }, "width": { "number": 123 }, "height": { "number": 123 }, "weight": { "number": 123 } } } ], "variants": { "options": [ { "name": "<string>", "values": [ { "label": "<string>", "exists": true, "thumbnail_url": "<string>", "product_id": "<string>" } ] } ], "selected": [ { "name": "<string>", "label": "<string>" } ] }, "structured_attributes": {} } ], "next_page_token": "<string>" }

Authorizations

x-api-key
string
header
required

Body

application/json

Search request with pagination support.

query
string | null

Search query. At least one of query, image_url, base64_image, or page_token must be provided.

image_url
string | null

Image URL. At least one of query, image_url, base64_image, or page_token must be provided.

base64_image
string | null

Base64 encoded image. At least one of query, image_url, base64_image, or page_token must be provided.

limit
integer | null
default:20

Optional limit on the number of results. Default is 20, max is 30.

Required range: x >= 1
filters
SearchFilters · object

Optional filters. Search will only consider products that match all of the filters.

config
SearchConfig · object

Optional configuration

page_token
string | null

Opaque token from a previous search response to fetch the next page of results.

Response

Successful Response

v1 paginated search response.

products
Product · object[]
required
next_page_token
string | null

Token to fetch the next page. Null when no more results.