Google AI Overviews increasingly cite Reddit posts as sources, making Reddit a high-value channel for brand visibility in AI search results. Tracking which Reddit posts get cited in AI Overviews helps you understand what content formats and subreddits Google favors. This tutorial shows how to monitor AI Overview citations for your target keywords, filter for Reddit sources, and track citation patterns over time. You will build a pipeline that identifies Reddit-sourced AI Overview citations and alerts you to changes.
Prerequisites
- Python 3.8+ installed
- requests library installed
- A Scavio API key from scavio.dev
- A list of target keywords to monitor
Walkthrough
Step 1: Define monitoring keywords
Set up the keywords you want to track for Reddit citations in AI Overviews.
import os, requests, json
from datetime import date
API_KEY = os.environ["SCAVIO_API_KEY"]
KEYWORDS = [
"best CRM for startups",
"how to automate sales outreach",
"cold email tools comparison",
"saas lead generation strategy",
]Step 2: Check AI Overviews for Reddit citations
Query each keyword and filter AI Overview sources for Reddit URLs.
def check_reddit_citations(keyword):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": keyword})
data = resp.json()
aio = data.get("ai_overview", {})
sources = aio.get("sources", []) if aio else []
reddit_sources = [s for s in sources if "reddit.com" in s.get("link", "")]
return {
"keyword": keyword,
"has_ai_overview": bool(aio),
"total_sources": len(sources),
"reddit_citations": len(reddit_sources),
"reddit_urls": [s.get("link", "") for s in reddit_sources],
"date": date.today().isoformat(),
}Step 3: Build the citation report
Run checks across all keywords and generate a summary report.
def build_report(keywords):
results = [check_reddit_citations(kw) for kw in keywords]
total_aio = sum(1 for r in results if r["has_ai_overview"])
total_reddit = sum(r["reddit_citations"] for r in results)
return {
"date": date.today().isoformat(),
"keywords_checked": len(results),
"keywords_with_aio": total_aio,
"total_reddit_citations": total_reddit,
"details": results,
}
report = build_report(KEYWORDS)
print(f"Reddit citations: {report['total_reddit_citations']}")Step 4: Store and compare reports
Save reports for trend tracking and detect changes in Reddit citation frequency.
def save_report(report):
path = f"reddit_aio_{report['date']}.json"
with open(path, "w") as f:
json.dump(report, f, indent=2)
print(f"Saved to {path}")
def detect_changes(current, prev_path):
with open(prev_path) as f:
prev = json.load(f)
return {
"reddit_citation_change": current["total_reddit_citations"] - prev["total_reddit_citations"],
"aio_coverage_change": current["keywords_with_aio"] - prev["keywords_with_aio"],
}
save_report(report)Python Example
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def reddit_citations(keyword):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": keyword})
aio = resp.json().get("ai_overview", {})
sources = aio.get("sources", []) if aio else []
return [s["link"] for s in sources if "reddit.com" in s.get("link", "")]
print(reddit_citations("best CRM for startups"))JavaScript Example
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function redditCitations(keyword) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: keyword})
});
const aio = (await r.json()).ai_overview || {};
return (aio.sources || []).filter(s => (s.link||"").includes("reddit.com"));
}
redditCitations("best CRM for startups").then(console.log);Expected Output
A tracking report showing which Reddit posts are cited in AI Overviews for your target keywords, with trend data for monitoring citation changes over time.