Performance table tools
- get_discovery_query_performance: Get the search queries table, with per-query metrics and previous-period values.
- get_discovery_category_performance_table: Get the categories table, with per-category metrics.
- get_discovery_product_performance_table: Get the products table, with product titles, images, and metrics.
- get_discovery_brand_performance: Get the brands table, ranked by revenue.
- get_discovery_page_performance: Get the pages table, with entrances, exits, and bounce rates.
get_discovery_query_performance
Returns the search queries table from the Performance dashboard, one row per query. Each row carries visits, browse sessions, bounce rate, product page views, add-to-cart, conversions, revenue, RPV, AOV, and CVR, and each of those values has a prev_* counterpart from the comparison period. That pairing is what turns the table into a diagnosis: a query whose sessions held steady while prev_revenue fell tells a different story than one that simply lost traffic.
Sort, filter, and page through the table the way you would in the dashboard. Set sort and sort_direction to rank rows yourself, or set filter_preset to apply one of the dashboard's preset filters. An explicit sort always wins over the preset's own default sort.
NoteThis tool replaces three retired tools. Use
filter_presetoftop_searched, or sort bybrowse_sessionsdescending, in place ofget_discovery_top_queries, andfilter_presetofno_revenuein place ofget_discovery_no_revenue_queries.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
environment | str | No | The target environment: production (default) or staging. The value is case-insensitive, and surrounding whitespace is trimmed. Staging-only accounts always resolve to staging, regardless of this value. |
account_name | str | null | No | The account name. Auto-selected when you have exactly one account. Use list_discovery_accounts to see available accounts. |
site_group_id | str | int | null | No | A site group ID (numeric) or site name. Defaults to -1 (account level). Use list_discovery_sites to discover sites. |
days | int | No | The rolling window in days, ending on the last available date. Defaults to 30. Ignored when you pass an explicit window. |
domain_key | str | null | No | The domain key for a specific site, for example 'your_domain_com'. Pass it together with view_id, or by itself for a site with no view configured (see viewId in list_discovery_sites). Omit both for account level. |
view_id | str | null | No | The view ID for a specific site, for example '472'. Pass it with domain_key. |
start_date | str | null | No | The start of a custom current period, as YYYYMMDD or YYYY-MM-DD. Pass it with end_date to override days. |
end_date | str | null | No | The end of a custom current period. Pass it with start_date. |
compare_start_date | str | null | No | The start of a custom comparison period. Pass it with compare_end_date to override the automatic comparison window. |
compare_end_date | str | null | No | The end of a custom comparison period. Pass it with compare_start_date. |
sort | str | null | No | The column to sort by, for example revenue, visits, or browse_sessions. Defaults to the report's own sort. |
sort_direction | str | No | The sort direction, asc or desc. Defaults to desc. |
search | str | null | No | A case-insensitive substring that filters the query column. |
filter_preset | str | null | No | A preset filter: no_revenue, no_search_results, or top_searched. |
page | int | No | The page number, 1-based. Defaults to 1. |
page_size | int | No | Rows per page. Defaults to 20. |
Response parameters
The tool returns a CompassResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | dict | null | The requested page of table rows. |
error | str | null | Error message if the request failed. |
environment_used | str | null | The environment actually queried: production or staging. This can differ from the environment you requested, because staging-only accounts always resolve to staging. |
The data object has the following fields:
| Field | Type | Description |
|---|---|---|
rows | list[dict] | One record per query, holding every metric plus its prev_* previous-period value. |
total_rows | int | null | The total number of rows matching the filters, across all pages. |
page | int | The page number returned. |
page_size | int | The number of rows per page. |
meta | dict | Report metadata, including the report ID and the date ranges the backend used. |
get_discovery_category_performance_table
Returns the categories table, one row per category, with the same metric set and the same prev_* previous-period values as the queries table. Use it to find which category pages carry revenue and which ones take traffic without converting it.
Two preset filters cover the common questions:
top_categoriesreturns the categories with the most browse sessions, and replaces the retiredget_discovery_top_categoriestool.lowest_convertingreturns the worst conversion rates among categories with at least 100 sessions. It replaces the retiredget_discovery_lowest_cvr_categoriestool and applies the session floor that keeps low-traffic noise out of the ranking.
For the account-wide totals behind this table, use get_discovery_category_performance.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
environment | str | No | The target environment: production (default) or staging. The value is case-insensitive, and surrounding whitespace is trimmed. Staging-only accounts always resolve to staging, regardless of this value. |
account_name | str | null | No | The account name. Auto-selected when you have exactly one account. Use list_discovery_accounts to see available accounts. |
site_group_id | str | int | null | No | A site group ID (numeric) or site name. Defaults to -1 (account level). Use list_discovery_sites to discover sites. |
days | int | No | The rolling window in days, ending on the last available date. Defaults to 30. Ignored when you pass an explicit window. |
domain_key | str | null | No | The domain key for a specific site, for example 'your_domain_com'. Pass it together with view_id, or by itself for a site with no view configured (see viewId in list_discovery_sites). Omit both for account level. |
view_id | str | null | No | The view ID for a specific site, for example '472'. Pass it with domain_key. |
start_date | str | null | No | The start of a custom current period, as YYYYMMDD or YYYY-MM-DD. Pass it with end_date to override days. |
end_date | str | null | No | The end of a custom current period. Pass it with start_date. |
compare_start_date | str | null | No | The start of a custom comparison period. Pass it with compare_end_date to override the automatic comparison window. |
compare_end_date | str | null | No | The end of a custom comparison period. Pass it with compare_start_date. |
sort | str | null | No | The column to sort by, for example revenue, browse_sessions, or conversion_rate. Defaults to the report's own sort. |
sort_direction | str | No | The sort direction, asc or desc. Defaults to desc. |
search | str | null | No | A case-insensitive substring that filters the category column. |
filter_preset | str | null | No | A preset filter: top_categories or lowest_converting. |
page | int | No | The page number, 1-based. Defaults to 1. |
page_size | int | No | Rows per page. Defaults to 20. |
Response parameters
The tool returns a CompassResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | dict | null | The requested page of table rows. |
error | str | null | Error message if the request failed. |
environment_used | str | null | The environment actually queried: production or staging. This can differ from the environment you requested, because staging-only accounts always resolve to staging. |
The data object has the following fields:
| Field | Type | Description |
|---|---|---|
rows | list[dict] | One record per category, holding every metric plus its prev_* previous-period value. |
total_rows | int | null | The total number of rows matching the filters, across all pages. |
page | int | The page number returned. |
page_size | int | The number of rows per page. |
meta | dict | Report metadata, including the report ID and the date ranges the backend used. |
get_discovery_product_performance_table
Returns the products table, one row per product. Alongside visits, product page views, add-to-cart, conversions, revenue, RPV, AOV, ATC rate, and CVR, each row carries the product title, image URL, product URL, and brand, so the results are ready to show to a merchandiser without a second lookup. Every metric has its prev_* previous-period value.
Rows sort by revenue descending by default, which makes an unfiltered call the top-performing products view. That replaces the retired get_discovery_top_performing_products tool, and filter_preset of top_products narrows it further to products with revenue above zero. Take a product ID from a row into create_ranking_rule to boost it, or into get_discovery_product_performance for that product's own metrics.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
environment | str | No | The target environment: production (default) or staging. The value is case-insensitive, and surrounding whitespace is trimmed. Staging-only accounts always resolve to staging, regardless of this value. |
account_name | str | null | No | The account name. Auto-selected when you have exactly one account. Use list_discovery_accounts to see available accounts. |
site_group_id | str | int | null | No | A site group ID (numeric) or site name. Defaults to -1 (account level). Use list_discovery_sites to discover sites. |
days | int | No | The rolling window in days, ending on the last available date. Defaults to 30. Ignored when you pass an explicit window. |
domain_key | str | null | No | The domain key for a specific site, for example 'your_domain_com'. Pass it together with view_id, or by itself for a site with no view configured (see viewId in list_discovery_sites). Omit both for account level. |
view_id | str | null | No | The view ID for a specific site, for example '472'. Pass it with domain_key. |
start_date | str | null | No | The start of a custom current period, as YYYYMMDD or YYYY-MM-DD. Pass it with end_date to override days. |
end_date | str | null | No | The end of a custom current period. Pass it with start_date. |
compare_start_date | str | null | No | The start of a custom comparison period. Pass it with compare_end_date to override the automatic comparison window. |
compare_end_date | str | null | No | The end of a custom comparison period. Pass it with compare_start_date. |
sort | str | null | No | The column to sort by, for example revenue or visits. Defaults to revenue descending. |
sort_direction | str | No | The sort direction, asc or desc. Defaults to desc. |
search | str | null | No | A case-insensitive substring that filters the product title. |
filter_preset | str | null | No | A preset filter: top_products, which keeps products with revenue above zero and sorts by revenue descending. |
page | int | No | The page number, 1-based. Defaults to 1. |
page_size | int | No | Rows per page. Defaults to 20. |
Response parameters
The tool returns a CompassResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | dict | null | The requested page of table rows. |
error | str | null | Error message if the request failed. |
environment_used | str | null | The environment actually queried: production or staging. This can differ from the environment you requested, because staging-only accounts always resolve to staging. |
The data object has the following fields:
| Field | Type | Description |
|---|---|---|
rows | list[dict] | One record per product, holding product_title, image_url, product_url, and brand, plus every metric and its prev_* value. |
total_rows | int | null | The total number of rows matching the filters, across all pages. |
page | int | The page number returned. |
page_size | int | The number of rows per page. |
meta | dict | Report metadata, including the report ID and the date ranges the backend used. |
get_discovery_brand_performance
Returns the brands table, one row per brand, with visits, product page views, add-to-cart, conversions, revenue, RPV, AOV, ATC rate, and CVR, each paired with its prev_* previous-period value. Rows sort by revenue descending by default.
Brand-level numbers are the ones vendor conversations run on, and they also point at attribute boosts worth trying. If a brand's revenue is climbing while its visits are flat, boosting it with attribute_boost_bury on a ranking rule is a reasonable next step. This table takes no filter_preset parameter, so shape the view with sort, sort_direction, and search.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
environment | str | No | The target environment: production (default) or staging. The value is case-insensitive, and surrounding whitespace is trimmed. Staging-only accounts always resolve to staging, regardless of this value. |
account_name | str | null | No | The account name. Auto-selected when you have exactly one account. Use list_discovery_accounts to see available accounts. |
site_group_id | str | int | null | No | A site group ID (numeric) or site name. Defaults to -1 (account level). Use list_discovery_sites to discover sites. |
days | int | No | The rolling window in days, ending on the last available date. Defaults to 30. Ignored when you pass an explicit window. |
domain_key | str | null | No | The domain key for a specific site, for example 'your_domain_com'. Pass it together with view_id, or by itself for a site with no view configured (see viewId in list_discovery_sites). Omit both for account level. |
view_id | str | null | No | The view ID for a specific site, for example '472'. Pass it with domain_key. |
start_date | str | null | No | The start of a custom current period, as YYYYMMDD or YYYY-MM-DD. Pass it with end_date to override days. |
end_date | str | null | No | The end of a custom current period. Pass it with start_date. |
compare_start_date | str | null | No | The start of a custom comparison period. Pass it with compare_end_date to override the automatic comparison window. |
compare_end_date | str | null | No | The end of a custom comparison period. Pass it with compare_start_date. |
sort | str | null | No | The column to sort by, for example revenue or visits. Defaults to revenue descending. |
sort_direction | str | No | The sort direction, asc or desc. Defaults to desc. |
search | str | null | No | A case-insensitive substring that filters the brand column. |
page | int | No | The page number, 1-based. Defaults to 1. |
page_size | int | No | Rows per page. Defaults to 20. |
Response parameters
The tool returns a CompassResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | dict | null | The requested page of table rows. |
error | str | null | Error message if the request failed. |
environment_used | str | null | The environment actually queried: production or staging. This can differ from the environment you requested, because staging-only accounts always resolve to staging. |
The data object has the following fields:
| Field | Type | Description |
|---|---|---|
rows | list[dict] | One record per brand, holding every metric plus its prev_* previous-period value. |
total_rows | int | null | The total number of rows matching the filters, across all pages. |
page | int | The page number returned. |
page_size | int | The number of rows per page. |
meta | dict | Report metadata, including the report ID and the date ranges the backend used. |
get_discovery_page_performance
Returns the pages table, one row per page URL, with visits, entrances, exits, bounces, bounce rate, and exit rate, each paired with its prev_* previous-period value. Rows sort by visits descending by default. Use search to narrow the table to a URL pattern, such as a single category branch or a landing page campaign.
This is the only table tool that accepts device_type. Set it to desktop, mobile, or tablet to reproduce the dashboard's device tabs, which filters both the rows and total_rows. A page with a healthy desktop exit rate and a poor mobile one is usually a layout problem rather than a merchandising one.
Request parameters
| Name | Type | Required? | Description |
|---|---|---|---|
environment | str | No | The target environment: production (default) or staging. The value is case-insensitive, and surrounding whitespace is trimmed. Staging-only accounts always resolve to staging, regardless of this value. |
account_name | str | null | No | The account name. Auto-selected when you have exactly one account. Use list_discovery_accounts to see available accounts. |
site_group_id | str | int | null | No | A site group ID (numeric) or site name. Defaults to -1 (account level). Use list_discovery_sites to discover sites. |
days | int | No | The rolling window in days, ending on the last available date. Defaults to 30. Ignored when you pass an explicit window. |
domain_key | str | null | No | The domain key for a specific site, for example 'your_domain_com'. Pass it together with view_id, or by itself for a site with no view configured (see viewId in list_discovery_sites). Omit both for account level. |
view_id | str | null | No | The view ID for a specific site, for example '472'. Pass it with domain_key. |
start_date | str | null | No | The start of a custom current period, as YYYYMMDD or YYYY-MM-DD. Pass it with end_date to override days. |
end_date | str | null | No | The end of a custom current period. Pass it with start_date. |
compare_start_date | str | null | No | The start of a custom comparison period. Pass it with compare_end_date to override the automatic comparison window. |
compare_end_date | str | null | No | The end of a custom comparison period. Pass it with compare_start_date. |
sort | str | null | No | The column to sort by, for example visits or exit_rate. Defaults to visits descending. |
sort_direction | str | No | The sort direction, asc or desc. Defaults to desc. |
search | str | null | No | A case-insensitive substring that filters the page URL. |
device_type | str | null | No | Restrict the table to one device: desktop, mobile, or tablet. Applies to the rows and to total_rows. |
page | int | No | The page number, 1-based. Defaults to 1. |
page_size | int | No | Rows per page. Defaults to 20. |
Response parameters
The tool returns a CompassResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | dict | null | The requested page of table rows. |
error | str | null | Error message if the request failed. |
environment_used | str | null | The environment actually queried: production or staging. This can differ from the environment you requested, because staging-only accounts always resolve to staging. |
The data object has the following fields:
| Field | Type | Description |
|---|---|---|
rows | list[dict] | One record per page URL, holding every metric plus its prev_* previous-period value. |
total_rows | int | null | The total number of rows matching the filters, across all pages. |
page | int | The page number returned. |
page_size | int | The number of rows per page. |
meta | dict | Report metadata, including the report ID and the date ranges the backend used. |
Updated 19 days ago

