Skip to content

SocQAPI/reddit-subreddit-posts-api

Repository files navigation

Reddit Subreddit Posts API examples for SocQ

Reddit Subreddit Posts API API documentation License: MIT Check examples

Discover public Reddit posts from subreddit URLs sorted by new, top, or hot, returning content, authors, community context, media, and visible engagement as normalized records.

Try Reddit Subreddit Posts API · Get an API key · Documentation · All SocQ examples

Use cases

  • Community post monitoring: Collect the new listing and retain post IDs, created_at, collected_at, titles, and text to review recent public submissions across selected subreddits.
  • Subreddit topic research: Group titles, body text, flair, and community fields to examine recurring subjects and formats within defined public communities.
  • Aligned listing comparison: Use the same sort_by across subreddit URLs and compare publication times, upvotes_count, comments_count, and upvote_ratio under one listing mode.
  • Build recurring community snapshots: Run the same subreddit URLs and sorting mode on a schedule, then deduplicate by post ID and compare collection-time changes.

API behavior

  • Submit one or more public Reddit URLs using the exact /r/{subreddit} path.
  • results_limit defaults to 100, accepts 1 through 2,000, and applies separately to each subreddit URL.
  • sort_by accepts new, top, or hot; new is the default.
  • Post results can include visible comment counts but do not contain individual comment records.

All requests use the shared asynchronous flow:

submit -> task_id -> poll task -> read every cursor page -> save results

Quick start

cp .env.example .env
export SOCQ_API_KEY="your-api-key"

Run the complete Node.js workflow:

cd node
npm start

Run the complete Python workflow:

python3 -m pip install -r python/requirements.txt
python3 python/main.py

Both examples load payload.example.json, retry transient API responses, wait for task completion, read every cursor page, and save a paginated public subreddit-post dataset with aligned listing context to output/results.json.

Never expose SOCQ_API_KEY in browser code, mobile apps, public repositories, screenshots, fixtures, or logs.

Request

POST https://api.socq.ai/v1/reddit/subreddit-posts
Authorization: Bearer <SOCQ_API_KEY>
Content-Type: application/json
{
  "urls": [
    "https://www.reddit.com/r/example/"
  ],
  "results_limit": 100,
  "sort_by": "new"
}

The submit response contains data.task_id. Poll the task endpoint until data.status becomes succeeded or failed, then continue with data.results.next_cursor while data.results.has_more is true.

Complete workflow example

The Node.js and Python programs implement the production-shaped happy path:

  1. Load and validate configuration.
  2. Submit the endpoint-specific payload.
  3. Retry rate-pressure and transient server responses with bounded backoff.
  4. Poll the asynchronous task with a ten-minute application timeout.
  5. Stop cleanly on a failed task and surface the public error message.
  6. Read all cursor pages instead of silently returning only the first page.
  7. Write a stable JSON artifact containing task metadata and normalized records.

Use the synthetic files in fixtures/ for tests and documentation. They do not contain customer, account, or production data.

Production notes

See docs/production-notes.md for validation, retry, timeout, pagination, deduplication, logging, and endpoint-specific guidance.

Responsible use and platform scope

  • Use only publicly accessible Reddit posts, comments, subreddits, search results, and fields supported by the selected endpoint.
  • Do not use the examples to access private communities, restricted content, deleted content, login-only surfaces, or authentication controls.
  • SocQ is not an official API of the represented social platform and is not affiliated with or endorsed by that platform.
  • Before production use, assess the laws, platform terms, privacy obligations, and retention requirements that apply to your organization and use case.
  • Collect only the fields needed for a defined purpose, restrict access, set retention periods, and support correction or deletion workflows where required.
  • Platform names and trademarks belong to their respective owners.

This section describes the public-data boundary; it is not legal advice or a guarantee that every use case is permitted in every jurisdiction.

Repository contents

Path Purpose
curl/request.md Copy-paste submit, poll, and pagination requests
node/index.mjs Complete Node.js workflow
python/main.py Complete Python workflow
payload.example.json Safe endpoint-specific request body
fixtures/ Synthetic submit and task response shapes
docs/production-notes.md Production integration guidance

About

Complete cURL, Node.js, and Python examples for SocQ Reddit Subreddit Posts API.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors