Reddit Research
Reddit is a noisy public-discussion source, not a ground-truth database. Use it
to generate hypotheses, locate themes, and identify examples that can be
checked against independent evidence.
Access Order
- Check the current platform terms, developer documentation, and allowed use
before automating collection.
- Default to no-credential public endpoints for low-volume discovery: JSON
listing and thread URLs such as
/r/<community>/top.json?t=day&limit=25 or
/r/<community>/comments/<post_id>.json, and RSS feeds such as
/r/<community>/.rss.
- Keep no-credential polling bounded, cache-aware, and easy to disable.
- Use a descriptive user agent or app identity where the access path supports
it.
- Respect rate limits and back off on
429, 401, 403, and repeated 5xx
responses.
- Escalate to official API, OAuth, or an approved provider when public
endpoints are blocked, comments are unavailable, volume grows beyond light
polling, or the research becomes product-critical.
Verified Envelope
Public Reddit endpoints are not a stable contract. Validate current behavior
from the actual runtime network before treating the path as available.
A useful light-polling envelope is:
- a small allowlist of communities
- single-digit requests per run
- conservative cadence such as minutes or hours, not tight loops
- local caching keyed by URL and retrieval time
- graceful partial output when listing, thread, or RSS variants differ
If JSON listing or comment-tree endpoints return 403 from a datacenter or CI
network, record that as an access-path finding and fall back to RSS only for
feed-level discovery. RSS does not replace comment-tree ingestion. Escalate
when comments or reliable pagination are required.
Collection
- Define the research question, communities, time window, sort order, and
filters before pulling data.
- Capture post URL, post ID, comment ID, author display handle when available,
authored timestamp, retrieved timestamp, score fields, and permalink.
- Preserve deleted, removed, locked, quarantined, mature, and unavailable
states instead of silently dropping them.
- Avoid bulk republication of user content. Quote only the minimum needed for
verification and prefer short paraphrases with links.
- Treat vote scores, awards, and comments as engagement signals with caveats,
not as popularity truth.
Analysis
- Separate observation from interpretation.
- Label Reddit-derived outputs as sentiment, themes, objections, language, or
candidate hypotheses.
- Do not infer demographics, identity, or intent beyond what the source
directly supports.
- Watch for bots, coordinated activity, deleted context, sarcasm, stale posts,
and community-specific norms.
- Check high-value claims against independent sources before using them for
decisions.
Build Requirements
- Store raw fixtures from sanitized examples and test parsers against them.
- Make pagination, retry, rate-limit, unavailable-content, and schema-drift
behavior explicit.
- Emit structured logs and metrics for request count, status code, latency,
backoff, parse failures, and records produced.
- Add tracing spans around fetch, parse, normalize, and publish steps when
Reddit data feeds a product or automated decision.
- Keep credentials in the repository's established secret-management path.
Output Contract
Every research output should include:
- question and collection window
- communities and filters queried
- access path used
- source links and retrieval time
- caveats and known missing coverage
- confidence level and recommended next verification step
1---2name: reddit-research3description: Use when collecting Reddit discussion signals for research, trend discovery, or hypothesis generation. Requires terms-aware access, source lineage, rate-limit discipline, and clear uncertainty.4---56# Reddit Research78Reddit is a noisy public-discussion source, not a ground-truth database. Use it9to generate hypotheses, locate themes, and identify examples that can be10checked against independent evidence.1112## Access Order1314- Check the current platform terms, developer documentation, and allowed use15 before automating collection.16- Default to no-credential public endpoints for low-volume discovery: JSON17 listing and thread URLs such as `/r/<community>/top.json?t=day&limit=25` or18 `/r/<community>/comments/<post_id>.json`, and RSS feeds such as19 `/r/<community>/.rss`.20- Keep no-credential polling bounded, cache-aware, and easy to disable.21- Use a descriptive user agent or app identity where the access path supports22 it.23- Respect rate limits and back off on `429`, `401`, `403`, and repeated `5xx`24 responses.25- Escalate to official API, OAuth, or an approved provider when public26 endpoints are blocked, comments are unavailable, volume grows beyond light27 polling, or the research becomes product-critical.2829## Verified Envelope3031Public Reddit endpoints are not a stable contract. Validate current behavior32from the actual runtime network before treating the path as available.3334A useful light-polling envelope is:3536- a small allowlist of communities37- single-digit requests per run38- conservative cadence such as minutes or hours, not tight loops39- local caching keyed by URL and retrieval time40- graceful partial output when listing, thread, or RSS variants differ4142If JSON listing or comment-tree endpoints return `403` from a datacenter or CI43network, record that as an access-path finding and fall back to RSS only for44feed-level discovery. RSS does not replace comment-tree ingestion. Escalate45when comments or reliable pagination are required.4647## Collection4849- Define the research question, communities, time window, sort order, and50 filters before pulling data.51- Capture post URL, post ID, comment ID, author display handle when available,52 authored timestamp, retrieved timestamp, score fields, and permalink.53- Preserve deleted, removed, locked, quarantined, mature, and unavailable54 states instead of silently dropping them.55- Avoid bulk republication of user content. Quote only the minimum needed for56 verification and prefer short paraphrases with links.57- Treat vote scores, awards, and comments as engagement signals with caveats,58 not as popularity truth.5960## Analysis6162- Separate observation from interpretation.63- Label Reddit-derived outputs as sentiment, themes, objections, language, or64 candidate hypotheses.65- Do not infer demographics, identity, or intent beyond what the source66 directly supports.67- Watch for bots, coordinated activity, deleted context, sarcasm, stale posts,68 and community-specific norms.69- Check high-value claims against independent sources before using them for70 decisions.7172## Build Requirements7374- Store raw fixtures from sanitized examples and test parsers against them.75- Make pagination, retry, rate-limit, unavailable-content, and schema-drift76 behavior explicit.77- Emit structured logs and metrics for request count, status code, latency,78 backoff, parse failures, and records produced.79- Add tracing spans around fetch, parse, normalize, and publish steps when80 Reddit data feeds a product or automated decision.81- Keep credentials in the repository's established secret-management path.8283## Output Contract8485Every research output should include:8687- question and collection window88- communities and filters queried89- access path used90- source links and retrieval time91- caveats and known missing coverage92- confidence level and recommended next verification step