list_retailers
list_retailers MCP tool: the retailers AI engines send buyers to on an e-commerce project, and how often the brand is cited alongside each one. Inputs, response shape, JSON example.
Updated 2026-10-07
list_retailers lists the retailers AI engines point buyers to on an e-commerce project: marketplaces, resellers, department stores. For each one, it tells you how often the brand is also cited when that retailer comes up, against the brand's average.
It is the Retailers page of the dashboard, in JSON. A retailer is a name the AI sorted as a store, not a rival brand (verdict RETAILER), and that nobody rejected. Retailers never count as competitors.
When to use
Call it on a project with e-commerce mode on (see update_project_settings) to answer "where does ChatGPT tell people to buy, and am I there?". A retailer cited often with a low brandRate is a store where the AI sends buyers to other brands: the place to get listed, or to improve your product page. On a project without e-commerce mode, the list is empty.
Input
| Field | Type | Default | Description |
|---|---|---|---|
projectId |
string (CUID) | required | Project to query. |
filters.dateRange |
{ from?, to? } (ISO date or datetime) |
all time | Answers of this period only. |
filters.llms |
array of LLM keys | project engines | Answers of these engines only. |
filters.nameContains |
string | - | Case-insensitive match on the name or an alias. |
sortBy |
responses_desc, brand_rate_asc, brand_rate_desc, name_asc |
responses_desc |
Order of the full list, before pagination. Retailers without a rate come last. |
cursor |
string | - | pageInfo.nextCursor of the previous page. |
limit |
number (1 to 100) | 20 | Page size. |
Response
{
"data": [
{
"id": "clr1...",
"name": "Amazon",
"aliases": ["amazon.fr"],
"responses": 42,
"llms": ["chatgpt", "perplexity", "google_ai_mode"],
"brandRate": 31,
"brandWithRetailer": 13,
"gap": -9
},
{
"id": "clr2...",
"name": "Decathlon",
"aliases": [],
"responses": 17,
"llms": ["chatgpt", "gemini"],
"brandRate": 65,
"brandWithRetailer": 11,
"gap": 25
}
],
"pageInfo": { "hasMore": false, "nextCursor": null, "totalCount": 2 },
"summary": {
"results": 210,
"brandRate": 40,
"retailerRate": 38,
"brandRateWithRetailer": 33,
"officialSiteRate": 12
}
}
Row fields:
responses: answers citing the retailer in the window.brandRate: share of those answers that also cite the brand, in percent.brandWithRetaileris the raw count.gap:brandRateminus the project's overall brand rate, in points. Negative means the brand is weaker when this retailer shows up.
Summary fields, all in percent of the window's answers except results: brandRate (answers citing the brand), retailerRate (answers citing at least one retailer), brandRateWithRetailer (brand rate among those), officialSiteRate (answers citing the brand's own site).
Tips and patterns
- Sort by
brand_rate_ascto get the stores where engines recommend other brands first. - Compare
officialSiteRatewithretailerRate: when retailers are cited far more than your own site, engines send buyers to stores, so your listings there matter as much as your site. - Open a row with
get_retailerto see the cited pages: your product page, a competitor's, or a generic category. - A store sorted as a competitor by mistake, or the reverse: fix it with
bulk_update_competitor_status(kind: RETAILERorCOMPETITOR, orstatus: REJECTEDto hide it).
Related tools
get_retailer: detail of one retailerlist_competitors: rival brands, and every verdict withfilters.verdictbulk_update_competitor_status: reclassify or reject a retailerupdate_project_settings: turn e-commerce mode on