---
title: "Get a mention"
method: GET
path: "/v1/mentions/{id}"
tags: ["Mentions"]
---

# Get a mention

`GET /v1/mentions/{id}`

## Request

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

One mention by id, as it appears in the list: the post, its author with reach and your tags, the classification, the priority score and the triage fields. Ids belong to your organization; any other id is a 404.

## Path parameters

- `id` string, required: Mention id (mm_...).

## Response `200`

The mention

- Mention
  - `id` string, required: Mention id (mm_...): one post matched to one of your keywords. A post matching two keywords has two ids.
  - `status` 'open' | 'ignored' | 'done', required: open: nobody handled it yet. ignored: hidden from the feed and channels by you. done: handled.
  - `relevant` boolean, required: The classifier scored it at or above the delivery threshold (40).
  - `delivered` boolean, required: Reached at least one of your channels.
  - `priority` number, required: Attention score, one decimal, computed at read time: relevance halved, author reach on a follower ladder (unknown reach counts 8), the strongest intent (buy intent 20 down to praise 5), minus 2 per day of age floored at 20.
  - `keyword` object, required: The keyword this post matched, the group it is in, and how it matched.
    - `id` string, required: Keyword id (kw_...).
    - `term` string, required: The tracked term.
    - `group` GroupRef, required: The group the keyword belongs to.
      - `id` string, required: Group id (grp_...).
      - `name` string, required: The group's name.
      - `externalId` string, nullable, required: Your own id for the group, or null.
      - `isDefault` boolean, required: The workspace's default group, where a keyword lands when no group is named.
    - `matchedAs` 'phrase' | 'close_words', required: phrase: the post holds the term as written. close_words: it holds the term's words close together, in another order or form (kept and billed only because the classifier scored it relevant).
    - `matchedIn` 'text' | 'speech', required: text: the term is in the post itself (its text, caption, hashtags or review). speech: it is only in what is said in the video (TikTok), whose transcript follows the 🎙 mark in post.text.
  - `post` object, required
    - `platform` 'bluesky' | 'hackernews' | 'github' | 'stackoverflow' | 'devto' | 'reddit' | 'x' | 'youtube' | 'news' | 'linkedin' | 'tiktok' | 'instagram' | 'appstore' | 'googleplay' | 'trustpilot' | 'googlemaps' | 'rss', required: Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).
    - `kind` 'post' | 'comment' | 'repository', required: post: a top-level post. comment: an item that answers a post or another comment (a Reddit or Hacker News comment, an X or Bluesky reply, a Stack Overflow answer, a YouTube comment). repository: an event about a GitHub repository naming the keyword (see post.repository).
    - `url` string, required: Permalink of the post.
    - `text` string, required: Title and body, truncated to 8 KB at ingest.
    - `title` string, nullable, required: The post's own title where the platform has one: a Hacker News story, a Reddit thread, a GitHub issue or pull request, a Stack Overflow question, a DEV article, a YouTube video, a news article, a titled review. Null for platforms without titles (X, Bluesky, LinkedIn) and for posts ingested before October 2026.
    - `imageUrl` string, nullable, required: A preview image of the post, when the platform sent one with it: a YouTube thumbnail, a DEV cover, a news article's sharing image, a Bluesky link card or image. Null otherwise.
    - `subreddit` string, nullable, required: The subreddit a Reddit post was written in, without the r/ (SaaS). Null on every other platform.
    - `flair` string, nullable, required: A Reddit post's flair, when its subreddit uses them (Question, Show and Tell). Null otherwise.
    - `repository` object, nullable, required: A GitHub repository event's facts, on a mention whose kind is repository; null on every other mention. The sentence is post.title.
      - `name` string, required: The repository, owner/name.
      - `event` 'new' | 'traction' | 'stars' | 'growth' | 'top', required: What happened. new: it was created. traction: under 30 days old, it reached 10 stars. stars: it passed a star milestone. growth: it gained stars fast in a week. top: one of the most starred repositories naming the keyword, brought by a new keyword's look-back.
      - `stars` integer, required: Its stars when the event was found.
      - `weeklyStars` integer, nullable, required: Stars gained in the 7 days before the event; null when that week is not known yet.
    - `links` string[], required: Links the post carries, in the order written, at most 20. Empty for a post with none, and for posts ingested before September 2026.
    - `publishedAt` string, required: When the post was published.
    - `engagement` object, nullable, required: Engagement counts as the platform reported them when the post was ingested, usually minutes after it was written; a count the platform does not have is null. Null as a whole for platforms that report none and for posts ingested before September 2026. X carries all six.
      - `likes` integer, nullable, required
      - `reposts` integer, nullable, required
      - `replies` integer, nullable, required
      - `quotes` integer, nullable, required
      - `views` integer, nullable, required
      - `bookmarks` integer, nullable, required
    - `replyTo` object, nullable, required: The post or comment this one answers; null for top-level posts.
      - `author` string, nullable, required: Parent post author as the platform names them.
      - `url` string, nullable, required: Parent post URL.
      - `text` string, nullable, required: Parent post text, when the platform gave it.
  - `parentMentionId` string, nullable, required: For a comment whose parent post or comment is itself one of your mentions: that mention's id (mm_...). Null otherwise.
  - `author` object, nullable, required: Who posted it; null when the platform gave no author at all.
    - `id` string, nullable, required: Person id (aut_...) for GET /v1/people/{id}; null when the account is not in the audience yet.
    - `name` string, nullable, required: Display name as the platform reports it.
    - `handle` string, nullable, required: Platform handle derived from the profile URL, formatted as the platform shows it (@name, u/name); null where the platform has none.
    - `url` string, nullable, required: Profile URL.
    - `avatarUrl` string, nullable, required: Profile picture; null where the platform has none.
    - `followers` integer, nullable, required: Follower count as of their newest post; null where the platform has none.
    - `tags` string[], required: Your tags on this person: the workspace's, then those the mention's own keyword group gave them (set with groupId on /v1/people), each once.
  - `review` object, nullable, required: An app store review's facts; null for every other post. Its sentiment comes from the stars (4 and 5 positive, 3 neutral, 1 and 2 negative) and it always counts as relevant, since you chose the app.
    - `rating` integer, required: Stars the reviewer gave.
    - `ratingMax` integer, required: The top of the scale: 5 on both stores.
    - `title` string, nullable, required: The review's headline; null where the store has none (Google Play).
    - `version` string, nullable, required: The app version the reviewer ran, when the store says.
    - `country` string, nullable, required: The storefront it was read in (App Store, Google Play) or the reviewer's country (Trustpilot), a lowercase two-letter code; null where the platform gives none.
    - `verified` boolean, nullable, required: The platform marks the review as verified (Trustpilot); null where the platform has no such mark.
    - `response` string, nullable, required: The developer's reply as it stood when the review was collected; null for none.
    - `responseAt` string, nullable, required: When the developer replied.
    - `app` object, required: The app reviewed.
      - `platform` 'appstore' | 'googleplay' | 'trustpilot' | 'googlemaps', required: appstore (Apple App Store), googleplay (Google Play), trustpilot (a company's Trustpilot page) or googlemaps (a place's Google reviews).
      - `id` string, required: The store's app id.
      - `url` string, required: The app's store listing.
  - `classification` object, nullable, required: The classifier verdict, as corrected by your feedback; null while the post is still queued for classification.
    - `relevance` integer, nullable, required: 0 to 100; null only when classification failed.
    - `sentiment` 'positive' | 'neutral' | 'negative', nullable, required: Classifier sentiment.
    - `intents` string[], required: Intent and topic tags: buy_intent, question, complaint, praise, comparison, churn_intent (leaving or replacing the keyword), bug_report, pricing, hiring, event, promotional, testimonial (a customer vouching for it from their own use), industry_insight (analysis or data about the field), launch (a product or feature launch announcement), feedback (a suggestion or request about it).
    - `automated` boolean, required: The post reads as machine-made: a bot or app account, a scheduled or templated post, an obvious AI-written summary. A label only: automated mentions stay in the feed, are delivered as usual and are billed like any other match. false while unjudged.
    - `language` string, nullable, required: The language the post is written in, as an ISO 639-1 code (en, es, de); null when unknown or classified before languages were recorded.
    - `country` string, nullable, required: Where the author is, as a lowercase ISO 3166-1 alpha-2 code (us, in, de): the classifier's reading of the author's profile location and the post. A best guess, not a fact the platform gave; null when nothing tells, or classified before countries were recorded.
    - `organization` boolean, required: The author is a company, brand or organization account rather than a person: a LinkedIn company page, a GitHub organization, an account that speaks for a business. A label only, like automated. false while unjudged.
    - `confidence` number, nullable, required: How sure the classifier is of its relevance verdict, 0 to 1. null when the verdict came without one: the fallback model judged, or the row was scored before confidence was recorded.
    - `uncertain` boolean, required: The verdict deserves a human look: confidence under 0.4, or the model that wrote the note disagreed with the verdict. A flag for reviewers; it never hides a mention.
    - `note` string, nullable, required: One sentence from the classifier explaining the score.
    - `failed` boolean, required: true when the model could not score this post; it stays in the feed and is not billed.
    - `feedback` object, nullable, required: A person's correction of the verdict, or null. A relevance verdict sets `relevance` to 100 or 0 and `relevant` with it; a corrected sentiment replaces `sentiment`. Every list, filter, digest and report reads the corrected values.
      - `relevant` boolean, nullable, required: Your verdict on relevance, or null when you only corrected the sentiment.
      - `sentiment` 'positive' | 'neutral' | 'negative', nullable, required: Your corrected sentiment, or null when you only judged relevance.
      - `at` string, required: When the last verdict was given.
      - `original` object, required: The classifier values your feedback replaced.
        - `relevance` integer, nullable, required: What the classifier scored before your verdict; null if it had not scored it.
        - `sentiment` 'positive' | 'neutral' | 'negative', nullable, required: The sentiment the classifier gave before your correction.
  - `triage` object, required
    - `assignee` object, nullable, required: Workspace member this mention is assigned to; null when unassigned.
      - `id` string, required
      - `name` string, nullable, required
      - `email` string, nullable, required
    - `snoozedUntil` string, nullable, required: Until when the mention stays out of the feed; null when not snoozed.
    - `note` string, nullable, required: Internal note; null when none.
  - `duplicateOf` string, nullable, required: Set on a cross-post: the id of the mention this one copies (the same author posting the same text again for the same keyword within three days, like one announcement pasted into five subreddits). A copy is billed like any mention but is listed only under its original and never alerted on its own. null for an original.
  - `duplicates` object[], required: The cross-posts filed under this mention, oldest first: where else its author posted it. Empty when there are none, and on a copy.
    - `id` string, required: The copy's mention id (mm_...).
    - `platform` 'bluesky' | 'hackernews' | 'github' | 'stackoverflow' | 'devto' | 'reddit' | 'x' | 'youtube' | 'news' | 'linkedin' | 'tiktok' | 'instagram' | 'appstore' | 'googleplay' | 'trustpilot' | 'googlemaps' | 'rss', required: Platform: bluesky, hackernews, github, stackoverflow, devto, reddit, x, youtube, news, linkedin, tiktok, instagram, appstore (App Store reviews), googleplay (Google Play reviews), trustpilot (Trustpilot reviews), googlemaps (Google reviews of a place), rss (RSS and Atom feeds a keyword reads).
    - `url` string, required: Link to the copy.
    - `publishedAt` string, required: When the copy was published.
  - `stats` object, required: Computed counts.
    - `comments` integer, required: Comments of this post delivered to you (GET /v1/mentions/{id}/comments); 0 until its thread is read, and for keywords without comments.
  - `createdAt` string, required: When the match was recorded; the default feed order.

## Other responses

- `401`: Missing or invalid API key
- `404`: Mention 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)
