# ads_list_portfolios (https://sellersheetai.com/docs/mcp-api/tools/ads_list_portfolios)

> List portfolios (group campaigns across Sponsored Products, Brands and Display for shared budget caps and reporting).

Access: **READ** · toolset amazon_ads · family ads.portfolios

To create or change one use ads_create_portfolio / ads_update_portfolio. Amazon Ads API · ListPortfolios · POST /portfolios/list Docs: https://advertising.amazon.com/API/docs/en-us/reference/portfolios#tag/Portfolios/operation/ListPortfolios

## Call it

MCP tool call:

```json
{
  "name": "ads_list_portfolios",
  "arguments": {
    "store": "myStore-US",
    "countryCode": "<countryCode>"
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/ads_list_portfolios \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","countryCode":"<countryCode>"}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `store` | string | yes | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
| `countryCode` | string | yes | the Ads profile's 2-letter country code (e.g. 'US'). |
| `body` | object |  | dict of filters or omit for all. Filters use {"include": [...]} form, e.g.: {"stateFilter": {"include": ["ENABLED"]}, "portfolioIdFilter": {"include": ["123", "456"]}, "nameFilter": {"include": ["My Portfolio"]}} |

## Result

- Amazon's payload in data.result.
- `data.result.portfolios` — [{portfolioId, name, state, budget, inBudget}].
- `data.result.nextToken` — present when more remain — call again with the same filters plus {"nextToken": "<that token>"}; one call returns one page.