Ko-fi Shop API
A creator's public shop items with prices, stock, images and audience, filtered by category or search term.
GET /v1/ko-fi/profiles/{handle}/shop1 credit Failed requests are free
About this endpoint
GET /v1/ko-fi/profiles/{handle}/shop returns data.items, up to 20 per page, with the creator's id, canonical handle, name and currency. Each item has id, alias, url, name, descriptionPreview, price, currency, images, soldOut, stockRemaining, soldCount, payWhatYouWant, requiresShipping, access, discountPercent and categoryIds. access is public, members or supporters.
Use query to search within the shop, category to keep one category id from categoryIds, and limit from 1 to 20 (default 12). Continue with page.nextCursor while page.hasMore is true. A creator with no shop returns found, currency: null and items: []. A missing creator returns not_found with null identity fields.
Ko-fi Shop API FAQ
How does hasMore know there is another page?
hasMore is false when the page ends exactly at the limit, so a shop with 12 items at limit 12 reports hasMore false and does not send you to an empty page.
How do I filter by category?
Read categoryIds from any item and pass one of those numbers as category. The filter is applied by the shop itself, so the page counts refer to the filtered list.
What is the difference between price and payWhatYouWant?
price is the listed amount, which can be 0 for a free item. payWhatYouWant is true when the buyer chooses the amount. Always read both fields instead of treating price 0 as a missing price.
How many credits does a shop 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 itemGET /v1/ko-fi/shop-items/{alias}
- CommissionsGET /v1/ko-fi/profiles/{handle}/commissions