Skip to main content

Reddit

The Reddit connector exposes two endpoints:

EndpointPurposeBilled
GET /v1/reddit/searchKeyword search across Reddit, optionally scoped to a subredditper page
GET /v1/reddit/thread/{post_id}A full thread — the post plus its nested comment treeper page

Post identifiers​

A thread is identified by its post id — the short base-36 code in a comment URL. The API accepts any of these forms and normalises them:

https://www.reddit.com/r/Switzerland/comments/1n8xyz/some_title/
└────┘
post_id = 1n8xyz
  • Bare id — 1n8xyz
  • Fullname — t3_1n8xyz
  • Permalink — /r/Switzerland/comments/1n8xyz/some_title/
  • Full URL — https://www.reddit.com/r/Switzerland/comments/1n8xyz/...

Post types​

typeMeaning
textSelf / text post (selftext populated)
linkOutbound link post
imageSingle image
galleryMulti-image gallery
videoReddit-hosted or embedded video
unknownType could not be determined

Engagement vocabulary​

Reddit's metric names are surfaced under stable keys:

FieldReddit meaning
scoreNet score (ups − downs)
upsUpvotes
downsDownvotes (Reddit usually reports 0)
upvote_ratioFraction of votes that are upvotes (posts only)
num_commentsComment count on the post
num_crosspostsTimes the post was crossposted
controversialityReddit's controversiality flag (comments only)
total_awards_receivedAwards on the item
Why some fields are null or 0

Reddit omits or zeroes some metrics (notably downs, and vote counts on archived or vote-fuzzed items). Missing fields are returned as null rather than dropped, so your schema stays stable.

Latency & reliability​

  • The first request after a quiet period may be slower; subsequent requests are faster.
  • Occasional 429 upstream_rate_limited responses indicate a transient block — retry with backoff and it will clear. See Errors.
  • Very large max_pages values run many sequential fetches; prefer modest page counts and paginate over multiple calls for big pulls.