Ko-fi hub

Ko-fi Shop Item API

One public shop item with its full description, stock, shipping and contents.

GET /v1/ko-fi/shop-items/{alias}

1 credit Failed requests are free

About this endpoint

GET /v1/ko-fi/shop-items/{alias} takes the alias from a shop URL such as https://ko-fi.com/s/25d06ddd2a. On found, data.item has id, alias, url, name, description, price, currency, images, payWhatYouWant, soldOut, soldText, stockText, stockRemaining, unlocksContent, maxQuantity, shipsTo, shippingFees, categories, discountPercent, contents, variations and seller (id, name).

description is the full text, unlike the descriptionPreview in the shop list. soldText and stockText are the published sold and stock wording, such as 21.5K sold or Only 1 left!; soldCount is only on the shop list. shippingFees lists the default destination the item lists first, then any additional fee rows, with 0 for a free destination; a worldwide-only fee appears even when there is no per-country list. shipsTo is the published destination list, which can be empty when the item lists only a worldwide fee. A removed or unknown alias returns lookupStatus: not_found with item: null.

Ko-fi Shop Item API FAQ

Where does the alias come from?

The alias is the last segment of a /s/ URL. For example https://ko-fi.com/s/25d06ddd2a has the alias 25d06ddd2a. The shop list returns the same alias on each item.

What do soldText and stockText contain?

They are the published sold and stock wording, such as 21.5K sold or Only 1 left!. stockRemaining is the parsed number when a limited stock is shown, and null when stock is unlimited or not shown.

Are variations and shipping always populated?

No. variations is empty when the item has none, each with its name, order and price. shipsTo is the published destination list and can be empty, for example when the item lists only a worldwide fee; shippingFees carries at least the default destination when a fee is shown. The seller object is always present on a found item.

How many credits does a shop item lookup 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.