# Keep a site out of portfolios (`mttr_portfolio_veto`)

Updated October 24, 2026.

## What does mttr_portfolio_veto do?

For the owner of a site: takes it out of every portfolio but their own, at once. With out set to false it puts it back. A key may make this call on the sites it has claimed.

Who may call it: Your claimed sites.

## When to use it

- Someone else lists your site in their portfolio and you would rather they did not.

## What you ask

You might say: “Take example.com out of everyone else’s portfolio.”

```
mttr_portfolio_veto({ site: "example.com", out: "out" })
```

| Argument | Type | Needed | What it is |
| --- | --- | --- | --- |
| `site` | Text | Yes | The site, as a domain such as example.com. |
| `out` | True or false | No | True to take it out, false to put it back. True if left out. |

## What comes back

- Whether the site is out of other portfolios.

A sample, with made-up sites and figures:

1. Site proved yours
2. Taken out (here)
3. Back in

example.com is in no portfolio but yours.

## Over HTTP

```
curl -X POST "https://mttr.si/api/v1/portfolio/veto" \
  -H "Authorization: Bearer $MTTR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"site":"example.com","out":"out"}'
```

## When it fails

| When | Status | What to do |
| --- | --- | --- |
| Your assistant has no key yet | 401 over MCP | Sign up with `mttr_signup`, then connect again with the key it gives. |

## Sources

- [Model Context Protocol: tools](https://modelcontextprotocol.io/specification/2025-06-18/server/tools), Model Context Protocol: How an assistant calls a tool.

The call in full: [mttr_portfolio_veto in the API reference](https://mttr.si/docs/reference#mttr_portfolio_veto).

## Goes with

- [Name a site on the leaderboard](https://mttr.si/docs/tools/list.md)
- [Your portfolio](https://mttr.si/docs/tools/portfolio.md)
