Reddit workflow

How to search Reddit posts by keyword

A practical, source-aware workflow for collecting public Reddit posts without pretending an archive is live Reddit.

Use this workflow when you need a bounded set of public Reddit posts for market research, problem discovery, community monitoring, or an AI retrieval dataset. Start with a narrow question and one subreddit; broaden only after checking the output.

What it returns

Each normalized record includes the post ID, title, subreddit, author, permalink, external destination when present, timestamp, self-post classification, text content, and available engagement metadata.

Source boundary: the Actor makes one fast Reddit Atom request, then can use Arctic Shift and PullPush archives. Archive coverage may lag live Reddit and may include posts that were later removed. Archive ordering is newest-first rather than a perfect reproduction of Reddit relevance, hot, or top ranking.

A useful first input

export APIFY_TOKEN="your_token"
curl -X POST \
  "https://api.apify.com/v2/acts/northglasslabs~reddit-post-search/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQuery":"python","maxResults":25,"sortBy":"new","timeFilter":"month"}' 

Python

import requests
payload = {"searchQuery": "python", "maxResults": 25, "sortBy": "new", "timeFilter": "month"}
items = requests.post(
    "https://api.apify.com/v2/acts/northglasslabs~reddit-post-search/run-sync-get-dataset-items",
    params={"token": "YOUR_APIFY_TOKEN"}, json=payload, timeout=300,
).json()
print(items[0]["title"] if items else "No verified posts")

JavaScript

const input = { searchQuery: "python", maxResults: 25, sortBy: "new", timeFilter: "month" };
const response = await fetch("https://api.apify.com/v2/acts/northglasslabs~reddit-post-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN", {
  method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(input)
});
const posts = await response.json();
console.log(posts.map(({ title, permalink }) => ({ title, permalink })));

n8n HTTP Request recipe

1

Add an HTTP Request node with method POST and the synchronous dataset-items endpoint shown above.

2

Store the Apify token in n8n credentials or an environment variable; do not paste it into a shared workflow export.

3

Send the JSON input and connect the returned items to Airtable, Google Sheets, Notion, or your vector-store ingestion step.

Cost

Start$0.02
Free-tier result$0.00275
Minimum run limit$0.04

At current Free-tier event pricing, 25 stored results plus the start event is approximately $0.08875. Actual charges depend on records stored, the user’s Apify tier, and the run spending limit. Check the live Store listing before budgeting production schedules.

Research discipline

Run Reddit Post Search on Apify