---
title: "Mute authors on an alert"
method: POST
path: "/v1/alerts/{id}/mute"
tags: ["Alerts"]
---

# Mute authors on an alert

`POST /v1/alerts/{id}/mute`

## Request

- Base URL: `https://api.mentio.dev`
- URL: `https://api.mentio.dev/v1/alerts/{id}/mute`
- Auth: HTTP bearer

Add authors to the alert's muted list without touching the rest of its filter. Links are read the way the dashboard reads them: a post link mutes its author, twitter.com becomes x.com, a Hacker News profile keeps its id. Authors already muted are skipped, so a retry is safe. An entry that names no person (a subreddit, a story) rejects the request with that entry named.

## Path parameters

- `id` string, required: Alert id (feed_...).

## Request body

- object: Authors to add to or remove from the alert's muted list.
  - `authors` string[], required: Profile or post links (x.com/name, linkedin.com/in/name, reddit.com/user/name, a post URL), handles (@name, u/name), Bluesky DIDs or display names. A link is stored as the author's profile; a plain name or handle matches that name on every platform.

## Response `200`

The alert, with its muted list

- Alert
  - `id` string, required: Alert id (feed_...).
  - `name` string, required
  - `enabled` boolean, required
  - `mode` 'instant' | 'hourly' | 'daily' | 'weekly', required: instant: each matching mention as it happens. hourly: one digest each UTC hour (five minutes past, so the last mentions of the hour are scored) covering the previous full hour, nothing when that hour has no mention at or over the rule's relevance floor; Slack, Telegram and webhook channels only. daily: one digest at the scheduled local time. weekly: one digest a week, on schedule.weekday.
  - `filter` object, required
    - `keywordIds` string[]: Only these keywords.
    - `groupIds` string[]: Only keywords in these groups (grp_...): one rule per customer, say.
    - `platforms` string[]: Only posts from these platforms.
    - `minRelevance` integer: The rule's relevance floor. Absent, it sends relevant mentions only (scored 40 and up, the classifier's line); lower, down to 0, it also receives the matches the classifier scored as noise; higher, it hears less. Email channels keep the 40 line whatever the rule says. Unclassified mentions never pass.
    - `minConfidence` number: Only mentions whose classifier confidence is at least this, 0 to 1. A mention without a confidence never passes.
    - `sentiments` string[]: Only these sentiments.
    - `intents` string[]: At least one of these intent or topic tags.
    - `excludeAuthors` string[]: Never these authors: display names, handles or profile URLs.
    - `minFollowers` integer: Only authors with at least this many followers. Unknown reach never passes.
    - `tags` string[]: Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.
    - `linkHosts` string[]: Only posts linking to any of these hosts, the host itself or a subdomain of it (octolens.com also matches blog.octolens.com). A post with no links never passes.
    - `languages` string[]: Only posts in any of these languages (ISO 639-1: en, es, de). A post whose language is unknown never passes.
    - `countries` string[]: Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). A post whose country is unknown never passes.
    - `notCountries` string[]: Never posts whose author is in these countries: ["in"]. A post whose country is unknown still passes.
    - `automated` boolean: true: only posts that read as machine-made (bots, templated posts); false: only the rest. Omit for both.
    - `organization` boolean: true: only posts by companies, brands and organizations; false: only posts by people. Omit for both.
    - `ratings` integer[]: Only app store reviews with any of these star ratings (1 to 5): [1, 2] sends the unhappy ones. Every other post fails it.
    - `notRatings` integer[]: Never reviews with these star ratings (1 to 5): [5] keeps the five star reviews out. Posts that are not reviews still pass.
    - `minLikes` integer: Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.
    - `minReposts` integer: Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.
    - `minReplies` integer: Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.
    - `minQuotes` integer: Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.
    - `minViews` integer: Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.
    - `minBookmarks` integer: Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.
    - `anyOf` FilterGroup[]: OR across groups: a mention passes when it meets every condition of at least one group (1 to 10 groups). The other conditions still apply to every mention: the whole filter is (other conditions) AND (group 1 OR group 2 ...). A group takes the conditions of a view filter (platforms, sentiments, intents, keywordKinds, the not lists ...), with no anyOf of its own.
      - `q` string: Substring in the post text or the author's name.
      - `keywordIds` string[]: Only matches of any of these keywords.
      - `notKeywordIds` string[]: Never matches of these keywords.
      - `keywordKinds` string[]: Only matches of keywords of any of these kinds: brand, competitor, topic.
      - `groupIds` string[]: Only matches of keywords in any of these groups (grp_...).
      - `notGroupIds` string[]: Never matches of keywords in these groups.
      - `platforms` string[]: Only posts from any of these platforms.
      - `notPlatforms` string[]: Never posts from these platforms.
      - `status` 'open' | 'ignored' | 'done': Only mentions in this status: open, ignored, done.
      - `relevant` boolean: true: only mentions the classifier scored relevant; false: only the rest.
      - `minRelevance` integer: Only mentions scored at least this.
      - `minConfidence` number: Only mentions whose classifier confidence is at least this.
      - `sentiments` string[]: Only these sentiments.
      - `notSentiments` string[]: Never these sentiments; an unscored mention still passes.
      - `intents` string[]: Only mentions carrying any of these intent or topic tags.
      - `notIntents` string[]: Never mentions carrying these tags.
      - `automated` boolean: true: only posts that read as machine-made; false: only the rest.
      - `languages` string[]: Only posts in any of these languages (ISO 639-1).
      - `notLanguages` string[]: Never posts in these languages; an unknown language still passes.
      - `countries` string[]: Only posts whose author is in any of these countries (ISO 3166-1 alpha-2: us, in, de). An unknown country never passes.
      - `notCountries` string[]: Never posts whose author is in these countries; an unknown country still passes.
      - `organization` boolean: true: only posts by companies, brands and organizations; false: only posts by people.
      - `tags` string[]: Only authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.
      - `notTags` string[]: Never authors tagged with any of these, in the workspace's tags or those of the mention's own keyword group.
      - `linkHosts` string[]: Only posts linking to any of these hosts, the host itself or a subdomain of it.
      - `notLinkHosts` string[]: Never posts linking to these hosts.
      - `subreddits` string[]: Only Reddit posts from any of these subreddits (names without the r/, any case); every other post fails it.
      - `notSubreddits` string[]: Never Reddit posts from these subreddits; posts from other platforms still pass.
      - `minFollowers` integer: Only authors with at least this many followers; unknown reach never passes.
      - `maxFollowers` integer: Only authors with at most this many followers; unknown reach never passes.
      - `isReply` boolean: true: only replies and comments; false: only top-level posts.
      - `kind` 'post' | 'comment' | 'repository': Only posts (post), only comments (comment) or only GitHub repository events (repository).
      - `excludeAuthors` string[]: Never these authors: display names, handles or profile URLs.
      - `ratings` integer[]: Only app store reviews with any of these star ratings; every other post fails it.
      - `notRatings` integer[]: Never reviews with these star ratings; posts that are not reviews still pass.
      - `minLikes` integer: Only posts with at least this many likes (upvotes, reactions), as the platform reported them when the post was found. A post without that count never passes.
      - `minReposts` integer: Only posts with at least this many reposts (shares, retweets), as the platform reported them when the post was found. A post without that count never passes.
      - `minReplies` integer: Only posts with at least this many replies (comments), as the platform reported them when the post was found. A post without that count never passes.
      - `minQuotes` integer: Only posts with at least this many quotes, as the platform reported them when the post was found. A post without that count never passes.
      - `minViews` integer: Only posts with at least this many views (plays), as the platform reported them when the post was found. A post without that count never passes.
      - `minBookmarks` integer: Only posts with at least this many bookmarks (saves), as the platform reported them when the post was found. A post without that count never passes.
  - `schedule` object, nullable, required: Daily and weekly alerts only; null for instant and hourly ones.
    - `hour` integer, required
    - `minute` integer
    - `timezone` string, required
    - `skipEmpty` boolean
    - `weekday` integer: Weekly rules: the day it sends, 0 Sunday to 6 Saturday. Required for mode weekly; ignored on daily rules.
  - `event` string, required: Event name carried in webhook payloads; the mode default unless you set one.
  - `channels` object[], required: Where it sends.
    - `id` string, required
    - `kind` 'slack' | 'email' | 'webhook' | 'telegram', required
    - `label` string, required
  - `stats` object, required: Computed over this workspace's deliveries.
    - `sentLast7d` integer, required: Deliveries in the last 7 days, across channels.
    - `lastSentAt` string, nullable, required: ISO 8601 timestamp, UTC.
    - `nextRunAt` string, nullable, required: Hourly, daily and weekly alerts: the next digest; null when disabled or instant.
  - `createdAt` string, required: ISO 8601 timestamp, UTC.

## Other responses

- `400`: An entry names no person, or the alert would mute more than 200 authors
- `401`: Missing or invalid API key
- `404`: Rule not found

---

[API](https://skmtc.dev/mentio/apis/mentio-api.md) · [All operations](https://skmtc.dev/mentio/apis/mentio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mentio/apis/mentio-api/revisions/b16a21d0ed02?raw)
