# How do I track brand mentions across subreddits?

Reddit. Checked September 2026.

Call `GET /v1/reddit/search/posts?q=brand&sort=new` on a schedule. Each run returns the newest public posts that mention the name, across every public subreddit. Store each post `id` and skip the ones you have. Add `subreddit=` to watch one community, or `t=day` to bound the window.

For the conversation under a post, call `GET /v1/reddit/posts/{id}/comments`. Mentions inside comments do not surface in post search, so read the threads of posts about your category too.

## GET /v1/reddit/search/posts?q=…&sort=new

```bash
curl "https://api.openhandle.dev/v1/reddit/search/posts?q=synthetic&sort=new&t=day" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
```

```ts
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });

// Run every hour.
const page = await openhandle.reddit.search.posts.list({ q: 'synthetic', sort: 'new', t: 'day' });
for (const post of page.data) {
    if (await seen(post.id)) continue;
    await onMention(post);
}
```

200 OK:

```json
{
  "platform": "reddit",
  "resource": "post",
  "capturedAt": "2026-09-18T12:41:30Z",
  "source": "live",
  "data": [
    {
      "id": "t3_reddit1",
      "title": "Synthetic Reddit post",
      "text": "Deterministic test content.",
      "community": { "handle": "synthetic", "displayHandle": "r/synthetic" },
      "createdAt": "2026-08-09T15:30:00Z",
      "metrics": { "score": 0, "upvoteRatio": 0.5, "comments": 0 }
    }
  ],
  "meta": { "cursors": { "next": "b3BhcXVlLWN1cnNvcg" } }
}
```

Trimmed to one post. Reddit endpoints are in beta. The example is a Test fixture, so you can run it on a free Test key.

## Tune the search

- **sort.** `new` for monitoring. `top` or `comments` with `t=week` for a weekly digest of what got traction.
- **subreddit.** Restrict to one community. Run separate searches for the three or four subreddits that matter most, plus one open search.
- **t.** Time window: `hour`, `day`, `week`, `month`, `year`, `all`. Keep it one step wider than your poll interval so nothing slips between runs.
- **Quoted names.** Reddit search treats words loosely. Quote a multi-word brand name in `q`.

## Score the mention

A post’s `score` and `comments` keep moving for a day or two. Re-read a post with `GET /v1/reddit/posts/{id}` after 24 hours to get the settled numbers. `upvoteRatio` tells you whether the room agreed. Store `capturedAt` with every read so the report can show when the number was true.

## Comments are where the opinions are

Most brand mentions on Reddit are replies, not posts. Search finds the posts. Read the comment threads of posts about your category, not only posts that name you, and match the brand name in comment text yourself.

## When this does not work

Empty is an answer. A cursor from another request is a mistake.

| Situation | Status | Code |
|---|---|---|
| No public posts match | 200 | `empty data` |
| The subreddit is private, quarantined, or banned | 403 | `PROFILE_PRIVATE` |
| The cursor came from another query, sort, or window | 400 | `CURSOR_MISMATCH` |

```json
{
  "error": {
    "code": "CURSOR_MISMATCH",
    "message": "The cursor does not belong to this request.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}
```

An empty page bills as an answered request. Reddit endpoints are in beta. The shape is stable, coverage is still growing.

## Related

- [Brand monitoring use case](https://openhandle.dev/use-cases/brand-monitoring): Watchlists built on scheduled reads.
- [Is the Reddit API free?](https://openhandle.dev/questions/is-the-reddit-api-free): What the official API costs and who needs approval.
- [Reddit API](https://openhandle.dev/apis/reddit): Every Reddit endpoint with examples.
