Ko-fi hub

Ko-fi Commissions API

A creator's public commission listings with previews, waitlist flags and membership requirements.

GET /v1/ko-fi/profiles/{handle}/commissions

1 credit Failed requests are free

About this endpoint

GET /v1/ko-fi/profiles/{handle}/commissions returns data.items, up to 20 per page, with the creator's id, canonical handle, name and currency. Each commission has the shop item fields (id, alias, url, name, descriptionPreview, price, images, soldOut, stockRemaining, soldCount, payWhatYouWant, requiresShipping, access, discountPercent, categoryIds) plus addOns, previews, requiredTiers, waitlist and open.

open is true when the commission is not sold out and not a waitlist; waitlist is true when it is a waitlist instead. stockRemaining is a number only when the seller limited stock. previews holds the commission images with display and thumbnail URLs, and requiredTiers holds membership tiers the commission requires, as published. Use query to search within the commissions and limit from 1 to 20 (default 6). Continue with page.nextCursor while page.hasMore is true. A creator with no commissions returns found and an empty list; a missing creator returns not_found.

Ko-fi Commissions API FAQ

What is the difference between a shop item and a commission?

Both come from the creator's shop, but commissions add addOns, previews, requiredTiers, waitlist and open. open is true unless the commission is sold out or a waitlist, so read open and waitlist together before treating one as available.

What is in requiredTiers?

It is the membership tiers the commission requires, as published. The inner shape is not documented, so each entry is a raw object; it is null when the commission has no membership requirement.

How do I page through commissions?

Start with page=0 and follow page.nextCursor while page.hasMore is true. The default limit is 6 and the maximum is 20. A cursor is tied to the handle, search term and limit that issued it.

How many credits does a commissions 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.