{
  "openapi": "3.0.1",
  "info": {
    "title": "Kick.com Scraper - Streamers, Live Streams, VODs & Clips",
    "description": "Scrape Kick.com streamer profiles (followers, verified, bio, socials, live viewers), top live streams by category and language, VODs, clips and categories with viewers. Public JSON, no login. US$ 3 per 1,000 items; channels not found are free.",
    "version": "0.1",
    "x-build-id": "me9v7m9hAtuUC0lPt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~kick-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-kick-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapewise~kick-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-kick-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapewise~kick-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-kick-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "channels",
              "liveStreams",
              "videos",
              "clips",
              "categories",
              "search",
              "channel_details",
              "live_streams",
              "top_channels",
              "channel_videos",
              "livestreams",
              "subcategories"
            ],
            "type": "string",
            "description": "What each row is. Channel profiles: one row per channel with followers, verification, socials and live status. Live streams now: the top streams by viewers, optionally by category, language, viewers or tags. Past broadcasts: the VODs of channels. Clips: of channels, of categories, or trending when both are empty. Categories: ranked by live viewers. Search: channels matching keywords. Every row costs the same (US$ 3.00 per 1,000 on the Free plan). Mode names of other Kick scrapers (channel_details, live_streams, top_channels, channel_videos with videoType, livestreams, subcategories) also work.",
            "default": "channels"
          },
          "channelNames": {
            "title": "Channels",
            "type": "array",
            "description": "Used by Channel profiles, Past broadcasts and Clips. One per line, as a name (xqc), @xqc, kick.com/xqc or a full https://kick.com/xqc URL. Each channel gives one profile row, or up to 'Max results' VODs or clips. A name that does not exist returns a free CHANNEL_NOT_FOUND row. If empty, profiles and VODs use xqc and adinross, and clips returns trending clips. Also accepts 'channelSlugs', 'channelUrls', 'startUrls' and 'watchlist'.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Used by Search. Keywords, one per line, for example valorant or poker. Each keyword returns up to 20 matching channels (Kick's own limit), each with the full channel profile. A keyword with no match returns a free NO_RESULTS row. Also accepts 'searchKeywords'.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Category slugs as in the Kick URL (just-chatting, grand-theft-auto-v, counter-strike-2) or kick.com/category/... URLs, one per line. In Live streams and Clips it filters to these categories; in Categories mode it returns these categories with followers and live viewers instead of the top list. Leave empty for all categories. Unknown slugs return a free CATEGORY_NOT_FOUND row. Also accepts 'category' and 'categorySlugs'.",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Stream languages",
            "type": "array",
            "description": "Live streams only. Two-letter language codes of the streams, one per line, for example en, es, tr or de. Kick applies the filter, so the top list is ranked within these languages. Empty means all languages. Also accepts 'livestreamLanguages'.",
            "items": {
              "type": "string"
            }
          },
          "minViewers": {
            "title": "Minimum viewers",
            "minimum": 0,
            "type": "integer",
            "description": "Live streams only. Skip streams with fewer current viewers than this, for example 50 to leave out small streams. Default 0 keeps every stream. Skipped streams are not charged.",
            "default": 0
          },
          "tags": {
            "title": "Stream tags",
            "type": "array",
            "description": "Live streams only. Keep only streams with at least one of these tags, case-insensitive, one per line, for example English or Drops. Empty keeps every stream. Also accepts 'livestreamTags'.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort live streams",
            "enum": [
              "viewers",
              "recent"
            ],
            "type": "string",
            "description": "Live streams only. The top streams are always selected by current viewers; Most recently started first only re-orders that selection by 'startedAt'. Default: most viewers first, with 'rank' 1, 2, 3...",
            "default": "viewers"
          },
          "clipSort": {
            "title": "Sort clips",
            "enum": [
              "view",
              "date"
            ],
            "type": "string",
            "description": "Clips only. Most viewed (default) or Newest first. With 'Only new items' on, clips are always read newest first so the run can stop at the first clip already delivered.",
            "default": "view"
          },
          "clipPeriod": {
            "title": "Clip period",
            "enum": [
              "day",
              "week",
              "month",
              "all"
            ],
            "type": "string",
            "description": "Clips only. Time window Kick applies to the clip list: last 24 hours, last 7 days, last 30 days or all time (default). Combine Last 7 days with Most viewed for the week's top clips.",
            "default": "all"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Past broadcasts and Clips: maximum per channel or category (Kick serves only the 24 most recent VODs per channel). Live streams, Categories and Search: maximum for the run or per keyword. Ignored by Channel profiles, which return one row per channel. Default 30. You pay per row, so this caps the cost: 30 rows cost US$ 0.09. Also accepts 'maxItems'.",
            "default": 30
          },
          "onlyNew": {
            "title": "Only new items since the last run",
            "type": "boolean",
            "description": "For daily schedules in Past broadcasts, Clips and Live streams. Remembers what each channel, category or live filter already delivered (in the key-value store 'kick-scraper-only-new' in your account) and skips it on later runs: skipped items are not charged and do not count toward 'Max results'. Clips switch to newest first. The first run on a channel marks its whole VOD list as seen, so later runs bring only new broadcasts. Not used in Channel profiles, Search and Categories. Delete the store to start over. Default off.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy (the default) works for Kick, which sits behind Cloudflare; blocked requests are retried on a new IP, and a request blocked on every retry becomes a free BLOCKED row. Change it only if you have a reason to use another proxy group.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}