Ko-fi Comments API
A post's comment threads, with author details and one level of replies, 25 at a time.
GET /v1/ko-fi/posts/{slug}/comments1 credit Failed requests are free
About this endpoint
GET /v1/ko-fi/posts/{slug}/comments returns data.comments, 25 top-level comments a page, newest first as the post shows them. Each comment has id, text, author (id, name, handle, avatarUrl), postedAt, likes, parentId, replyTo and replies. A reply has the same author and text fields plus parentId and replyTo, and its own replies array is always empty because replies nest one level only. Replies are ordered oldest first. data.page.total counts all comments including replies when Ko-fi publishes a total.
Continue with page.nextCursor while page.hasMore is true. The offset is opaque and carries the post slug, so a cursor from another post is refused. A post with no comments is found with an empty list. A missing post is not_found.
Ko-fi Comments API FAQ
Are replies nested more than one level?
No. Ko-fi nests replies one level deep, and the API returns replies inline on each top-level comment. A reply's own replies array is always empty; deeper replies are not returned.
How do I tell an empty post from a missing post?
Read lookupStatus. A real post with no comments is found with comments: []. A missing post is not_found.
How is the page offset passed?
Use the opaque cursor from page.nextCursor. Do not build an offset yourself: the cursor carries the post slug and a fingerprint of the request, and a cursor issued for another post is refused with a 400 before any request.
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.
Other Ko-fi endpoints
- ProfileGET /v1/ko-fi/profiles/{handle}
- Top supportersGET /v1/ko-fi/profiles/{handle}/supporters
- Membership tiersGET /v1/ko-fi/profiles/{handle}/tiers
- PostsGET /v1/ko-fi/profiles/{handle}/posts
- PostGET /v1/ko-fi/posts/{slug}
- Shop itemsGET /v1/ko-fi/profiles/{handle}/shop
- Shop itemGET /v1/ko-fi/shop-items/{alias}
- CommissionsGET /v1/ko-fi/profiles/{handle}/commissions