The Problem
Reddit is the richest source of unfiltered audience questions, pain points, and use cases, but monitoring it manually does not scale. A human can check maybe five subreddits per day, skim a few dozen posts, and note interesting topics. That covers maybe two percent of the relevant discussions. The gap between what your audience is actively discussing and what your content calendar addresses grows every week. By the time a topic appears in your keyword research tool, someone else already published the definitive post.
The Scavio Solution
Scavio's Reddit search endpoint returns structured discussion data with titles, upvote counts, comment counts, and subreddit context. You build a daily pipeline that searches for your topic keywords across Reddit, scores posts by engagement, and surfaces the highest-signal discussions as content briefs. The structured output feeds into content planning tools or generates brief documents automatically. You cover the full breadth of audience discussions instead of the narrow slice one human can manually monitor.
Before
Before Scavio, Reddit monitoring was a manual daily task that covered a fraction of relevant discussions. Content ideas arrived late, after competitors had already published on the same topics.
After
After Scavio, a daily automated pipeline surfaces the highest-engagement Reddit discussions in your niche. Content briefs generate automatically, and the team publishes on trending topics before the competition.
Who It Is For
Content marketers and SEO teams who want to mine Reddit for content ideas at scale. Anyone who manually browses subreddits for inspiration and wishes it was automated into a repeatable pipeline.
Key Benefits
- Structured Reddit discussion data with engagement metrics
- Daily automated monitoring across unlimited subreddits and keywords
- Engagement scoring surfaces highest-signal content opportunities
- Auto-generated content briefs from top discussions
- Covers the full breadth of audience conversations at scale
Python Example
import requests
import json
from pathlib import Path
from datetime import datetime
API_KEY = "your_scavio_api_key"
def search_reddit(keyword: str) -> list[dict]:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "reddit", "query": keyword},
timeout=15,
)
res.raise_for_status()
return res.json().get("organic", [])
def content_pipeline(keywords: list[str], min_score: int = 10) -> list[dict]:
opportunities = []
for kw in keywords:
posts = search_reddit(kw)
for post in posts:
score = post.get("score", 0)
comments = post.get("comments", 0)
if score >= min_score:
opportunities.append({
"keyword": kw,
"title": post.get("title", ""),
"subreddit": post.get("subreddit", ""),
"score": score,
"comments": comments,
"link": post.get("link", ""),
"content_angle": post.get("snippet", "")[:150],
})
# Sort by engagement signal
opportunities.sort(key=lambda x: x["score"] + x["comments"], reverse=True)
return opportunities[:20]
keywords = ["search api for developers", "web scraping frustration", "SERP data"]
results = content_pipeline(keywords)
output = Path(f"content_briefs_{datetime.utcnow().strftime('%Y-%m-%d')}.json")
output.write_text(json.dumps(results, indent=2))
print(f"Generated {len(results)} content briefs")
for r in results[:5]:
print(f" [{r['subreddit']}] {r['title']} (score: {r['score']})")JavaScript Example
const API_KEY = "your_scavio_api_key";
async function searchReddit(keyword) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform: "reddit", query: keyword }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return (await res.json()).organic ?? [];
}
async function contentPipeline(keywords, minScore = 10) {
const opportunities = [];
for (const kw of keywords) {
const posts = await searchReddit(kw);
for (const post of posts) {
const score = post.score ?? 0;
const comments = post.comments ?? 0;
if (score >= minScore) {
opportunities.push({
keyword: kw,
title: post.title ?? "",
subreddit: post.subreddit ?? "",
score,
comments,
link: post.link ?? "",
contentAngle: (post.snippet ?? "").slice(0, 150),
});
}
}
}
return opportunities.sort((a, b) => (b.score + b.comments) - (a.score + a.comments)).slice(0, 20);
}
const keywords = ["search api for developers", "web scraping frustration", "SERP data"];
const results = await contentPipeline(keywords);
const fs = await import("fs/promises");
await fs.writeFile(`content_briefs_${new Date().toISOString().slice(0, 10)}.json`, JSON.stringify(results, null, 2));
console.log(`Generated ${results.length} content briefs`);
for (const r of results.slice(0, 5)) console.log(` [${r.subreddit}] ${r.title} (score: ${r.score})`);Platforms Used
Community, posts & threaded comments from any subreddit