← Back to blog

March 22, 2026 · 5 min read

Reddit Data API: Get Posts, Comments, and Subreddit Stats as JSON

Reddit's API now costs $0.24/1K calls and requires OAuth. Get the same data with a single GET request using Nodesnack.

Reddit killed free API access in 2023. What used to be one of the most developer-friendly APIs on the internet now requires OAuth credentials, charges $0.24 per 1,000 API calls, and throttles you to 100 requests per minute (10/minute without OAuth). If you just want to pull posts from a subreddit or check a user's karma, that's a lot of hoops.

Nodesnack gives you the same Reddit data as structured JSON. One GET request. No OAuth. No rate limit headaches.

What changed with Reddit's API

In April 2023, Reddit announced API pricing changes that effectively killed most third-party apps. Here's what developers are dealing with now:

  • OAuth required for all API access, even read-only data
  • $0.24 per 1,000 API calls once you exceed the free tier
  • 100 requests/minute with OAuth, 10/minute without
  • Application review required for higher rate limits
  • Terms that change without warning (they've updated them multiple times since 2023)

For small projects or one-off data pulls, the official API still works. But if you're building anything that needs consistent, high-volume Reddit data, the overhead adds up fast.

Get subreddit posts with one request

Here's a working example. This pulls hot posts from r/technology:

curl "https://api.nodesnack.com/api/v1/platforms/reddit/subreddit?subreddit=technology&sort=hot" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

{
  "success": true,
  "data": {
    "subreddit": "technology",
    "sort": "hot",
    "posts": [
      {
        "id": "1abc2de",
        "title": "Major Tech Announcement",
        "author": "tech_user",
        "subreddit": "technology",
        "score": 45200,
        "upvote_ratio": 0.96,
        "num_comments": 3400,
        "url": "https://example.com/article",
        "permalink": "https://reddit.com/r/technology/comments/1abc2de/...",
        "selftext": "",
        "created_utc": 1773342588.0,
        "is_video": false,
        "link_flair_text": "Artificial Intelligence",
        "is_nsfw": false,
        "is_pinned": false
      }
    ],
    "after": "t3_1abc2de",
    "before": null
  }
}

Same thing in Python:

import requests

API_KEY = "YOUR_API_KEY"
BASE = "https://api.nodesnack.com/api/v1/platforms/reddit"

resp = requests.get(
    f"{BASE}/subreddit",
    params={"subreddit": "technology", "sort": "hot"},
    headers={"Authorization": f"Bearer {API_KEY}"},
)

posts = resp.json()["data"]["posts"]
for post in posts:
    print(f"{post['title']} — {post['score']} points, {post['num_comments']} comments")

Each post includes the score, upvote ratio, comment count, flair, and permalink. The after cursor lets you paginate through results.

Pull comments from any post

Got a post ID? You can grab its comments:

resp = requests.get(
    f"{BASE}/post/comments",
    params={"post_id": "1abc2de"},
    headers={"Authorization": f"Bearer {API_KEY}"},
)

data = resp.json()["data"]
print(f"Post: {data['post']['title']} ({data['post']['score']} points)")

for comment in data["comments"]:
    print(f"  {comment['author']}: {comment['body']} ({comment['score']} pts)")

Response shape:

{
  "success": true,
  "data": {
    "post": {
      "id": "1abc2de",
      "title": "Major Tech Announcement",
      "score": 45200
    },
    "comments": [
      {
        "author": "commenter1",
        "body": "This is huge news!",
        "score": 1200
      }
    ]
  }
}

This is useful for sentiment analysis, building datasets, or monitoring discussions about your product. With the official Reddit API, you'd need to handle OAuth token refresh, pagination tokens, and nested comment tree structures yourself.

Search Reddit and get subreddit details

You can search across all of Reddit:

resp = requests.get(
    f"{BASE}/search",
    params={"query": "artificial intelligence"},
    headers={"Authorization": f"Bearer {API_KEY}"},
)

for post in resp.json()["data"]["posts"]:
    print(f"r/{post['subreddit']}: {post['title']} ({post['score']} pts)")

Or get metadata about a specific subreddit:

resp = requests.get(
    f"{BASE}/subreddit/details",
    params={"subreddit": "technology"},
    headers={"Authorization": f"Bearer {API_KEY}"},
)

sub = resp.json()["data"]
print(f"{sub['name']}: {sub['subscribers']} subscribers, {sub['active_users']} online")
{
  "success": true,
  "data": {
    "name": "technology",
    "title": "/r/Technology",
    "description": "Subreddit dedicated to the news and discussions about the creation and use of technology...",
    "subscribers": 15400000,
    "active_users": 12500,
    "is_nsfw": false
  }
}

You can also search within a specific subreddit using the subreddit/search endpoint, and look up user profiles and post history with user/profile and user/posts.

Pricing: Reddit API vs Nodesnack

Reddit endpoints cost 1 credit per request on Nodesnack. Here's how that compares:

| | Reddit Official API | Nodesnack | |--|--|--| | Setup | OAuth app + token refresh | One API key | | Cost per 1K calls | $0.24 (after free tier) | $1.80 (Starter) to $0.50 (Scale) | | Rate limit | 100 req/min (OAuth) | No per-minute limit | | Auth | OAuth2 with refresh tokens | Bearer token | | Response format | Nested, Reddit-specific | Clean JSON |

With Nodesnack's $9 Starter pack (5,000 credits), you get 5,000 Reddit API calls. The $29 pack (20,000 credits) gives you 20,000 calls. Credits don't expire and there's no subscription.

For low-volume use under the free tier, Reddit's official API is fine. Once you need consistent access without OAuth headaches or rate limit management, the math works in Nodesnack's favor.

All Reddit endpoints

Nodesnack covers 7 Reddit endpoints:

  • /reddit/subreddit - Posts from any subreddit (hot, new, top, rising)
  • /reddit/subreddit/details - Subscriber count, description, active users
  • /reddit/subreddit/search - Search within a specific subreddit
  • /reddit/post/comments - Comments on any post
  • /reddit/search - Search across all of Reddit
  • /reddit/user/profile - User karma, account age
  • /reddit/user/posts - A user's post history

Full parameter docs are at /docs/reddit.

We also cover YouTube, TikTok, and 27 other platforms with the same simple API pattern.

Get started

Sign up at nodesnack.com/signup and you'll get 100 free credits to test any endpoint. No credit card required.

Ready to get structured data from 30+ platforms?

100 free credits. No credit card required.

Start Free