---
title: "List matched conversations"
method: GET
path: "/mentions"
tags: ["Mentions"]
---

# List matched conversations

`GET /mentions`

## Request

- Base URL: `https://ai.redreplier.com/ai-app/api/v1`
- URL: `https://ai.redreplier.com/ai-app/api/v1/mentions`
- Auth: HTTP bearer

Scored mentions across Reddit, X, Bluesky, Hacker News and Facebook, each with the matched keyword, a relevance score with its reasoning, and an AI-drafted reply.

## Query parameters

- `websiteId` string, uuid
- `statuses` MentionStatus[]
- `scoreBuckets` RelevanceBucket[]
- `includeLowRelevance` boolean
- `minScore` integer
- `keywords` string[]
- `sources` MentionSource[]
- `sort` 'RELEVANCE' | 'RECENT'
- `from` string, date-time
- `to` string, date-time
- `limit` integer
- `offset` integer

## Headers

- `X-Workspace-Id` string

## Response `200`

Mentions

- MentionListResponse
  - `mentions` Mention[], required
    - `id` string, uuid, required
    - `websiteId` string, uuid, required
    - `source` 'REDDIT_POST' | 'REDDIT_COMMENT' | 'TWITTER' | 'BLUESKY' | 'HACKERNEWS' | 'FACEBOOK' | 'FACEBOOK_GROUP', required
    - `keyword` string, nullable: The monitored keyword this conversation matched.
    - `title` string, nullable
    - `contentText` string, nullable
    - `url` string, uri, nullable: Link to the conversation. Null when the platform gives no public link, as with some Facebook and Bluesky posts.
    - `author` string, nullable
    - `subreddit` string, nullable: The subreddit on Reddit and the group id on Facebook. Null on other platforms.
    - `status` 'NEW' | 'REJECTED' | 'APPROVED', required
    - `relevanceScore` number, nullable: Higher means more likely to be worth a reply.
    - `relevanceReason` string, nullable: Why the scorer landed on that number.
    - `aiReplySuggestion` string, nullable: Draft reply for a human to review before posting.
    - `tags` string[]
    - `publishedAt` string, date-time, nullable
    - `ingestedAt` string, date-time, nullable
    - `reviewedAt` string, date-time, nullable
    - `createdAt` string, date-time, nullable
    - `updatedAt` string, date-time, nullable
  - `total` integer, required: Mentions matching the filters, before paging.
  - `limit` integer, required
  - `offset` integer, required

## Other responses

- `400`: Validation error
- `401`: Missing, invalid, expired or revoked API key or access token. `code: token_issuer_lost_access` means the member who created the API key was deactivated or lost access to the workspace: ask a workspace admin for a new key
- `403`: The credentials are valid but cannot be used here. `code: permission_denied`: the workspace role behind the API key or OAuth sign-in lacks `redreplier.write`; `role`, `keyRole` and `issuerRole` say which role fell short. `code: subscription_required`: the organization plan does not include API access. `code: workspace_access_denied`: `X-Workspace-Id` names a workspace the caller cannot reach, or an API key was sent to a workspace other than its own
- `429`: Rate limit exceeded

---

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