> **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/kick/clips>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/kick/clips.mdx>

---

# Kick Clips API

One route for three clip feeds: the sortable global list, a category's newest clips, and the newest list across Kick.

`GET /v1/kick/clips` returns `data.mode`, `data.clips` and `data.page`. Without a category it returns the sortable global list and `mode` is `global`; pass `sort=view` or `sort=date` and `time=all`, `month`, `week` or `day`. With `category` it returns that category's clips newest first and `mode` is `category`. A cursor continues the same feed and filters.

A category cannot be combined with `sort` or `time`, because the category list only runs newest first; that combination is a 400. When no category is given and no sort or time is set, the newest clips across Kick are returned and `mode` is `latest`. Each clip carries the shared clip fields: `id`, `title`, `views`, `likes`, `durationSeconds`, `createdAt`, `category`, `creator`, `channel`, `videoId` and `playbackUrl`. Clips already returned on an earlier page are dropped, so a page can be shorter than a full page; keep following `data.page.nextCursor` while `data.page.hasMore` is true. The last page with rows can still say `data.page.hasMore` is true and be followed by an empty page; stop at the first empty page. An empty page has `data.page.hasMore` false and `data.page.nextCursor` null.

## Request

- **Endpoint:** `GET /v1/kick/clips`
- **Credits:** 1 credit
Failed requests are free
Found, empty and not-found answers are all charged
- **Input:** by category, sort or time
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/kick/clips/get)
- **Platform page:** [/platforms/kick](https://www.socialfetch.dev/platforms/kick)

## FAQ

### What are the three clip modes?

data.mode tells you which feed answered. global is the sortable list, category is one category's newest clips, and latest is the newest clips across Kick. The mode is chosen from the query you send.

### Can I filter a category by views or time?

No. A category list runs newest first only. Sending category together with sort or time is refused with HTTP 400. Use category on its own, or leave it out to sort the global list.

### How do I continue to the next page?

Send data.page.nextCursor as cursor with the same filters. Stop when data.page.hasMore is false. The sortable list's order moves while you walk it, so a clip can still repeat across pages; de-duplicate by data.clips[].id. Clips already returned are dropped, so a page can be shorter than a full page even when hasMore is true; keep following nextCursor rather than stopping at a short page. The last page with rows can still say hasMore is true and be followed by an empty page; stop at the first empty page, which has hasMore false and no nextCursor. An expired or mismatched cursor returns HTTP 400, so start again without one.

### How many credits does one clips 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.
