# Reddit API
> Real-time Reddit data as an API — subreddits, posts, comments, user profiles and search, returned as clean JSON. Pull a subreddit's info and its hot, new, top or rising posts; fetch a post together with its full comment tree; look up any user's profile, karma, submissions and comments; search posts across all of Reddit or within one subreddit; and list the trending posts and the most popular subreddits. Live data, paginated with Reddit cursors, with scores, upvote ratios, comment counts, flair, timestamps, thumbnails and media URLs. Ideal for social listening and brand monitoring, trend and sentiment dashboards, content aggregation, research and market intelligence, and bots. 11 data endpoints. Authenticated with an x-oanor-key; fair-use rate limits per plan.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/reddit-api/..."
```

## Pricing
- **Free** (Free) — 500 calls/Mo, 3 req/s
- **Starter** ($10/Mo) — 20,000 calls/Mo, 10 req/s
- **Pro** ($39/Mo) — 120,000 calls/Mo, 25 req/s
- **Mega** ($129/Mo) — 600,000 calls/Mo, 60 req/s

## Endpoints

### Subreddit

#### `GET /v1/subreddit/about` — Subreddit info

**Parameters:**
- `subreddit` (query, required, string) — Subreddit name (without r/) Example: `programming`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/subreddit/about?subreddit=programming"
```

**Response:**
```json
{
    "data": {
        "url": "https://www.reddit.com/r/programming/",
        "icon": "https://styles.redditmedia.com/t5_2fwo/styles/communityIcon_1bqa1ibfp8q11.png?width=256&s=45361614cdf4a306d5510b414d18c02603c7dd3c",
        "lang": "en",
        "name": "programming",
        "type": "public",
        "title": "programming",
        "banner": null,
        "over18": false,
        "created_utc": 1141150769,
        "description": "Computer Programming",
        "subscribers": 6885468
    },
    "meta": {
        "timestamp": "2026-06-07T16:48:51.965Z",
        "request_id": "6cfed35f-7695-4683-80f5-3d04d582c0bf"
    },
    "status": "ok",
    "message": "Subreddit info retrieved successfully",
    "success": true
}
```

#### `GET /v1/subreddit/posts` — Subreddit posts

**Parameters:**
- `subreddit` (query, required, string) — Subreddit name Example: `worldnews`
- `sort` (query, optional, string) — hot, new, top, rising Example: `hot`
- `time` (query, optional, string) — For top: hour/day/week/month/year/all Example: `day`
- `limit` (query, optional, string) — Max posts (1–100) Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/subreddit/posts?subreddit=worldnews&sort=hot&time=day&limit=10"
```

**Response:**
```json
{
    "data": {
        "sort": "hot",
        "after": "t3_1tz4exo",
        "count": 10,
        "posts": [
            {
                "id": "1tz1rny",
                "url": "https://www.reddit.com/live/18hnzysb1elcs",
                "flair": "Russia/Ukraine",
                "score": 341,
                "title": "/r/WorldNews Live Thread: Russian Invasion of Ukraine Day 1564, Part 1 (Thread #1711)",
                "author": "WorldNewsMods",
                "over_18": false,
                "upvotes": 341,
                "fullname": "t3_1tz1rny",
                "is_video": false,
                "selftext": "",
                "stickied": true,
                "permalink": "https://www.reddit.com/r/worldnews/comments/1tz1rny/rworldnews_live_thread_russian_invasion_of/",
                "subreddit": "worldnews",
                "thumbnail": "default",
                "created_utc": 1780804975,
                "num_comments": 67,
                "upvote_ratio": 0.97
            },
            {
                "id": "1tlutp0",
                "url": "https://www.reddit.com/r/worldnews/comments/1tlutp0/rworldnews_discussion_thread_us_and_israel_launch/",
                "flair": "Israel/Palestine",
                "score": 258,
                "title": "/r/WorldNews Discussion Thread: US and Israel launch attack on Iran; Iran retaliates (Thread #18)",
                "author": "WorldNewsMods",
                "over_18": false,
                "upvotes": 258,
         
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/subreddit/rules` — Subreddit rules

**Parameters:**
- `subreddit` (query, required, string) — Subreddit name Example: `AskReddit`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/subreddit/rules?subreddit=AskReddit"
```

**Response:**
```json
{
    "data": {
        "rules": [
            {
                "kind": "link",
                "name": "Rule 1 - Questions must be clear and direct and may not use the body textbox",
                "created_utc": 1652993383,
                "description": "* All questions must be clear, written in English, and conclude with a question mark\n* All context in the title must be ***necessary to understanding the question***; do not give “example answers” in the post title (i.e. “Other than your mom, \\_\\_\\_\\_\\_\\_?”)\n* No text in the text box - any additional info from you must be added as a comment to your post\n\n[The full rule can be viewed here](https://www.reddit.com/r/askreddit/wiki/index#wiki_-rule_1-)"
            },
            {
                "kind": "link",
                "name": "Rule 2 - No personal or professional advice requests",
                "created_utc": 1652993383,
                "description": "* Askreddit is NOT your personal or professional advice platform\n\n* Do not makes posts asking for professional advice - medical, legal, financial, or otherwise\n\n* All posts asking for advice must be generic and not specific to your situation alone\n\n* Do not use first person pronouns\n\n* No crowdsourcing naming or purchasing decisions\n\n[The full rule can be viewed here](https://www.reddit.com/r/askreddit/wiki/index#wiki_-rule_2-)"
            },
            {
                "kind": "link",
                "name": "Rule 3 - Open ended que
…(truncated, see openapi.json for full schema)
```

### Posts

#### `GET /v1/post/comments` — Post with comments

**Parameters:**
- `subreddit` (query, required, string) — Subreddit name Example: `IAmA`
- `post_id` (query, required, string) — Post id (base36) Example: `z1c9z`
- `limit` (query, optional, string) — Max comments Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/post/comments?subreddit=IAmA&post_id=z1c9z&limit=10"
```

**Response:**
```json
{
    "data": {
        "post": {
            "id": "z1c9z",
            "url": "https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/",
            "flair": null,
            "score": 216187,
            "title": "I am Barack Obama, President of the United States -- AMA",
            "author": "PresidentObama",
            "over_18": false,
            "upvotes": 216187,
            "fullname": "t3_z1c9z",
            "is_video": false,
            "selftext": "Hi, I’m Barack Obama, President of the United States. Ask me anything. I’ll be taking your questions for half an hour starting at about 4:30 ET.\n\nProof it's me: https://twitter.com/BarackObama/status/240903767350968320\n\nWe're running early and will get started soon.\n\nUPDATE: Hey everybody - this is barack. Just finished a great rally in Charlottesville, and am looking forward to your questions. At the top, I do want to say that our thoughts and prayers are with folks who are dealing with Hurricane Isaac in the Gulf, and to let them know that we are going to be coordinating with state and local officials to make sure that we give families everything they need to recover.\n\nVerification photo: http://i.imgur.com/oz0a7.jpg\n\nLAST UPDATE: I need to get going so I'm back in DC in time for dinner. But I want to thank everybody at reddit for participating - this is an example of how technology and the internet can empower the sorts of conversations that strengthen our demo
…(truncated, see openapi.json for full schema)
```

### Users

#### `GET /v1/user/about` — User profile

**Parameters:**
- `username` (query, required, string) — Reddit username (without u/) Example: `spez`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/user/about?username=spez"
```

**Response:**
```json
{
    "data": {
        "id": "1w72",
        "icon": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png?width=256&height=256&crop=256:256,smart&s=aa819b0964f6e3019e769d1cc8ede7318c3869a3",
        "name": "spez",
        "is_mod": true,
        "is_gold": true,
        "over_18": false,
        "verified": true,
        "link_karma": 183082,
        "created_utc": 1118030400,
        "total_karma": 939006,
        "comment_karma": 755924
    },
    "meta": {
        "timestamp": "2026-06-07T16:48:57.674Z",
        "request_id": "a660c3e9-be97-4636-83e7-dd749e47a360"
    },
    "status": "ok",
    "message": "User info retrieved successfully",
    "success": true
}
```

#### `GET /v1/user/comments` — User comments

**Parameters:**
- `username` (query, required, string) — Reddit username Example: `spez`
- `limit` (query, optional, string) — Max comments Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/user/comments?username=spez&limit=10"
```

**Response:**
```json
{
    "data": {
        "after": "t1_opmb26b",
        "count": 10,
        "comments": [
            {
                "id": "optfyql",
                "body": "https://preview.redd.it/f1xjmxgj3d5h1.jpeg?width=1260&format=pjpg&auto=webp&s=37fed0dc065a6553fa7a291f643bf95b60907962\n\n  \nJuuuust kidding. We’ll follow up with the hoodie plan. ",
                "score": 21,
                "author": "spez",
                "replies": [],
                "parent_id": "t1_optcg0g",
                "permalink": "https://www.reddit.com/r/RDDT/comments/1tvs5jj/steve_jen_and_drew_here_ask_us_anything/optfyql/",
                "created_utc": 1780620715,
                "is_submitter": false
            },
            {
                "id": "optcg0g",
                "body": "https://preview.redd.it/6j6mqriszc5h1.jpeg?width=1260&format=pjpg&auto=webp&s=d6ef9851633a7012a76d420b0ed7255d82dc950d\n\n  \nOof. So close. ",
                "score": 9,
                "author": "spez",
                "replies": [],
                "parent_id": "t1_opmavr4",
                "permalink": "https://www.reddit.com/r/RDDT/comments/1tvs5jj/steve_jen_and_drew_here_ask_us_anything/optcg0g/",
                "created_utc": 1780619443,
                "is_submitter": false
            },
            {
                "id": "oprhecj",
                "body": "That is obviously where this is all heading.",
                "score": 19,
                "author": "spez",
                "replies": [],
  
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/user/posts` — User submissions

**Parameters:**
- `username` (query, required, string) — Reddit username Example: `spez`
- `sort` (query, optional, string) — new, hot, top Example: `new`
- `limit` (query, optional, string) — Max posts Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/user/posts?username=spez&sort=new&limit=10"
```

**Response:**
```json
{
    "data": {
        "after": "t3_1lq0zjs",
        "count": 10,
        "posts": [
            {
                "id": "1tvsa59",
                "url": "/r/RDDT/comments/1tvs5jj/steve_jen_and_drew_here_ask_us_anything/",
                "flair": "Speculation",
                "score": 99,
                "title": "Hi redditstock, leave your questions, and we’ll be back later today to answer them.",
                "author": "spez",
                "over_18": false,
                "upvotes": 99,
                "fullname": "t3_1tvsa59",
                "is_video": false,
                "selftext": "",
                "stickied": false,
                "permalink": "https://www.reddit.com/r/redditstock/comments/1tvsa59/hi_redditstock_leave_your_questions_and_well_be/",
                "subreddit": "redditstock",
                "thumbnail": "https://preview.redd.it/6mma67su135h1.png?width=140&height=78&auto=webp&s=48a715c84daad3f73a6c42e2cab9ccffe9caedb7",
                "created_utc": 1780499467,
                "num_comments": 24,
                "upvote_ratio": 0.94
            },
            {
                "id": "1tp51gf",
                "url": "/r/RDDT/comments/1tp4wsi/reddit_to_present_at_the_bofa_securities_2026/",
                "flair": "News",
                "score": 274,
                "title": "I know you’ve got a lot of questions. We’re doing an AMA next Wednesday in r/RDDT.",
                "author": "spez",
                "over_18": false,

…(truncated, see openapi.json for full schema)
```

### Search

#### `GET /v1/search/posts` — Search posts

**Parameters:**
- `query` (query, required, string) — Search query Example: `chatgpt`
- `subreddit` (query, optional, string) — Restrict to a subreddit
- `sort` (query, optional, string) — relevance, hot, top, new, comments Example: `relevance`
- `time` (query, optional, string) — hour/day/week/month/year/all Example: `all`
- `limit` (query, optional, string) — Max posts Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/search/posts?query=chatgpt&sort=relevance&time=all&limit=10"
```

**Response:**
```json
{
    "data": {
        "after": "t3_1t5jhfj",
        "count": 10,
        "posts": [
            {
                "id": "1r7uh9y",
                "url": "https://i.redd.it/6yiglhkvu6kg1.png",
                "flair": "[Analysis]",
                "score": 274,
                "title": "This is real. DO NOT USE CHATGPT ANYMORE.",
                "author": "IGetHighOnPenicillin",
                "over_18": false,
                "upvotes": 274,
                "fullname": "t3_1r7uh9y",
                "is_video": false,
                "selftext": "[https://chatgpt.com/share/69954d6f-cc2c-8003-8357-face67c93fef](https://chatgpt.com/share/69954d6f-cc2c-8003-8357-face67c93fef)  \n  \nThis is not an older model, I asked. No custom instructions, no deceiving. It told me it was running the latest model.\n\nChatGPT has been LOBOTOMIZED. Do NOT trust it on anything other than baking recipes. This speaks for itself. 🤦🏻‍♂️",
                "stickied": false,
                "permalink": "https://www.reddit.com/r/ChatGPTcomplaints/comments/1r7uh9y/this_is_real_do_not_use_chatgpt_anymore/",
                "subreddit": "ChatGPTcomplaints",
                "thumbnail": "https://preview.redd.it/6yiglhkvu6kg1.png?width=140&height=45&auto=webp&s=abe1ae38797ee2d7fec677dd2073cf164e150850",
                "created_utc": 1771392530,
                "num_comments": 546,
                "upvote_ratio": 0.79
            },
            {
                "id": "1tnj3fi",
            
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/subreddits` — Search subreddits

**Parameters:**
- `query` (query, required, string) — Search query Example: `python`
- `limit` (query, optional, string) — Max subreddits Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/search/subreddits?query=python&limit=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "query": "python",
        "subreddits": [
            {
                "url": "https://www.reddit.com/r/Python/",
                "icon": "https://styles.redditmedia.com/t5_2qh0y/styles/communityIcon_lctik80p96tg1.png?width=256&s=6d91fcc92d9f08c5ba30096d43a555ddd0edbc7d",
                "name": "Python",
                "title": "Python",
                "over18": false,
                "description": "The largest Python community for Reddit! Stay up to date with the latest news, packages, and meta information relating to the Python programming language. \n---\n\nIf you have questions or are new to Python use r/LearnPython",
                "subscribers": 1485969
            },
            {
                "url": "https://www.reddit.com/r/PythonLearning/",
                "icon": "https://styles.redditmedia.com/t5_2qeibm/styles/communityIcon_5rysoa19mr351.png?width=256&s=9b820932f4a5f426f855ff8cb2519b40b739846f",
                "name": "PythonLearning",
                "title": "PythonLearning",
                "over18": false,
                "description": "Everything about learning the Python programming language. Ask questions, give recommendations, explain concepts, show projects, demo free tools, compare courses, ...",
                "subscribers": 96468
            },
            {
                "url": "https://www.reddit.com/r/PythonProjects2/",
                "icon": "https://styles.redditmedia.com/t5_fnrmm/styles
…(truncated, see openapi.json for full schema)
```

### Popular

#### `GET /v1/popular/posts` — Trending posts

**Parameters:**
- `limit` (query, optional, string) — Max posts Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/popular/posts?limit=10"
```

**Response:**
```json
{
    "data": {
        "after": "t3_1tz7wtq",
        "count": 10,
        "posts": [
            {
                "id": "1tzf4sl",
                "url": "https://i.redd.it/3f1gbl9mpv5h1.png",
                "flair": ":post-grand-prix: Race",
                "score": 7594,
                "title": "Kimi Antonelli wins the 2026 Monaco Grand Prix",
                "author": "overspeeed",
                "over_18": false,
                "upvotes": 7594,
                "fullname": "t3_1tzf4sl",
                "is_video": false,
                "selftext": "",
                "stickied": false,
                "permalink": "https://www.reddit.com/r/formula1/comments/1tzf4sl/kimi_antonelli_wins_the_2026_monaco_grand_prix/",
                "subreddit": "formula1",
                "thumbnail": "https://preview.redd.it/3f1gbl9mpv5h1.png?width=140&height=140&auto=webp&s=39b451a072e526c0fbf0d5c860f2e242bfa328dd",
                "created_utc": 1780846060,
                "num_comments": 788,
                "upvote_ratio": 0.99
            },
            {
                "id": "1tze5tf",
                "url": "https://i.redd.it/30mmzt0wiv5h1.jpeg",
                "flair": null,
                "score": 307,
                "title": "**GUTE NACHRICHTEN: Timmy ist wohlauf!",
                "author": "JealousBrilliant1984",
                "over_18": false,
                "upvotes": 307,
                "fullname": "t3_1tze5tf",
                "is_video": false,
             
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/popular/subreddits` — Popular subreddits

**Parameters:**
- `limit` (query, optional, string) — Max subreddits Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/popular/subreddits?limit=10"
```

**Response:**
```json
{
    "data": {
        "after": "t5_4jn9v4",
        "count": 10,
        "subreddits": [
            {
                "url": "https://www.reddit.com/r/Home/",
                "name": "Home",
                "title": "Home",
                "over18": false,
                "description": "",
                "subscribers": 410654
            },
            {
                "url": "https://www.reddit.com/r/AskReddit/",
                "name": "AskReddit",
                "title": "Ask Reddit...",
                "over18": false,
                "description": "r/AskReddit is the place to ask and answer thought-provoking questions.",
                "subscribers": 58769335
            },
            {
                "url": "https://www.reddit.com/r/NoStupidQuestions/",
                "name": "NoStupidQuestions",
                "title": "No such thing as stupid questions",
                "over18": false,
                "description": "Ask away!\n\nDisclaimer: This is an anonymous forum so answers may not be correct",
                "subscribers": 7257908
            },
            {
                "url": "https://www.reddit.com/r/BaldursGate3/",
                "name": "BaldursGate3",
                "title": "Baldur's Gate 3",
                "over18": false,
                "description": "A community all about Baldur's Gate III, the role-playing video game by Larian Studios. BG3 is the third main game in the Baldur's Gate series. Baldur's Gate III is based on a modif
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/reddit-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "service": "reddit-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/user/about": "User profile and karma.",
            "GET /v1/user/posts": "A user's submissions.",
            "GET /v1/search/posts": "Search posts (optionally within a subreddit).",
            "GET /v1/popular/posts": "Trending posts from r/popular.",
            "GET /v1/post/comments": "A post with its comment tree.",
            "GET /v1/user/comments": "A user's comments.",
            "GET /v1/subreddit/about": "Subreddit info (subscribers, description, icons).",
            "GET /v1/subreddit/posts": "Posts in a subreddit by sort (hot/new/top/rising).",
            "GET /v1/subreddit/rules": "Subreddit rules.",
            "GET /v1/search/subreddits": "Search subreddits.",
            "GET /v1/popular/subreddits": "Most popular subreddits."
        },
        "description": "Reddit data: subreddits, posts, comments, users and search — real live data."
    },
    "meta": {
        "timestamp": "2026-06-07T16:49:03.740Z",
        "request_id": "36245443-d3cf-493c-86f3-86269a719890"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/reddit-api
OpenAPI spec: https://www.oanor.com/api/reddit-api/openapi.json
