Skip to content

JMESPath Filtering

All 37 tools support an optional filter parameter that accepts a JMESPath expression. Filtering is applied before format conversion, making it composable with any output_format.

  1. The tool fetches data from the Bitbucket API
  2. The JMESPath expression in filter is applied to transform the raw response JSON
  3. The transformed result is then formatted according to output_format

This means you can chain filter and output_format freely.

JMESPath operates on JSON structures. Common patterns:

ExpressionDescription
values[]Iterate over a values array
values[].titleExtract the title field from each item
values[].{a: fieldA, b: fieldB}Project multiple fields into a new object
values[?state=='OPEN']Filter items where state equals OPEN
length(values)Count items in the array
bb_get_pull_requests workspace=myworkspace repo_slug=myrepo \
filter="values[].{title: title, author: author.display_name}"
bb_get_pull_requests workspace=myworkspace repo_slug=myrepo \
filter="values[?state=='OPEN']"
bb_list_repositories workspace=myworkspace \
filter="values[].full_name"

Get only PR IDs, titles, and states in compact format:

bb_get_pull_requests workspace=myworkspace repo_slug=myrepo \
output_format=toon \
filter="values[].{id: id, title: title, state: state}"
bb_get_pull_requests workspace=myworkspace repo_slug=myrepo \
output_format=json \
filter="values[?state=='OPEN']"