---
title: "Views"
description: "Save filters over your mentions, switch between them on the Mentions page, and read or export one through the API."
canonical: https://docs.mentio.dev/guides/views
markdown: https://docs.mentio.dev/guides/views.mdx
---

# Views

Save filters over your mentions, switch between them on the Mentions page, and read or export one through the API.

A view is a named filter over your mentions, like "Negative about us" or "Needs a reply". Save one for any list you open often.

## How a view works [#how-a-view-works]

The Mentions page switches between views. The API reads one when you pass its id as `viewId` to the list or the export.

A view selects whatever matches its filter at the moment it is read. "Negative about us" is whatever is negative on a brand keyword today.

## On the Mentions page [#on-the-mentions-page]

The switcher at the left of the toolbar lists your views. A view is the base of the list and the filter chips narrow it further, as `viewId` and the other parameters combine in the API.

* **Create view** saves the filters you have set under a name.
* **Manage** renames, describes, refilters (from the chips on the page) or deletes the active view.

## Write the filter [#write-the-filter]

A view's `filter` takes the same fields as `GET /v1/mentions`, as JSON. An empty filter is every mention.

| Fields                                                                                | What they select                                                                    |
| ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `keywordIds`, `keywordKinds` (brand, competitor, topic), `groupIds`                   | The keyword, its kind or its [group](/guides/groups)                                |
| `platforms`, `kind` (`post`, `comment`, `repository`), `isReply`, `ratings`           | Where and what the post is                                                          |
| `status`, `relevant`, `minRelevance`, `minConfidence`                                 | Inbox status and the classifier's verdict                                           |
| `sentiments`, `emotions`, `intents`, `languages`                                      | What the post says                                                                  |
| `countries`                                                                           | Where the author is, lowercase ISO 3166-1 alpha-2 codes                             |
| `tags`, `minFollowers`, `maxFollowers`, `automated`, `organization`, `excludeAuthors` | The author: tags, reach, bots, companies (`organization: true`) or people (`false`) |
| `labels`                                                                              | Your [labels](/guides/labels) on the mention                                        |
| `minLikes`, `minReposts`, `minReplies`, `minQuotes`, `minViews`, `minBookmarks`       | Engagement minimums                                                                 |
| `linkHosts`, `q`                                                                      | Links in the post and free text                                                     |

How conditions combine:

* Lists are any-of.
* The `not` twins (`notPlatforms`, `notSentiments`, `notEmotions`, `notIntents`, `notKeywordIds`, `notLanguages`, `notCountries`, `notTags`, `notLabels`, `notLinkHosts`, `notRatings`) are none-of.
* Every condition is ANDed.
* For OR, `anyOf` holds groups of conditions and keeps a mention when at least one group holds ([OR across groups](/conventions#or-across-groups-anyof)). The dashboard shows a view's groups and keeps them when you edit the rest.

A view has no time window and no inbox state (person, assignee, snoozed): those belong to whoever reads it.

```bash
curl -X POST https://api.mentio.dev/v1/views \
  -H "Authorization: Bearer $MENTIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Negative about us",
    "description": "Answer these today.",
    "filter": { "keywordKinds": ["brand"], "sentiments": ["negative"], "relevant": true }
  }'
```

## Read a view [#read-a-view]

Pass the id as `viewId`. The view's filter is ANDed with any other filter on the request, so `viewId` plus `range` or `from` reads the view for one window.

The same parameter on `GET /v1/mentions/export.csv` (or `export.json`) exports it.

```bash
curl "https://api.mentio.dev/v1/mentions?viewId=vw_...&from=2026-09-01" \
  -H "Authorization: Bearer $MENTIO_API_KEY"
```

## Turn a view into an alert [#turn-a-view-into-an-alert]

A view is what you look at; an alert is what gets sent. They share the filter vocabulary.

* Turning a view into an alert rule is one `POST /v1/alerts` with the same filter.
* An alert rule's filter can be read the same way, with `alertId`.

## Related [#related]

* [Create a view](/api/views/create-view): the endpoint reference.
* [Search mentions](/api/mentions/search-mentions): every filter field.
* [Alerts](/alerts): send matching mentions to a channel.
* [Exports](/guides/exports): download a view as CSV or JSON.
