# API Direct – Reddit User Posts

> API Direct – Reddit User Posts is a paid API for AI agents from x402.apidirect.io, paid per call via x402, $0.004/call, status unknown (last checked 2026-10-30).

Fetches a Reddit user's submitted posts by username or profile URL, with optional sorting, time filtering, and AI sentiment analysis.

## Facts

- Endpoint: GET https://x402.apidirect.io/v1/reddit/user/posts?utm_source=zero.xyz
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-direct-reddit-user-posts-4fb4b970
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tg1KWxjOLJIxZtYMozuiw

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 api-direct-reddit-user-posts-4fb4b970
```

Example prompt: Pull the top 50 posts from Reddit user u/spez sorted by top posts of all time, and include AI sentiment analysis on each one.

## When to prefer this

Use this endpoint when you need to retrieve the post history of a specific Reddit user by username or profile URL. It is the right choice when you need paginated access to up to 1000 posts with flexible sorting (most recent, hot, top, controversial), optional time windowing, and optional per-post AI sentiment/emotion analysis. Prefer it over general Reddit search when you already know the target user and want their submission history rather than content matching a keyword.

## Known failure modes

- Invalid or non-existent username returns an error or empty result
- Providing both username and url simultaneously causes a validation error
- Using posted_ago with sort_by values other than top or controversial returns a rejection
- Requesting more than 40 pages returns a validation error
- Private or suspended Reddit accounts may return empty or error responses
- Rate limiting or payment failure returns a 402 or 429 error

## How this service works

Get a Reddit user's submitted posts by username or profile URL.

## Output

Returns an array of Reddit posts submitted by the specified user, each containing post metadata (title, URL, score, comments, subreddit, timestamp, etc.). When get_sentiment is enabled, each post also includes a sentiment object with emotion scores (joy, trust, fear, surprise, sadness, disgust, anger, anticipation each 0–100), dominant emotion, emotional intensity (0–10), and polarity. Up to 25 posts per page, up to 40 pages.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "url": {
       "type": "string",
       "maxLength": 500,
       "description": "Reddit profile URL, e.g. https://www.reddit.com/user/spez (max 500 characters). Provide exactly one of username or url."
      },
      "pages": {
       "type": "integer",
       "default": 1,
       "maximum": 40,
       "minimum": 1,
       "description": "Number of pages to fetch, 1-40 (default: 1). Each page returns up to 25 posts."
      },
      "sort_by": {
       "enum": [
        "most_recent",
        "hot",
        "top",
        "controversial"
       ],
       "type": "string",
       "default": "most_recent",
       "description": "Sort order: most_recent, hot, top, or controversial (default: most_recent)"
      },
      "username": {
       "type": "string",
       "maxLength": 26,
       "description": "Reddit username, with or without u/ (3-20 characters). Provide exactly one of username or url."
      },
      "posted_ago": {
       "enum": [
        "1h",
        "24h",
        "7d",
        "30d",
        "12m",
        "all"
       ],
       "type": "string",
       "description": "Time window for sort_by=top or sort_by=controversial: 1h, 24h, 7d, 30d, 12m, or all (default: all). Rejected with any other sort_by."
      },
      "get_sentiment": {
       "type": "boolean",
       "default": false,
       "description": "Set to true to add AI emotion analysis to each post (returned in the `posts` array). Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, "
      }
     }
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-direct-reddit-user-posts-4fb4b970/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.apidirect.io](https://www.zero.xyz/host/x402.apidirect.io/llms.txt)
