Ko-fi Gallery API
A creator's public gallery tiles, 20 at a time, with the image and how many images each item holds.
GET /v1/ko-fi/profiles/{handle}/gallery1 credit Failed requests are free
About this endpoint
GET /v1/ko-fi/profiles/{handle}/gallery returns data.items, 20 tiles a page, with the creator's id, canonical handle and name. Each tile has id, title, image (url, alt), access and imageCount. access is restricted for a locked tile, whose image is null because only a placeholder is public. The tile id is the gallery item id, so you can pass it to GET /v1/ko-fi/gallery-items/{id} for the full item, its description, owner and likes.
Continue with the opaque cursor from page.nextCursor while page.hasMore is true. The page block uses start rather than page because the gallery is an offset list. A creator with no gallery returns found and an empty list; a missing creator returns not_found. A tile with imageCount greater than 1 shows a multi-image badge, and the single item route returns every image.
Ko-fi Gallery API FAQ
How do I get the full gallery item?
Take the tile id from data.items[].id and call GET /v1/ko-fi/gallery-items/{id}. That route returns the description, owner, relative time, every image with its high-resolution URL, and the like count.
How does gallery paging differ from posts?
The gallery is an offset list, so data.page.start is the offset and data.page.page is null. Posts, shop and commissions use a zero-based page number instead. In both cases, follow data.page.nextCursor while hasMore is true.
Why is imageCount always at least 1?
Every gallery tile points at a gallery item with at least one image. The schema enforces a minimum of 1, and the count is the multi-image badge when the tile has one.
How many credits does a gallery 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}
- CommentsGET /v1/ko-fi/posts/{slug}/comments
- Shop itemsGET /v1/ko-fi/profiles/{handle}/shop
- Shop itemGET /v1/ko-fi/shop-items/{alias}