The Pullbay Reddit API provides programmatic access to Reddit posts, comments, users, and subreddits. Search posts by keyword, pull a post's comment tree (and replies to any comment), look up a user's profile and their posts/comments, and look up a subreddit's profile and its posts — all without a Reddit account or OAuth app of your own.
Base URL: https://api.pullbay.com
Overview
The Reddit service lets you:
Search Reddit posts by keyword
Look up a single post by its ID
Fetch the comment tree on a post, and replies to any individual comment
Look up a Reddit user's profile, plus the posts and comments they've authored
Look up a subreddit's profile and the posts submitted to it
All endpoints are read-only GET requests against public Reddit data.
Common Use Cases
Topic Monitoring — Use Search Posts on a schedule to track new discussion of a keyword, brand, or product across all of Reddit.
Community Research — Pull a subreddit's profile and recent posts to understand its size, rules, and the kind of content that performs well there.
Sentiment & Discussion Analysis — Fetch a post's comment tree (and drill into replies) to mine opinions, objections, and recurring questions around a topic.
Influencer / Contributor Tracking — Use Get User Posts and Get User Comments to see everything a specific Redditor has published, useful for vetting contributors or tracking a known voice in a community.
Competitive & Market Intelligence — Combine Search Posts with Get Subreddit Posts to see how a topic is discussed both broadly and within a specific community.
Endpoints
GET /reddit/search/post
Search Reddit posts by keyword
Cursor / maxItems
GET /reddit/post/{id}
Get a single post by ID
—
GET /reddit/post/{id}/comments
Get the top-level comments on a post
—
GET /reddit/post/{id}/comments/{commentId}/replies
Get replies to a comment
—
GET /reddit/user/{username}
Get a user profile by username
—
GET /reddit/user/{username}/posts
Get posts submitted by a user
Cursor / maxItems
GET /reddit/user/{username}/comments
Get comments authored by a user
Cursor / maxItems
GET /reddit/subreddit/{name}
Get a subreddit profile
—
GET /reddit/subreddit/{name}/posts
Get posts from a subreddit
Cursor / maxItems
Search Posts
Search Reddit posts by keyword.
Request
Parameters
keyword
string
Yes
—
Search term, 1–100 characters
sort
string
No
—
relevance, hot, top, new, or comments
maxItems
integer
No
—
One-shot bulk pull, 1–200 results. Mutually exclusive with cursor
cursor
string
No
—
Pagination cursor from a previous response, 1–100 characters. Mutually exclusive with maxItems
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged. No published flat rate.
Get Post
Returns a single Reddit post by its ID.
Request
Parameters
id
string (path)
Yes
—
Post ID, 1–32 characters. Substitute directly into the URL path
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Note: this endpoint's response has no pagination field and accepts no sort parameter.
Credit cost: dynamic, returned in pricing.creditsCharged.
Get Post Comments
Returns the top-level comment tree for a Reddit post.
Request
Parameters
id
string (path)
Yes
—
Post ID, 1–32 characters. Substitute directly into the URL path
sort
string
No
—
best, top, new, controversial, old, or qa
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Note: despite returning an array of comments, this endpoint's response has no pagination field — the full top-level comment tree is returned in one call.
Credit cost: dynamic, returned in pricing.creditsCharged.
Get Comment Replies
Returns replies to a specific comment on a Reddit post.
Request
Parameters
id
string (path)
Yes
—
Post ID, 1–32 characters. Substitute directly into the URL path
commentId
string (path)
Yes
—
Comment ID, 1–32 characters. Substitute directly into the URL path
sort
string
No
—
best, top, new, controversial, old, or qa
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Note: this endpoint's response also has no pagination field.
Credit cost: dynamic, returned in pricing.creditsCharged.
Get User
Returns a Reddit user profile by username (without u/).
Request
Parameters
username
string (path)
Yes
—
Reddit username without the u/ prefix, 1–100 characters. Substitute directly into the URL path
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Note: this endpoint's response has no pagination field and accepts no sort parameter.
Credit cost: dynamic, returned in pricing.creditsCharged.
Get User Posts
Returns posts submitted by a Reddit user.
Request
Parameters
username
string (path)
Yes
—
Reddit username without the u/ prefix, 1–100 characters. Substitute directly into the URL path
sort
string
No
—
hot, top, or new
maxItems
integer
No
—
One-shot bulk pull, 1–200 results. Mutually exclusive with cursor
cursor
string
No
—
Pagination cursor from a previous response, 1–100 characters. Mutually exclusive with maxItems
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged.
Get User Comments
Returns comments authored by a Reddit user.
Request
Parameters
username
string (path)
Yes
—
Reddit username without the u/ prefix, 1–100 characters. Substitute directly into the URL path
sort
string
No
—
hot, top, or new
maxItems
integer
No
—
One-shot bulk pull, 1–200 results. Mutually exclusive with cursor
cursor
string
No
—
Pagination cursor from a previous response, 1–100 characters. Mutually exclusive with maxItems
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged.
Get Subreddit
Returns a subreddit profile by its name (without r/).
Request
Parameters
name
string (path)
Yes
—
Subreddit name without the r/ prefix, 1–100 characters. Substitute directly into the URL path
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Note: this endpoint's response has no pagination field and accepts no sort parameter.
Credit cost: dynamic, returned in pricing.creditsCharged.
Get Subreddit Posts
Returns posts from a subreddit.
Request
Parameters
name
string (path)
Yes
—
Subreddit name without the r/ prefix, 1–100 characters. Substitute directly into the URL path
sort
string
No
—
hot, top, or new
maxItems
integer
No
—
One-shot bulk pull, 1–200 results. Mutually exclusive with cursor
cursor
string
No
—
Pagination cursor from a previous response, 1–100 characters. Mutually exclusive with maxItems
Example
Response
Response Schema
pricing.creditsCharged
number
Credits charged for this request
Credit cost: dynamic, returned in pricing.creditsCharged.
Errors
All non-2xx responses share the same envelope:
400
Bad request — missing/invalid parameters
402
Insufficient credits
404
Post, comment, user, or subreddit not found
Object Schema
Post object
type
string
Always post
id
string
Post ID
title
string
Post title
text
string
Self-text body (empty for link posts)
textHTML
string
Rendered HTML of the self-text body
url
string
Relative permalink to the post
created
integer (unix seconds)
Submission timestamp
editedAt
integer or boolean
Edit timestamp, or false if never edited
score
integer
Net score (upvotes minus downvotes)
upvotes / downvotes
integer
Vote counts
upvoteRatio
number
Fraction of votes that are upvotes
numComments
integer
Total comment count
viewCount
integer, nullable
View count, when available
goldCount
integer
Number of Reddit Gold awards
numCrossposts
integer
Number of crossposts of this post
isLocked / isStickied / isArchived
boolean
Moderation/state flags
isOriginalContent / isCrosspostable
boolean
Content flags
isNSFW / isSpoiler / isMediaOnly / isSponsored / isMeta / isGildable / isScoreHidden / contestMode / hidden
boolean
Additional content/state flags
sendReplies
boolean
Whether the author allows reply notifications
flair
object, nullable
Link flair, when set
thumbnail
object
Thumbnail image metadata
preview
object
Preview image/media metadata
awards
array
Awards given to the post
flairs
array
Available flair templates
gallery
array
Gallery media items, for gallery posts
crosspostParents
array
Parent post(s), for crossposts
Comment object
type
string
Always comment
id
string
Comment ID
postId
string
Fullname of the post the comment belongs to
parentId
string
Fullname of the parent (post or comment)
body
string
Comment text
bodyHTML
string
Rendered HTML of the comment text
url
string
Relative permalink to the comment
createdAt
integer (unix seconds)
When the comment was posted
editedAt
integer or boolean
Edit timestamp, or false if never edited
score
integer
Net score (upvotes minus downvotes)
upvotes / downvotes
integer
Vote counts
goldCount
integer
Number of Reddit Gold awards
totalAwardsReceived
integer
Total awards received
controversiality
integer
Reddit's controversiality flag (0 or 1)
isLocked / isStickied / isArchived / isSaved / isScoreHidden / isCollapsed
boolean
Moderation/state flags
noFollow
boolean
Whether links in the comment are nofollow
sendReplies
boolean
Whether the author allows reply notifications
hasReplies
boolean
Whether this comment has reply comments
awards
array
Awards given to the comment
User object
type
string
Always user
id
string
User ID (without t2_ prefix)
name
string
Username
title
string
Profile title (often same as username)
description
string
Profile bio/description
createdAt
integer (unix seconds)
Account creation timestamp
iconImage
string
Avatar image URL
snoovatarImage
string
Snoovatar image URL, if set
bannerImage
string
Profile banner image URL
awarderKarma
integer
Karma earned from giving awards
postKarma
integer
Karma earned from posts
commentKarma
integer
Karma earned from comments
totalKarma
integer
Combined karma total
hasVerifiedEmail
boolean
Whether the account has a verified email
over18
boolean
Whether the account is marked NSFW
Subreddit object
type
string
Always subreddit
id
string
Subreddit ID (without t5_ prefix)
name
string
Subreddit name (without r/)
prefixedName
string
Subreddit name with r/ prefix
title
string
Subreddit title
subType
string
Subreddit visibility type (e.g. public)
description / descriptionHtml
string
Sidebar description, plain and HTML
publicDescription / publicDescriptionHtml
string
Short public description, plain and HTML
submitText / submitTextHtml
string, nullable
Text shown on the submit page
submissionType
string
Allowed submission type (e.g. link, self, any)
advertiserCategory
string
Ad category classification
language
string
Subreddit's primary language code
url
string
Relative URL to the subreddit
headerTitle
string
Header link title
iconImage / iconSize
string / array, nullable
Icon image URL and dimensions
bannerImage / bannerBackgroundImage / bannerSize
string / array, nullable
Banner images and dimensions
headerImage / headerSize
string / array
Header image URL and dimensions
primaryColor / keyColor
string
Theme colors
createdAt
integer (unix seconds)
Subreddit creation timestamp
subscribers
integer
Subscriber count
commentScoreHideMins
integer
Minutes comment scores are hidden after posting
notificationLevel / suggestedCommentSort
string, nullable
User-specific notification setting and suggested sort
userFlairEnabled / linkFlairEnabled
boolean
Flair feature flags
wikiEnabled / emojisEnabled / spoilersEnabled
boolean
Feature flags
allowImages / allowVideos / allowGalleries / allowPolls / allowPredictions / allowTalks
boolean
Allowed content type flags
allowDiscovery / isCrosspostable / publicTraffic
boolean
Discovery and traffic flags
showMediaPreview / showMedia
boolean
Media display settings
collapseDeletedComments / shouldArchivePosts
boolean
Moderation settings
canAssignUserFlair / canAssignLinkFlair
boolean
Flair assignment permissions
restrictCommenting / restrictPosting
boolean
Posting/commenting restrictions
communityReviewed
boolean
Whether the subreddit has passed community review
flairPosition / linkFlairPosition
string
Flair display position (e.g. right)
Author object
Embedded in Post and Comment objects as the author field.
id
string
Author's user ID (fullname, e.g. t2_1w72)
username
string
Author's username
isBlocked
boolean
Whether the author is blocked by the requesting context
isDeleted
boolean
Whether the author's account has been deleted
Subreddit Reference object
Embedded in Post and Comment objects as the subreddit field.
id
string
Subreddit ID (fullname, e.g. t5_2fwo)
name
string
Subreddit name (without r/)
prefixedName
string
Subreddit name with r/ prefix
type
string
Subreddit visibility type (e.g. public)
Finding Post and Comment IDs
Post ID: the alphanumeric segment in a Reddit URL, e.g.
https://reddit.com/r/learnprogramming/comments/1qclvp3/...→1qclvp3.Comment ID: the alphanumeric segment after the post ID in a comment permalink, e.g.
.../comments/1t0jood/some_title/ojb40kw/→ojb40kw.Username: the part after
u/in a profile URL, e.g.https://reddit.com/u/spez→spez. Pass it without theu/prefix.Subreddit name: the part after
r/in a subreddit URL, e.g.https://reddit.com/r/programming→programming. Pass it without ther/prefix.The Search Posts endpoint is the fastest way to discover post IDs for a topic without already knowing a permalink.
Sort Values Reference
The sort parameter is not a single global enum — it has three different, non-overlapping value sets depending on which endpoint you're calling. Using a value from the wrong scope (e.g. passing qa to Search Posts, or relevance to Get Subreddit Posts) is invalid.
Scope A — Search Posts only
Endpoint: GET /reddit/search/post
Values: relevance, hot, top, new, comments
This scope is unique to the search endpoint and is not valid anywhere else.
Scope B — Comment-fetching endpoints
Endpoints: GET /reddit/post/{id}/comments and GET /reddit/post/{id}/comments/{commentId}/replies
Values: best, top, new, controversial, old, qa
This scope applies only to the two endpoints that return comments. It is not valid for post-search or for the "list by user/subreddit" endpoints below.
Scope C — "List by user/subreddit" endpoints
Endpoints: GET /reddit/user/{username}/posts, GET /reddit/user/{username}/comments, GET /reddit/subreddit/{name}/posts
Values: hot, top, new
This scope is shared by the three endpoints that list a user's or subreddit's posts/comments. Note that top and new happen to overlap in name with values from Scope A and Scope B, but each endpoint only accepts the values listed in its own scope above — overlap in spelling does not mean the scopes are interchangeable.
GET /reddit/search/post
A
relevance, hot, top, new, comments
GET /reddit/post/{id}/comments
B
best, top, new, controversial, old, qa
GET /reddit/post/{id}/comments/{commentId}/replies
B
best, top, new, controversial, old, qa
GET /reddit/user/{username}/posts
C
hot, top, new
GET /reddit/user/{username}/comments
C
hot, top, new
GET /reddit/subreddit/{name}/posts
C
hot, top, new
The remaining three endpoints (GET /reddit/post/{id}, GET /reddit/user/{username}, GET /reddit/subreddit/{name}) take no sort parameter at all — each returns a single resource, not a list.
Python Example
This example searches for posts matching a keyword and pages through results using cursor, stopping when no further cursor is returned:
Each request is billed independently, with the charged amount reported in that response's pricing.creditsCharged.
FAQ
Next Steps
API Integration Guide — integrate the Pullbay API into your backend application.
n8n Integration Guide — set up automated workflows using n8n with no coding required.
Services Overview — explore all available Pullbay services.
Last updated