# Reddit User Posts API Documentation

<p><strong>Reddit User Posts API</strong> lists the posts a user made, with the full post shape. The time window <code>t</code> only works with <code>top</code> and <code>controversial</code>. An unknown or suspended user returns 404.</p><p>Each post has id, fullname, title, selftext (<code>null</code> for link posts), author, subreddit, score, upvote_ratio, num_comments, awards, flair, created_at and created_utc, permalink, url, domain, <code>post_type</code> (text, link, image, gallery, video or crosspost), the flags over_18, spoiler, stickied, locked and archived, <code>removed_by_category</code>, <code>thumbnail_url</code>, <code>gallery</code>, <code>video</code> and <code>crosspost_parent</code>. Deleted authors and removed posts show Reddit's own marker such as <code>[deleted]</code>.</p><p>Every list has <code>pagination</code> with <code>limit</code>, <code>after</code>, <code>next_after</code> and <code>has_more</code>. Pass <code>next_after</code> as <code>after</code> to read the next page. A page is never another page's data under a new label. Reddit ends every list after about 1000 items.</p>

- **Documentation:** [https://scrappa.co/docs/reddit-api/reddit_user_posts](https://scrappa.co/docs/reddit-api/reddit_user_posts)
- **API group:** Reddit API
- **Endpoint:** `GET https://scrappa.co/api/reddit/user/posts`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `username` | string | Yes | Reddit username. Example: spez. |
| `sort` | string | No | new (default), hot, top or controversial. Example: new. |
| `t` | string | No | Time window: hour, day, week, month, year or all. Only with sort top or controversial. Items outside the window are never returned. Example: week. |
| `after` | string | No | Cursor from pagination.next_after of the previous page. Example: t3_1xhv532. |
| `limit` | integer | No | Items per page, 1 to 100 (default 25). Example: 25. |

## Example response

```json
{
    "data": {
        "sort": "new",
        "time": null,
        "posts": [
            {
                "id": "1vgbkge",
                "url": "https://www.reddit.com/user/spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/",
                "flair": null,
                "score": 370,
                "title": "Modernizing Reddit\u2019s infrastructure with you",
                "video": null,
                "author": "spez",
                "awards": [],
                "domain": "self.spez",
                "locked": false,
                "gallery": null,
                "over_18": false,
                "spoiler": false,
                "archived": false,
                "fullname": "t3_1vgbkge",
                "selftext": "Hi everyone,\n\nLast May, I shared how we were building Reddit for its [next chapter](https://www.reddit.com/user/spez/comments/1kfciml/red...",
                "stickied": false,
                "edited_at": "2026-08-05T16:14:48+00:00",
                "permalink": "https://www.reddit.com/user/spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/",
                "post_type": "text",
                "subreddit": "u_spez",
                "created_at": "2026-08-05T16:03:56+00:00",
                "created_utc": 1785945836,
                "preview_url": null,
                "author_flair": null,
                "num_comments": 487,
                "subreddit_id": "t5_3k30p",
                "upvote_ratio": 0.84,
                "distinguished": "admin",
                "thumbnail_url": null,
                "num_crossposts": 7,
                "author_fullname": "t2_1w72",
                "crosspost_parent": null,
                "is_original_content": false,
                "removed_by_category": null,
                "subreddit_subscribers": 0,
                "total_awards_received": 0
            }
        ],
        "username": "spez",
        "pagination": {
            "after": null,
            "limit": 2,
            "has_more": true,
            "next_after": "t3_1tvsa59"
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "user_posts"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter or a value is invalid. This response is not billable. |
| 404 | Not Found | The subreddit, post or user does not exist, is private or is banned. This response is not billable. |
| 503 | Upstream Unavailable | Reddit could not be reached or returned data that does not match the request. This response is not billable and is retryable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
