> **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/posts-slug>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/ko-fi/posts-slug.mdx>

---

# Ko-fi Post API

One public post with its full body, author, date, image and tags.

`GET /v1/ko-fi/posts/{slug}` takes the last path segment of a post URL, for example `Shipping-profiles-digital-variants-and-more-D0K429XOFY`. On `found`, `data.post` has `id`, `slug`, `url`, `title`, `author` (`id`, `name`, `handle`), `postedAt`, `bodyHtml`, `bodyText`, `image`, `tags`, `access`, `embeds`, `likes` and `commentCount`.

`postedAt` is ISO 8601 at midnight UTC: the post gives a date and no time. `bodyHtml` keeps the post's markup and `bodyText` is the same content as text. `author.handle` and `commentCount` can be null: a post does not always carry them. Use the comments route for the comment count. A removed or unknown slug returns `lookupStatus: not_found` with `post: null`. A supporter or member-only post returns `access: restricted` with `bodyHtml` and `bodyText` null, and the API does not try to unlock it.

## Request

- **Endpoint:** `GET /v1/ko-fi/posts/{slug}`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by post slug
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/ko-fi/posts/slug/get)
- **Platform page:** [/platforms/ko-fi](https://www.socialfetch.dev/platforms/ko-fi)

## FAQ

### Where do I find the slug?

It is the last segment of the post URL, after /post/. For example https://ko-fi.com/post/Shipping-profiles-digital-variants-and-more-D0K429XOFY has the slug Shipping-profiles-digital-variants-and-more-D0K429XOFY.

### Why can the author handle be null?

A post gives its author's page id and display name, and does not always carry the handle, so author.handle can be null. author.id is always returned.

### What happens for a supporter-only post?

access is restricted, bodyHtml and bodyText are null, and the rest of the post metadata is still returned when it is public. The API does not sign in or unlock that content.

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