0.5.0 replaces the binary that shipped through 0.4.1. The command shape
(channel3 <resource> <command>), the binary name, and CHANNEL3_API_KEY are
unchanged — but installation moved to npm and several flags changed.
1. Reinstall
go install is gone.
2. Rename --query — the one that bites
--query still exists, but it means something entirely different: it is now a
JMESPath projection applied to the response. The search
term moved to --query-param.
--query shoes is valid JMESPath, so no search
term is sent and you get back null or a 422.
3. Flag changes
--format jsonl, --format raw, --debug, --base-url and --api-key are
unchanged. New: --dry-run, --page-all, --quiet, --schema, --spec,
csv and http output formats, auth for keyring-stored credentials, and
completion for shell completions.
4. Pagination inverted
Up to0.4.1 the CLI auto-paginated, and --max-items existed to rein it in.
0.5.0 returns a single page unless you ask for more:
--max-items defensively, you can usually just drop it
and set --limit.
--page-all emits one JSON object per page, each containing a products
array — not one object per product. To iterate products across pages, unwrap
them yourself:--page-all with --query is not recommended: the projection is
applied to each page wrapper before the output is flattened, which makes
expressions behave differently than they do on a single-page call. Project
with --query on single-page calls, and use jq when paginating.5. Translate your projections
--transform used GJSON; --query uses JMESPath.
Two rules cover most cases:
.#. becomes [], and JMESPath has no shorthand
for {id} — every key needs name: path.
Note that projections now start at the response wrapper (products[],
brands[], categories[]), because --query applies to the whole response
before --format jsonl flattens it.
6. Commands that moved
New in 0.5.0:
products browse, products monetize, reporting list-clicks,
reporting list-transactions, and conversations with its client-tokens
sub-resource.