For the complete documentation index, see llms.txt. This page is also available as Markdown.

Reddit

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

Endpoint
Description
Pagination

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

Parameter
Type
Required
Default
Description

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

Field
Type
Description

data

array

Array of Post objects

pagination

object

Pagination info — see Sort Values Reference note below for cursor usage

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

Parameter
Type
Required
Default
Description

id

string (path)

Yes

—

Post ID, 1–32 characters. Substitute directly into the URL path

Example

Response

Response Schema

Field
Type
Description

data

array

Array containing a single Post object

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

Parameter
Type
Required
Default
Description

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

Field
Type
Description

data

array

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

Parameter
Type
Required
Default
Description

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

Field
Type
Description

data

array

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

Parameter
Type
Required
Default
Description

username

string (path)

Yes

—

Reddit username without the u/ prefix, 1–100 characters. Substitute directly into the URL path

Example

Response

Response Schema

Field
Type
Description

data

array

Array containing a single User object

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

Parameter
Type
Required
Default
Description

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

Field
Type
Description

data

array

Array of Post objects

pagination

object

Pagination info — see Sort Values Reference note below for cursor usage

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

Parameter
Type
Required
Default
Description

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

Field
Type
Description

data

array

pagination

object

Pagination info — see Sort Values Reference note below for cursor usage

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

Parameter
Type
Required
Default
Description

name

string (path)

Yes

—

Subreddit name without the r/ prefix, 1–100 characters. Substitute directly into the URL path

Example

Response

Response Schema

Field
Type
Description

data

array

Array containing a single Subreddit object

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

Parameter
Type
Required
Default
Description

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

Field
Type
Description

data

array

Array of Post objects

pagination

object

Pagination info — see Sort Values Reference note below for cursor usage

pricing.creditsCharged

number

Credits charged for this request

Credit cost: dynamic, returned in pricing.creditsCharged.


Errors

All non-2xx responses share the same envelope:

Status
Meaning

400

Bad request — missing/invalid parameters

402

Insufficient credits

404

Post, comment, user, or subreddit not found

Object Schema

Post object

Field
Type
Description

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

author

object

subreddit

object

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

Field
Type
Description

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

author

object

subreddit

object

awards

array

Awards given to the comment

User object

Field
Type
Description

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

Field
Type
Description

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.

Field
Type
Description

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.

Field
Type
Description

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 the u/ prefix.

  • Subreddit name: the part after r/ in a subreddit URL, e.g. https://reddit.com/r/programming → programming. Pass it without the r/ 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.

Endpoint
Sort scope
Accepted values

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

Why does sort accept different values on different endpoints?

Reddit itself exposes different sort orders for search results, comment threads, and post/comment listings — Pullbay passes these through as-is rather than normalizing them into one shared list. See Sort Values Reference for the exact values per endpoint.

Can I paginate the comment or comment-replies endpoints?

No. GET /reddit/post/{id}/comments and GET /reddit/post/{id}/comments/{commentId}/replies return their full result in a single response with no pagination field — there's nothing to page through.

How do I get more than 200 results from a list endpoint?

maxItems is capped at 200 per call. For more, use cursor-based pagination across multiple requests instead of maxItems.

Can I use cursor and maxItems together?

No, they're mutually exclusive on every endpoint that supports them. Use cursor to page manually or maxItems for a single bulk pull, not both in the same request.

What's the credit cost per request?

It's dynamic — every response includes pricing.creditsCharged with the exact amount for that call. There's no fixed published rate per endpoint.

Do I need a Reddit account or API credentials from Reddit?

No. All endpoints return public Reddit data through Pullbay — you only need your Pullbay API key.

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