Pick the surface by the shape of your question. “What is this community” is a profile lookup, “what is being said” is a post feed, “who is saying it” is a people export, and “where is this topic discussed” is keyword search. Reddit research fails most often not from bad collection but from asking one surface a question that belongs to another — sampling posts to guess at community size when the community profile states it as a number.
What does the community surface answer?
A subreddit profile call returns 47 structured fields for one community: subscriber count, description, access and content flags (galleries, polls, videos allowed), posting rules, and archiving behavior. One call, no pagination, no sampling error.
Use it for vetting and sizing: is this community large enough to matter, open enough to post in, and configured the way your research assumes. It answers nothing about current activity — a subreddit with a million subscribers and a dead front page profiles identically to a thriving one, which is exactly why the surfaces separate.
What does the post surface answer?
Post feeds return the community’s actual output: 43 fields per post covering engagement counts, flags, media, crosspost lineage and domains, with five sort orders — new, top, hot, rising, controversial — and optional bounded comment threads.
Sort order is a research decision, not a preference. New is the only unbiased sample of what gets submitted; top over a time window measures what the community rewarded; rising catches momentum early; controversial surfaces division that top actively hides. A claim like “this community discusses X often” needs new; “this community loves X” needs top. Mixing them silently changes the claim.
Comment inclusion roughly doubles depth per post, so bounded comment collection (a fixed cap per post) keeps runs predictable while still capturing how threads actually went.
What does the people surface answer?
Two different people questions, two different tools.
One known account: a user profile call returns 27 fields — karma split into post and comment, account age, employee and moderator flags, moderated communities, trophies — plus optionally up to 1,000 posts and 10,000 comments of history in the same run. That history is what turns “this account exists” into “this account has posted about this topic for three years”.
A community’s contributors: a members export lists activity-derived participants of a public subreddit as 24-field profiles. Activity-derived matters: the list comes from who recently posted and commented, so it describes the active core, not the subscriber roll. That is usually what audience research actually wants, and it is honest about what it is not — lurkers are invisible to it by construction.
What does keyword search answer?
Search inverts the direction: instead of starting from a community, it starts from a topic and returns matching posts across Reddit with the same engagement fields, filtered by sort and time window.
Two operational cautions from our own verification runs. A narrow query legitimately returns zero — “battery recycling” over one year came back empty while “python” returned instantly, and the empty result was correct, not broken. And search results tell you where discussion happened, which feeds the other surfaces: search finds the subreddits, the profile call vets them, the post feed measures them.
How do the surfaces combine?
The workflows that hold up chain them in that order:
- Search by topic → candidate communities where the conversation lives.
- Community profile each candidate → size, rules, and whether research-relevant content is even allowed there.
- Post feed the survivors with an explicit sort → the actual discourse, sampled the way your claim requires.
- People only where attribution matters → who drives the conversation, with account history as evidence.
Each step’s output is the next step’s input, and each carries source URLs, so any number in the final analysis traces back to specific rows from a specific surface with a specific sort — which is the difference between Reddit research and Reddit anecdotes.
Which mistakes show up most?
Three, repeatedly. Sampling posts to estimate community size (the profile states it; sampling adds error to a known number). Reading top as representative (it is the community’s highlight reel, curated by the community itself). And treating member exports as subscriber lists (they are active-contributor lists; the distinction changes every percentage built on them).
All three have the same root: using the surface you already collected instead of the surface the question needs. The surfaces are cheap enough that the extra call always costs less than the wrong conclusion.
Continue in the directory
Turn the guide into a real sample run.
Open the current AgentX contract, check pricing and fields, then validate a narrow output.