Skip to main content
Set country, language, and currency on search and product-detail requests to return offers priced and available for a specific market. Channel3 supports locales across Europe, the UK, Canada, Australia, and more.

Per-request locale

Pass locale fields on each search call:
const results = await client.products.search({
  query: "trainers",
  country: "GB",
  language: "en",
  currency: "GBP",
});
results = client.products.search(
    query="trainers",
    country="GB",
    language="en",
    currency="GBP",
)
curl -X POST https://api.trychannel3.com/v1/search \
  -H "x-api-key: $CHANNEL3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "trainers",
    "country": "GB",
    "language": "en",
    "currency": "GBP"
  }'

Default locale on the client

Set a default once on the client and it applies to every search and product-detail call. Per-request values override the client default.
import Channel3 from "@channel3/sdk";

const client = new Channel3({
  country: "GB",
  currency: "GBP",
});

// Uses GB / GBP
await client.products.search({ query: "raincoat" });

// Override per-call
await client.products.search({
  query: "raincoat",
  config: { country: "DE", currency: "EUR" },
});
from channel3_sdk import Channel3

client = Channel3(country="GB", currency="GBP")

client.products.search(query="raincoat")

client.products.search(
    query="raincoat",
    config={"country": "DE", "currency": "EUR"},
)
You can also set defaults via environment variables: CHANNEL3_LANGUAGE, CHANNEL3_COUNTRY, CHANNEL3_CURRENCY.

Dimension units

length_unit and weight_unit choose the units product dimensions come back in. Like locale, you can set them once on the client — as constructor options or via the CHANNEL3_LENGTH_UNIT / CHANNEL3_WEIGHT_UNIT environment variables — and override them per call.
const client = new Channel3({
  lengthUnit: "cm",
  weightUnit: "kg",
});

// Dimensions come back in cm / kg
await client.products.search({ query: "coffee table" });

// Override per-call
await client.products.search({
  query: "coffee table",
  config: { length_unit: "in", weight_unit: "lb" },
});
client = Channel3(length_unit="cm", weight_unit="kg")

client.products.search(query="coffee table")

client.products.search(
    query="coffee table",
    config={"length_unit": "in", "weight_unit": "lb"},
)
On GET /v1/products/{product_id}, pass length_unit / weight_unit as query parameters instead.
Precedence for the response unit of a field: a dimension filter’s own unit wins, then the per-request config value, then the client default; when none is set, dimensions are returned in the unit the merchant stated. Length units are mm, cm, m, in, ft; weight units are mg, g, kg, oz, lb.
When only country is set, the server infers currency (e.g. GBGBP) and language (e.g. GBen). When all three are unset, defaults to en / US / USD.

Supported markets

Channel3 is expanding international coverage based on developer demand. Pass any of the values below as country, currency, or language on search and product-detail requests.

Countries

CodeMarket
USUnited States
CACanada
GBUnited Kingdom
IEIreland
AUAustralia
DEGermany
ATAustria
FRFrance
BEBelgium
ITItaly
ESSpain
NLNetherlands
SESweden
FIFinland
PTPortugal
CZCzech Republic
GRGreece
RORomania
EUEurope (pan-region; use with currency: EUR when you don’t need a single country)

Currencies

USD, CAD, AUD, GBP, EUR, SEK, CZK, RON When you set country only, the API infers currency (for example GBGBP). When all three locale fields are unset, defaults are en / US / USD.

Languages

en, de, fr, it, es, nl, sv, fi, pt, cs, el, ro
Coverage outside the U.S. is still growing. If you need a geography we don’t support yet, contact us or ask in Discord.