# Reddit Search & Scrape API

> Reddit Search & Scrape API is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Searches and scrapes structured data from public Reddit posts, comments, subreddits, and user profiles via keyword queries or direct URLs

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/reddit-search?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/reddit-search-scrape-api-c5feae26
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xt2jTcYo3BKtIZ8yzE5-8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability reddit-search-scrape-api-c5feae26 -d '<json body>'
```

Example prompt: Search Reddit for posts about 'mechanical keyboards' sorted by top posts from the past month, grab up to 50 posts with their top 100 comments each, and exclude NSFW content.

## When to prefer this

Choose this endpoint when you need structured, pay-per-call Reddit data without building your own scraper — especially useful when querying by keyword, subreddit, or direct post URL with flexible date filtering and sort options. Prefer it over raw HTTP Reddit scraping when you want clean JSON output and only pay for successful, non-empty runs.

## Known failure modes

- Empty result set if query matches no public Reddit posts (not charged)
- Rate limiting or timeout if too many targets are requested simultaneously
- Invalid date format returns a validation error
- Subreddit name not found returns empty results
- URLs pointing to private or deleted Reddit content return no items

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of results and an array of items, each containing post/comment id, body text, kind (post or comment), search query used, score, title, author username, and subreddit name.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "sort": {
   "enum": [
    "relevance",
    "hot",
    "top",
    "new",
    "comments"
   ],
   "type": "string",
   "default": "relevance",
   "description": "Global archive order. New uses creation time; top and comments use archived counts. Relevance and hot currently use newest order."
  },
  "urls": {
   "type": "array",
   "description": "Optional post, search, subreddit, or user-submitted URLs. These take priority over queries and subredditName."
  },
  "dateTo": {
   "type": "string",
   "description": "Keep posts on or before this UTC date (YYYY-MM-DD) or ISO timestamp."
  },
  "queries": {
   "type": "array",
   "description": "Search phrases across public Reddit posts. Ignored when urls are supplied."
  },
  "dateFrom": {
   "type": "string",
   "description": "Keep posts on or after this UTC date (YYYY-MM-DD) or ISO timestamp."
  },
  "maxItems": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Hard cap across posts and comments. Zero means no total cap."
  },
  "maxPosts": {
   "type": "integer",
   "default": 100,
   "minimum": 1,
   "description": "Maximum posts per target. Community archive currently exposes at most 100 per target."
  },
  "timeframe": {
   "enum": [
    "all",
    "year",
    "month",
    "week",
    "day",
    "hour"
   ],
   "type": "string",
   "default": "all",
   "description": "Reddit's time window for global searches."
  },
  "includeNsfw": {
   "type": "boolean",
   "default": false,
   "description": "Include posts marked as adult content."
  },
  "maxComments": {
   "type": "integer",
   "default": 100,
   "minimum": 1,
   "description": "Maximum comments from the initial public thread response for each post."
  },
  "commentDateTo": {
   "type": "string",
   "description": "Keep comments on or before this UTC date or ISO timestamp."
  },
  "subredditName": {
   "type": "string",
   "description": "Optional community name without r/. With no subredditKeywords, collect its newest posts."
  },
  "subredditSort": {
   "enum": [
    "relevance",
    "hot",
    "top",
    "new",
    "comments"
   ],
   "type": "string",
   "default": "relevance",
   "description": "Order the returned community archive page: newest for relevance/new, archived score for top/hot, or archived comment count for comments."
  },
  "scrapeComments": {
   "type": "boolean",
   "default": false,
   "description": "Collect public comments from each saved post."
  },
  "commentD
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "body": null,
    "kind": null,
    "query": null,
    "score": null,
    "title": null,
    "author": null,
    "subreddit": null
   }
  ],
  "product": "reddit-search"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/reddit-search-scrape-api-c5feae26/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
