# Reddit API guide



## Start with Reddit



Find public discussions, inspect their original posts and read available comments. Use a subreddit feed for a known community and search for a topic.



These requests use your API key and can spend credits. Check the current price on the endpoint page; each new page is a separate request. Later examples use illustrative identifiers: replace them with values from your earlier response.



### 1. Find discussions



Save each result’s URL and subreddit. Search ranking is not a guarantee that every matching discussion was returned. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/reddit/search)



**reddit/search**

```
curl "https://www.monocrawl.com/v1/reddit/search?query=customer%20feedback&sort=relevance&timeframe=month" \
  -H "x-api-key: mn_your_key_here"
```



### 2. Read the original post



Replace the example URL with a result URL. Use the post body when a search preview is too short for your analysis. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/reddit/post)



**reddit/post**

```
curl "https://www.monocrawl.com/v1/reddit/post?url=https%3A%2F%2Fwww.reddit.com%2Fr%2FPython%2Fcomments%2F1w6latb%2Fit_seems_like_there_was_a_change_for_how_hex%2F" \
  -H "x-api-key: mn_your_key_here"
```



### 3. Read the comments



Use that same post URL. Preserve parent IDs, depth and completeness metadata when reconstructing a thread. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/reddit/post/comments)



**reddit/post/comments**

```
curl "https://www.monocrawl.com/v1/reddit/post/comments?url=https%3A%2F%2Fwww.reddit.com%2Fr%2FPython%2Fcomments%2F1w6latb%2Fit_seems_like_there_was_a_change_for_how_hex%2F" \
  -H "x-api-key: mn_your_key_here"
```



## Choose filters with the source behavior in mind



| Control | Behavior and limits |
| --- | --- |
| Search sorting | sort accepts relevance, hot, top, new or comments. timeframe accepts hour, day, week, month, year or all. Relevance ranking is not chronological; filters describe the source query, not exhaustive coverage. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/reddit/search) |
| Community sorting | The default sort is hot. On community listings timeframe applies to sort=top; it is not a general date filter for every sort. Keep the community, sort and timeframe fixed across pages. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/reddit/subreddit) |
| Page size and bodies | limit is 1–100, default 25. include_body=true requests post bodies; trim disables body inclusion. A requested limit is a maximum, not a guaranteed count. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/reddit/search) |
| Listing continuation | Use cursor (or the after alias) on pageable listings. Preserve the full token, including any fullname prefix, and deduplicate by post ID across pages because source rankings can move. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/reddit/search) |
| Comment trees | This endpoint returns a bounded, flattened comment tree, not a pageable listing. It has no supported next-page cursor. Use parent_id and depth to reconstruct relationships; inspect truncated and unexpanded_replies. has_more:null signals uncertainty, not a usable continuation. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/reddit/post/comments) |
| Scores | score is a net score and can be negative; it is not a like count. Deleted authors and unavailable bodies must remain unknown. A title search can require a separate post lookup for the body. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/reddit/post) |



Source availability, ordering and field coverage can change. Inspect warnings and partial-result metadata alongside the rows. See [runnable workflows](https://www.monocrawl.com/docs/workflows), [metric semantics](https://www.monocrawl.com/docs/metric-semantics), [computed fields](https://www.monocrawl.com/docs/computed-fields) and the [pagination matrix](https://www.monocrawl.com/docs/pagination).



## Match the operation to your task



| Your task | Endpoint | When to use it |
| --- | --- | --- |
| Activity in one community | [`subreddit`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit) | A feed with its own sort and time-window controls. |
| Community counters | [`subreddit/details`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit/details) | active_users is a legacy online count and may be null. weekly_active_users is separate source-reported weekly activity; neither it nor a missing value is a subscriber total. No live-online guarantee or extra enrichment call. |
| Keywords inside a community | [`subreddit/search`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit/search) | A scoped search rather than a whole-platform query. |
| Search comment text | [`search-comments`](https://www.monocrawl.com/docs/endpoints/reddit/search-comments) | Searches comments rather than only post titles. |
| A combined discussion sample | [`omni-search`](https://www.monocrawl.com/docs/endpoints/reddit/omni-search) | Inspect the returned components and coverage before treating a composite as complete. |



Explore all documented operations by purpose below. Each endpoint reference contains its accepted parameters and current price.



### Search and discovery



- [`omni-search`](https://www.monocrawl.com/docs/endpoints/reddit/omni-search)

- [`search`](https://www.monocrawl.com/docs/endpoints/reddit/search)

- [`search-subreddits`](https://www.monocrawl.com/docs/endpoints/reddit/search-subreddits)

- [`subreddit/search`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit/search)



### Posts and media



- [`post`](https://www.monocrawl.com/docs/endpoints/reddit/post)

- [`user-posts`](https://www.monocrawl.com/docs/endpoints/reddit/user-posts)



### Transcripts



- [`post-transcript`](https://www.monocrawl.com/docs/endpoints/reddit/post-transcript)



### Comments and replies



- [`post/comments`](https://www.monocrawl.com/docs/endpoints/reddit/post/comments)

- [`search-comments`](https://www.monocrawl.com/docs/endpoints/reddit/search-comments)

- [`user-comments`](https://www.monocrawl.com/docs/endpoints/reddit/user-comments)



### Other operations



- [`subreddit`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit)

- [`subreddit/details`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit/details)



### Accounts and audiences



- [`user`](https://www.monocrawl.com/docs/endpoints/reddit/user)



## Endpoint reference

## reddit/omni-search

`GET /v1/reddit/omni-search`

One keyword swept across Reddit: the matching threads, the top-level comments on each, and the communities they sit in with subscriber and activity figures.

*Reddit omni-search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Keyword or phrase to sweep across Reddit — e.g. `notion alternatives` |
| `subreddit` | no | Limit the sweep to one subreddit |
| `threads` | no | Threads to return, 1 to 10 — e.g. `5` |
| `comments_per_thread` | no | Top-level comments per thread, 0 to 15 — e.g. `5` |
| `include` | no | comments, subreddits, or none Accepted values (comma-separated): comments, subreddits, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `comments,subreddits` |
| `sort` | no | relevance, hot, top, new or comments Accepted values: relevance, hot, top, new, comments. Case, spaces, hyphens and underscores are interchangeable. — e.g. `relevance` |
| `timeframe` | no | hour, day, week, month, year or all Accepted values: hour, day, week, month, year, all. Case, spaces, hyphens and underscores are interchangeable. — e.g. `year` |
| `cursor` | no | Opaque continuation from this operation. Keep the same query, subreddit, sort and timeframe. It advances source pages; each response contains only the requested thread sample, not every source record. |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `timeframe`: Choose the source time window relevant to your task. A narrower window is not a completeness guarantee or a price reduction.
- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/omni-search?query=notion%20alternatives" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "cursor": null,
  "query": "example",
  "sort": "example",
  "sources": [
    {
      "error": "example",
      "funding_reason": "example",
      "latency_ms": 0,
      "ok": false,
      "source": "example"
    }
  ],
  "subreddits": [
    {
      "description": "example",
      "name": "example",
      "subscribers": 0,
      "thread_count": 0,
      "title": "example",
      "url": "https://example.com/example"
    }
  ],
  "threads": [
    {
      "author": "example",
      "author_id": "example",
      "comments_count": 0,
      "created_at": "2026-09-01T12:00:00Z",
      "gallery": [],
      "id": "example",
      "is_video": false,
      "over_18": false,
      "score": 0,
      "selftext": "example",
      "selftext_html": "example",
      "spoiler": false,
      "subreddit": "example",
      "title": "example",
      "top_comments": [
        {}
      ],
      "url": "https://example.com/example"
    }
  ],
  "totals": {
    "comments_sampled": 0,
    "communities": 0,
    "threads": 0
  }
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/omni-search#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/omni-search.json)


## reddit/post

`GET /v1/reddit/post`

Title, author, score, flags and body for a single Reddit post by URL.

*Reddit post*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full Reddit post URL (permalink, redd.it or gallery link) — e.g. `https://www.reddit.com/r/Python/comments/1w6latb/it_seems_like_there_was_a_change_for_how_hex/` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/post?url=https%3A%2F%2Fwww.reddit.com%2Fr%2FPython%2Fcomments%2F1w6latb%2Fit_seems_like_there_was_a_change_for_how_hex%2F" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "id": "example1",
  "title": "What improved your desk setup?",
  "author": "example_reader",
  "subreddit": "example_community",
  "url": null,
  "score": 42,
  "comments_count": 18,
  "text": null,
  "selftext": "A fictional discussion for this example."
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/post#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/post.json)


## reddit/post-transcript

`GET /v1/reddit/post-transcript`

The spoken words of a Reddit-hosted video as text. transcript is null when the video has no speech — that is the honest answer, not an error.

*Video transcript*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Reddit post URL containing a video. — e.g. `https://www.reddit.com/r/youseeingthisshit/comments/1oiu9xm/football_nostalgiasaints_punter_head_coach_cant/` |
| `language` | no | Transcript language. — e.g. `en` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/post-transcript?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fyouseeingthisshit%2Fcomments%2F1oiu9xm%2Ffootball_nostalgiasaints_punter_head_coach_cant%2F" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "has_transcript": false,
  "id": "example",
  "platform": "example",
  "transcript": "example",
  "url": "https://example.com/example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/post-transcript#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/post-transcript.json)


## reddit/post/comments

`GET /v1/reddit/post/comments`

Retrieve a bounded, flattened comment tree for a Reddit post. Preserve parent_id and depth, and inspect truncated and unexpanded_replies. This operation has no supported next-page cursor.

*Reddit post comments*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full Reddit post URL (permalink, redd.it or gallery link) — e.g. `https://www.reddit.com/r/Python/comments/1w6latb/it_seems_like_there_was_a_change_for_how_hex/` |
| `cursor` | no | Reserved compatibility parameter. This bounded comment-tree response has no supported continuation; inspect truncated and unexpanded_replies instead. |
| `trim` | no | true to truncate comment bodies to 500 characters — e.g. `false` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `cursor`: Continue the same source traversal with the complete returned cursor. Saved-result retrieval and a new source page can have different prices; quote the next call.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/post/comments?url=https%3A%2F%2Fwww.reddit.com%2Fr%2FPython%2Fcomments%2F1w6latb%2Fit_seems_like_there_was_a_change_for_how_hex%2F" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "items": [
    {
      "id": "example_comment",
      "parent_id": null,
      "depth": 0,
      "author": "example_reader",
      "body": "Useful guide",
      "score": 3
    }
  ],
  "cursor": null,
  "has_more": null,
  "truncated": true,
  "unexpanded_replies": [
    {
      "parent_id": "example_comment",
      "count": 1,
      "ids": [
        "example_reply"
      ]
    }
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/post/comments#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/post/comments.json)


## reddit/search

`GET /v1/reddit/search`

Search posts across all of Reddit by keyword, with sort and time filters.

*Reddit search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Keyword or phrase to search for — e.g. `customer feedback` |
| `sort` | no | relevance, hot, top, new or comments (default relevance) Accepted values: relevance, hot, top, new, comments. Case, spaces, hyphens and underscores are interchangeable. — e.g. `relevance` |
| `timeframe` | no | hour, day, week, month, year or all Accepted values: hour, day, week, month, year, all. Case, spaces, hyphens and underscores are interchangeable. — e.g. `month` |
| `after` | no | Reddit fullname to continue after (alias of cursor) — e.g. `t3_1abcd2` |
| `cursor` | no | Opaque cursor from the previous page — e.g. `t3_1abcd2` |
| `limit` | no | Results per page, 1-100 (default 25) — e.g. `25` |
| `include_body` | no | Include supplied selftext and HTML bodies (default true). Set false to omit them; trim=true also omits bodies. No additional supplier call. — e.g. `true` |
| `trim` | no | true to force selftext bodies off — e.g. `false` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `timeframe`: Choose the source time window relevant to your task. A narrower window is not a completeness guarantee or a price reduction.
- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/search?query=customer%20feedback" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "items": [
    {
      "id": "example1",
      "title": "What improved your desk setup?",
      "author": "example_reader",
      "subreddit": "example_community",
      "url": null,
      "score": 42,
      "comments_count": 18,
      "text": null
    }
  ],
  "cursor": null,
  "has_more": null
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/search#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/search.json)


## reddit/search-comments

`GET /v1/reddit/search-comments`

Global comment search. Returns comment text, author, signed score, timestamp, subreddit and source link. One page; follow cursor.

*Search Reddit comments*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search phrase; ranked platform search, not a strict local substring match. — e.g. `NASA` |
| `cursor` | no | Opaque continuation from the previous response. Preserve query or identity. |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `cursor`: Continue the same source traversal with the complete returned cursor. Saved-result retrieval and a new source page can have different prices; quote the next call.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/search-comments?query=NASA" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "author": "example",
      "body": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "id": "example",
      "parent_id": "example",
      "post": {
        "id": "example",
        "title": "example",
        "url": "https://example.com/example"
      },
      "post_id": "example",
      "score": 0,
      "subreddit": "example",
      "url": "https://example.com/example"
    }
  ],
  "query": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/search-comments#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/search-comments.json)


## reddit/search-subreddits

`GET /v1/reddit/search-subreddits`

Native subreddit discovery by search phrase, with public community metadata and pagination.

*Find subreddits*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search phrase; ranked platform search, not a strict local substring match. — e.g. `NASA` |
| `cursor` | no | Opaque continuation from the previous response. Preserve query or identity. |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `cursor`: Continue the same source traversal with the complete returned cursor. Saved-result retrieval and a new source page can have different prices; quote the next call.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/search-subreddits?query=NASA" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "_warnings": [],
      "banner_url": "https://example.com/example",
      "category": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "description": "example",
      "icon_url": "https://example.com/example",
      "id": "example",
      "language": "example",
      "name": "example",
      "over_18": false,
      "subscribers": 0,
      "title": "example",
      "type": "example",
      "url": "https://example.com/example"
    }
  ],
  "query": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/search-subreddits#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/search-subreddits.json)


## reddit/subreddit

`GET /v1/reddit/subreddit`

Hot, new, top or rising posts from a subreddit, with cursor pagination.

*Subreddit posts*

| Parameter | Required | Description |
| --- | --- | --- |
| `subreddit` | yes | Subreddit name, with or without the r/ prefix — e.g. `programming` |
| `sort` | no | Listing order: hot, new, top or rising (default hot) Accepted values: hot, new, top, rising. Case, spaces, hyphens and underscores are interchangeable. — e.g. `hot` |
| `timeframe` | no | Window for sort=top: hour, day, week, month, year or all Accepted values: hour, day, week, month, year, all. Case, spaces, hyphens and underscores are interchangeable. — e.g. `week` |
| `after` | no | Reddit fullname to continue after (alias of cursor) — e.g. `t3_1abcd2` |
| `trim` | no | true to omit post selftext bodies — e.g. `false` |
| `limit` | no | Requested rows per response, 1–1000. The source may return fewer. Remaining rows from an already purchased page use a saved cursor and cost zero to retrieve for up to one hour; further native source pages use this endpoint’s normal price. — e.g. `5` |
| `cursor` | no | Use the returned cursor unchanged, retaining the original query, filters and limit. Saved mlo1. cursors retrieve already purchased rows at zero credits for up to one hour. A native source cursor, when supplied, starts a normally priced source page. Quote with dry_run before continuing. |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `timeframe`: Choose the source time window relevant to your task. A narrower window is not a completeness guarantee or a price reduction.
- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 2 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/subreddit?subreddit=programming" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "items": [
    {
      "id": "example1",
      "title": "What improved your desk setup?",
      "author": "example_reader",
      "subreddit": "example_community",
      "url": null,
      "score": 42,
      "comments_count": 18,
      "text": null
    }
  ],
  "cursor": null,
  "has_more": null
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/subreddit#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/subreddit.json)


## reddit/subreddit/details

`GET /v1/reddit/subreddit/details`

Subscribers, active users, description and metadata for a subreddit.

*Subreddit details*

| Parameter | Required | Description |
| --- | --- | --- |
| `subreddit` | no | Subreddit name, with or without the r/ prefix — e.g. `programming` |
| `url` | no | Any reddit.com subreddit URL (alternative to subreddit) — e.g. `https://www.reddit.com/r/programming/` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/subreddit/details?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fprogramming%2F" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [],
  "category": "example",
  "created_at": "2026-09-01T12:00:00Z",
  "description": "example",
  "icon_url": "https://example.com/example",
  "id": "example",
  "language": "example",
  "name": "example",
  "over_18": false,
  "subscribers": null,
  "title": "example",
  "type": "example",
  "url": "https://example.com/example",
  "active_users": null,
  "weekly_active_users": null,
  "weekly_contributions": null
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/subreddit/details#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/subreddit/details.json)


## reddit/subreddit/search

`GET /v1/reddit/subreddit/search`

Search posts within a single subreddit by keyword.

*Subreddit search*

| Parameter | Required | Description |
| --- | --- | --- |
| `subreddit` | yes | Subreddit to search within (without r/) — e.g. `programming` |
| `query` | yes | Search text within this subreddit. Required; use reddit/subreddit for recent posts without a query. — e.g. `javascript` |
| `sort` | no | relevance, hot, top, new or comments Accepted values: relevance, hot, top, new, comments. Case, spaces, hyphens and underscores are interchangeable. — e.g. `relevance` |
| `timeframe` | no | hour, day, week, month, year or all Accepted values: hour, day, week, month, year, all. Case, spaces, hyphens and underscores are interchangeable. — e.g. `month` |
| `cursor` | no | Continue a previous page (after also accepted) |
| `include_body` | no | Include post selftext bodies — e.g. `true` |
| `trim` | no | Trim bodies out of the response — e.g. `true` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `timeframe`: Choose the source time window relevant to your task. A narrower window is not a completeness guarantee or a price reduction.
- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/subreddit/search?subreddit=programming&query=javascript" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "items": [
    {
      "id": "example1",
      "title": "What improved your desk setup?",
      "author": "example_reader",
      "subreddit": "example_community",
      "url": null,
      "score": 42,
      "comments_count": 18,
      "text": null
    }
  ],
  "cursor": null,
  "has_more": null
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/subreddit/search#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/subreddit/search.json)


## reddit/user

`GET /v1/reddit/user`

Karma split, cake day and profile flags for a redditor.

*Reddit user profile*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | e.g. `spez` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/user?handle=spez" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "author": {
    "avatar_url": "https://example.com/example",
    "bio": "example",
    "display_name": "example",
    "ext": {
      "comment_karma": 0,
      "is_gold": false,
      "is_mod": false,
      "link_karma": 0
    },
    "followers": 0,
    "id": "example",
    "joined_at": "2026-09-01T12:00:00Z",
    "likes_count": 0,
    "private": false,
    "url": "https://example.com/example",
    "username": "example",
    "verified": false
  },
  "computed": {}
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/user#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/user.json)


## reddit/user-comments

`GET /v1/reddit/user-comments`

One source page of a public Reddit user history. Follow cursor to continue; no claim of complete or real-time history.

*Recent user comments*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | Public Reddit username. — e.g. `GovSchwarzenegger` |
| `sort` | no | Only new ordering is supported. Accepted values: new. Case, spaces, hyphens and underscores are interchangeable. — e.g. `new` |
| `cursor` | no | Opaque continuation from the previous response. Preserve query or identity. |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/user-comments?handle=GovSchwarzenegger" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "cursor": null,
  "dropped": 0,
  "handle": "example",
  "has_more": false,
  "items": [
    {
      "author": "example",
      "body": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "id": "example",
      "is_submitter": false,
      "parent_id": "example",
      "post_id": "example",
      "score": 0,
      "stickied": false,
      "subreddit": "example",
      "url": "https://example.com/example"
    }
  ],
  "sort": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/user-comments#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/user-comments.json)


## reddit/user-posts

`GET /v1/reddit/user-posts`

One source page of a public Reddit user history. Follow cursor to continue; no claim of complete or real-time history.

*Recent user posts*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | Public Reddit username. — e.g. `GovSchwarzenegger` |
| `sort` | no | Only new ordering is supported. Accepted values: new. Case, spaces, hyphens and underscores are interchangeable. — e.g. `new` |
| `cursor` | no | Opaque continuation from the previous response. Preserve query or identity. |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/reddit/user-posts?handle=GovSchwarzenegger" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "items": [
    {
      "id": "example1",
      "title": "What improved your desk setup?",
      "author": "example_reader",
      "subreddit": "example_community",
      "url": null,
      "score": 42,
      "comments_count": 18,
      "text": null
    }
  ],
  "cursor": null,
  "has_more": null
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/reddit/user-posts#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/reddit/user-posts.json)

