Gumroad hub

Gumroad Post Comments API

A Gumroad post's comments with their replies, 20 top-level comments per page.

GET /v1/gumroad/post/comments

1 credit Failed requests are free

About this endpoint

GET /v1/gumroad/post/comments takes a postId and the creator whose storefront served the post, plus page or a cursor. It answers { data, meta } with data.lookupStatus, data.postId, data.creator, data.comments and data.page.

Each comment has id, parentId, depth, body, bodyHtml, author and postedAt. author carries the public display name and avatar. Replies are inline under their parent, and depth is 0 for a top-level comment and higher for a reply. The list is 20 top-level comments per page, so use page.hasMore, page.nextCursor and page.totalItems. data.creator is the username you sent, echoed, not checked against the post's real creator.

An unknown post answers not_found. A page past the last one is a valid empty page, and a post with comments turned off also returns an empty list. The route does not expose the numeric commenter id or the purchase id.

Gumroad Post Comments API FAQ

Where do I get the post id?

Read data.post.id from the post route, or id from data.posts[] on the creator posts route. It is an opaque id, not the slug.

Are replies a separate call?

No. Replies are inline under their parent comment with a parentId and a depth, so one page carries the thread shape. The list pages on top-level comments, 20 per page.

Is an empty page an error?

No. A page past the last one, or a post with no comments, returns found with an empty comments array. Check page.hasMore before making another call.

Which identity fields are exposed?

Each comment has an id, public author display name and avatar, body, postedAt, parentId and depth. Numeric commenter and purchase ids are deliberately not exposed.

How many credits does a comments page cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth. Each paginated page is a separate billed request.