Skip to main content
The API is unchanged in this release. Every change below is in the SDKs, which are now generated by Fern. @channel3/sdk@4.0.0 is released. The Python SDK is in prerelease — pip install channel3-sdk still resolves to 3.5.0; reach the preview with pip install channel3-sdk==4.0.0b2. Newly available in the SDKs Breaking: removed methods. The methods deprecated in 3.5.x are gone. Use products.search instead of search.perform, brands.search instead of brands.find, products.lookup instead of enrich.enrichURL / enrich_url, websites.retrieve instead of websites.find, and retrieveHistory / retrieve_history instead of getHistory / get_history. The search and enrich resources no longer exist Breaking (TypeScript)
  • The default export is gone — import { Channel3 } from "@channel3/sdk"
  • ProductDetail is now Product, and the variant types are top-level: VariantOption, OptionValue, SelectedOption. PriceHistory is now PriceHistoryResponse, kept as a deprecated alias until 5.0
  • Pagination returns an iterable you must await first: const page = await client.products.search({ query }); for await (const product of page) { ... }
  • Client options renamed — baseURLbaseUrl, timeouttimeoutInSeconds, defaultHeadersheaders, defaultQueryqueryParams, logLevel / loggerlogging. fetchOptions has no equivalent
Breaking (Python)
  • The base exception is ApiError, not Channel3Error. AuthenticationError is now UnauthorizedError; status_code is still on the exception
  • The four per-call options (extra_headers, extra_query, extra_body, timeout) are replaced by a single request_options
  • Renamed models: ProductDetailProduct, PriceHistoryPriceHistoryResponse, SubscriptionSubscriptionResponse, VariantsOptionVariantOption, VariantsOptionValueOptionValue, VariantsSelectedSelectedOption. No compatibility aliases ship — rename at the import site
  • search_by_image(base64_image=...) is now base64image — a generator casing limitation, not a deliberate rename. The wire field and the TypeScript spelling are unchanged
  • NOT_GIVEN, NotGiven, Omit, Stream, AsyncStream and DefaultHttpxClient are gone. Omitting an optional argument behaves as before
Unchanged. Field names keep their snake_case spelling in both languages, client construction is the same, and the CHANNEL3_* locale environment variables still work.