> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/ko-fi>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/ko-fi.mdx>

---

# Ko-fi API. Creator pages, as JSON.

Public profiles, posts, comments, membership tiers, shop items, commissions, gallery and albums from any Ko-fi creator. Name a handle or page id and get JSON.

- Any public creator
- 13 endpoints
- 1 credit per request

`GET /v1/ko-fi/profiles/{handle}` takes a creator handle such as `ligianunes` or a page id such as `A644275F`. The profile response carries `id`, the canonical `handle`, `name`, bio and links, plus the checkout details the page publishes: `support` (currency, suggested amounts, recurring support), `goal`, `badges`, `followers` and the `pageMode` (`tip`, `membership`, `shop`, `commissions` or `supporter`).

The rest of the surface follows that creator across the page: membership `tiers` with prices and benefits, ranked top `supporters`, the posts feed with `type`, `access` and `tag` filters, one post with its full `bodyHtml` and `bodyText`, comments with one level of `replies`, shop items with price and stock, commissions with previews and waitlist flags, gallery tiles, single gallery items and public albums.

Every response uses the `{ data, meta }` envelope and every lookup has `data.lookupStatus`. A handle that does not exist is `not_found`, not an HTTP error. List routes carry a `page` block with `returned`, `hasMore` and `nextCursor`; posts, shop and commissions page by number, while comments and gallery use an offset cursor. `meta.creditsCharged` is the billing field on every response.

## What you can get

- Creator profiles by handle or page id, with the canonical handle, support settings, goal, badges and follower count.
- Membership tiers with monthly price, benefits, preview images, remaining spots and active member counts, ordered by price.
- Ranked supporters, up to ten when the creator has a leaderboard and the top three otherwise.
- Posts feeds filtered by `type`, `access` and `tag`, 12 items a page, and one post with its full body and tags.
- Post comments with one level of replies, likes and author details, 25 top-level comments a page.
- Shop items with price, stock, sold count, images, shipping and audience, plus one item with its full description and contents.
- Commissions, gallery tiles, gallery items and public albums from the same creator page.

## Ko-fi endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| Profile | GET /v1/ko-fi/profiles/{handle} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/get) |
| Top supporters | GET /v1/ko-fi/profiles/{handle}/supporters | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/supporters/get) |
| Membership tiers | GET /v1/ko-fi/profiles/{handle}/tiers | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/tiers/get) |
| Posts | GET /v1/ko-fi/profiles/{handle}/posts | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/posts/get) |
| Post | GET /v1/ko-fi/posts/{slug} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/posts/slug/get) |
| Comments | GET /v1/ko-fi/posts/{slug}/comments | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/posts/slug/comments/get) |
| Shop items | GET /v1/ko-fi/profiles/{handle}/shop | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/shop/get) |
| Shop item | GET /v1/ko-fi/shop-items/{alias} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/shop-items/alias/get) |
| Commissions | GET /v1/ko-fi/profiles/{handle}/commissions | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/commissions/get) |
| Gallery | GET /v1/ko-fi/profiles/{handle}/gallery | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/gallery/get) |
| Gallery item | GET /v1/ko-fi/gallery-items/{id} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/gallery-items/id/get) |
| Albums | GET /v1/ko-fi/profiles/{handle}/albums | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/profiles/handle/albums/get) |
| Album | GET /v1/ko-fi/albums/{slug} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/albums/slug/get) |

## How to start

1. **Create an API key.** Sign up at Social Fetch and copy a key (`sfk_...`). New accounts get 100 free credits, enough to try every Ko-fi route on a few creators.
2. **Pick the route and identifier.** Use the handle from the page URL, or the page id when that is what you have. For example `GET /v1/ko-fi/profiles/ligianunes/posts` for the feed, or `GET /v1/ko-fi/shop-items/25d06ddd2a` for one item. Send `x-api-key` on every request.
3. **Check the status, then page.** Read `data.lookupStatus` before storing a row. For a list, keep requesting with `page.nextCursor` while `page.hasMore` is true, and bill from `meta.creditsCharged`.

## Pricing

Each Ko-fi route charges a flat amount per completed request, shown on every endpoint page. Each page of a list is its own request. Credits never expire on pay-as-you-go packs, and `meta.creditsCharged` on every response is the billing source of truth.

## Compared with the official API

There is no public read API that returns a creator's profile, posts, comments, membership tiers, shop, commissions, gallery and albums in one shape. Social Fetch gives them one envelope: the same `lookupStatus`, `page` and `meta` fields across every route, opaque cursors, and typed misses instead of HTML error pages.

## FAQ

### Is there a Ko-fi API for creator pages?

Yes. Social Fetch has thirteen Ko-fi routes under /v1/ko-fi: profile, membership tiers, top supporters, posts feed, post, post comments, shop items, one shop item, commissions, gallery, one gallery item, albums and one album with its tiles. Authenticate with your Social Fetch API key in x-api-key.

### How do I identify a creator?

Use the handle from the page URL, for example ligianunes, or the page id, for example A644275F. Handles are case-insensitive and the response reports the canonical handle. A handle with characters outside letters, digits, underscores and hyphens is refused as a bad request.

### What does lookupStatus mean?

found means the profile or item was returned. not_found means the profile, post or item does not exist. HTTP 200 only means the request finished, so branch on data.lookupStatus before writing a row. A gallery item id in the wrong shape is refused with HTTP 400; a well-formed id that does not exist is not_found.

### How does paging work?

Posts carry 12 items a page and continue with page.nextPage or page.nextCursor. Comments carry 25 top-level comments a page and use an offset cursor. Shop items take limit 1 to 20 with a default of 12, commissions take limit 1 to 20 with a default of 6, and gallery carries 20 tiles a page. Follow page.nextCursor while page.hasMore is true.

### Does the posts feed include absolute dates?

No. The feed shows a relative time such as 2 days ago, so data.posts[].relativeTime is the only time field there. Fetch the post with GET /v1/ko-fi/posts/{slug} to get its absolute postedAt date and full body.

### Are comment replies included?

Yes. Each top-level comment carries its replies inline in data.comments[].replies, sorted oldest first. Replies nest one level, and so does the API. When a total is reported, data.page.total counts all comments including replies.

### What does a shop item response include?

The list route returns id, alias, url, name, descriptionPreview, price, currency, images, soldOut, stockRemaining, soldCount, payWhatYouWant, requiresShipping, access, discountPercent and categoryIds. The single item route adds the full description, soldText, stockText, maxQuantity, shipsTo, shippingFees, contents, named variations in their order, and seller.

### Do you return supporter-only posts?

No. A supporter or member-only post comes back with access restricted and bodyHtml and bodyText set to null. The API does not sign in or unlock that content.

### How much does the Ko-fi API cost?

Every Ko-fi route charges one credit per completed request, and each page of a list is a separate request. Failed lookups that Social Fetch marks as non-billable do not consume credits. New accounts start with 100 free credits, and meta.creditsCharged on each response is the billing source of truth.

### Can I use the Ko-fi routes from agents or MCP?

Yes. Every Ko-fi route is a typed MCP tool and is reachable through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs.

## Related

- [Ko-fi Profile API](https://www.socialfetch.dev/platforms/ko-fi/profiles-handle): Identity, bio, links, support settings and goal (`GET /v1/ko-fi/profiles/{handle}`).
- [Ko-fi Membership Tiers API](https://www.socialfetch.dev/platforms/ko-fi/profiles-handle-tiers): Prices, benefits and active member counts (`GET /v1/ko-fi/profiles/{handle}/tiers`).
- [Ko-fi Posts API](https://www.socialfetch.dev/platforms/ko-fi/profiles-handle-posts): A creator's feed with type, audience and tag filters (`GET /v1/ko-fi/profiles/{handle}/posts`).
- [Ko-fi Post API](https://www.socialfetch.dev/platforms/ko-fi/posts-slug): One post with its full body, image and tags (`GET /v1/ko-fi/posts/{slug}`).
- [Ko-fi Comments API](https://www.socialfetch.dev/platforms/ko-fi/posts-slug-comments): Comments and one level of replies (`GET /v1/ko-fi/posts/{slug}/comments`).
- [Ko-fi Shop API](https://www.socialfetch.dev/platforms/ko-fi/profiles-handle-shop): Items with price, stock and audience (`GET /v1/ko-fi/profiles/{handle}/shop`).
- [Ko-fi Gallery API](https://www.socialfetch.dev/platforms/ko-fi/profiles-handle-gallery): Gallery tiles with titles and image counts (`GET /v1/ko-fi/profiles/{handle}/gallery`).
- [Ko-fi Album API](https://www.socialfetch.dev/platforms/ko-fi/albums-slug): One album with its gallery tiles (`GET /v1/ko-fi/albums/{slug}`).
- [Ask in plain English](https://www.socialfetch.dev/ask): Route a natural-language creator question to the matching Ko-fi operation.
