Query parameters
| Field | Type | Description |
|---|---|---|
| url | string | Required HTTPS Kick clip URL. Canonical /<channel>/clips/<clip_id> and legacy /<channel>?clip=<clip_id> forms are supported. Duplicate/conflicting clip IDs are rejected. |
Live streaming API
Retrieve a public Kick clip with media URLs, counts, timestamps, category, creator, and channel details.
Get the complete public clip object in one authenticated request. Source types, aliases, optional fields, and nested attributes are preserved.
http://localhost:3011Local development example. Replace with your service origin.
/v1/kick/clipRetrieve one public Kick clip from the public player metadata API for current counters. Media and thumbnail URLs are returned without downloading their contents. No channel discovery, clip listing, or video transcription is performed.
| Field | Type | Description |
|---|---|---|
| url | string | Required HTTPS Kick clip URL. Canonical /<channel>/clips/<clip_id> and legacy /<channel>?clip=<clip_id> forms are supported. Duplicate/conflicting clip IDs are rejected. |
| Field | Type | Description |
|---|---|---|
| requestId | string | Operation identifier for correlation. |
| accounting | object | Upstream HTTP attempts, decoded response bytes and duration. DNS lookups are transport setup and are not counted as HTTP requests. Error response bodies are discarded. |
| success | boolean | True only when the complete supported clip object validates. |
| status | string | success on complete retrieval; failed or challenged with a failure object otherwise. |
| clip | object | Full public clip object, including source extensions and nested category, creator, channel and optional VOD metadata. Fields are not renamed or coerced. |
| sourceUrl | string | Canonical Kick clip page URL. |
| fetchedAt | string | UTC retrieval timestamp. |
| coverage | object | Complete validated public clip metadata. Missing required fields fail the request; no reduced-field success is returned. |
| Field | Type | Description |
|---|---|---|
| id | string | Kick clip ID; must match the requested clip. |
| livestream_id | string | null | Source livestream ID as a string, or null. |
| category_id | string | null | Source category ID as a string, or null; preserved separately from category.id. |
| channel_id | integer | Numeric owner channel ID, verified against channel.id. |
| user_id | integer | null | Numeric clip creator ID, verified against creator.id when available. Null is preserved. |
| title | string | Original clip title, including empty strings. |
| clip_url | string | null | Published media URL; may be an HLS playlist or direct media. Returned as data without downloading. |
| thumbnail_url | string | null | Source thumbnail URL; never fetched. |
| privacy | string | Source public privacy representation, public or CLIP_PRIVACY_PUBLIC. Other privacy values are rejected. |
| likes | integer | null | Source like count; explicit nulls are preserved. |
| liked | boolean | Upstream logged-out liked flag. No viewer session is supplied. |
| views | integer | null | Source view count at retrieval time. Live counters can change between requests. |
| duration | number | null | Source duration in seconds; fractional values and nulls are preserved. |
| started_at | string | null | Source start timestamp string, with original precision, or null. |
| created_at | string | null | Source creation timestamp string, with original precision, or null. |
| vod_starts_at | number | null | Optional source VOD offset. Omitted when Kick omits it; explicit nulls are preserved. |
| is_mature | boolean | Published maturity metadata; no age/consent flow is performed. |
| video_url | string | null | Source media alias. Preserved independently from clip_url. |
| view_count | integer | null | Source view-count alias, preserved independently from views. |
| likes_count | integer | null | Source likes alias, preserved independently from likes. |
| vod | object | null | Optional VOD object with id and any public source extensions, or null. Not synthesized when absent; no VOD lookup or media fetch. |
| category | object | null | Category id, name, slug, responsive, banner, parent_category and extensions, or null. |
| creator | object | null | Clip creator: id, username, slug, profile_picture and extensions, or null. |
| channel | object | Owner channel: id, username, slug, profile_picture and extensions. The slug is checked against the requested channel. |
Nested fields and every response variant are in the OpenAPI specification.
| HTTP | Code / status | Meaning |
|---|---|---|
| 400 | invalid_request | Missing/unsafe clip URL, ambiguous clip IDs, duplicate URL or unsupported parameters. |
| 401 | unauthorized | Missing or invalid worker API key. |
| 403 | restricted_page | The clip is private or requires access/consent. |
| 404 | not_found | Kick reports a missing or deleted clip. |
| 429 | upstream_rate_limited | Kick rate limited the request; no automatic retry. |
| 502 | upstream_challenged | Kick rejected or challenged the request. |
| 502 | unsupported_page | Malformed, incomplete, unexpected, or mismatched clip metadata. |
| 502 | response_too_large / payload_too_complex | The JSON exceeded byte, depth or node limits. |
| 502 | unsafe_redirect / request_limit / upstream_error | The bounded request could not complete. |
| 503 | busy | All worker slots are in use. |
| 504 | timeout | The total retrieval deadline expired. |