{
  "openapi": "3.0.1",
  "info": {
    "title": "Kick Scraper: Channels, Live Streams, VODs, Clips & Monitoring",
    "description": "Scrape Kick.com channel profiles, live streams, VODs and clips by channel list, search or the full live directory. Filter by followers, viewers, language and tags, then track new, updated and ended streams on a schedule. No login, API key or proxy setup needed.",
    "version": "0.5",
    "x-build-id": "8L7Ip8sykSbsFpyAR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~kick-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-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/getascraper~kick-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-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/getascraper~kick-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-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": "Discovery mode",
            "enum": [
              "watchlist",
              "search",
              "category"
            ],
            "type": "string",
            "description": "Channel watchlist (profiles, live status, VODs, clips), search (live streams and channels matching your text) or live directory (all live streams, optionally for one category). Older mode names channel_details, channel_videos, live_streams and top_channels still work.",
            "default": "watchlist"
          },
          "watchlist": {
            "title": "Channels to watch",
            "type": "array",
            "description": "Kick channel names, short links or full URLs, for example xqc or kick.com/xqc. Objects such as {\"channel\":\"xqc\",\"inputId\":\"xqc-main\"} are also accepted. Used by watchlist mode.",
            "items": {
              "type": "string"
            }
          },
          "channelNames": {
            "title": "Channel names (older field)",
            "type": "array",
            "description": "Older name for the channel list. Still accepted and merged with the list above.",
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Text to look for in live channels, titles, categories and tags. A channel name (such as xqc) also returns that channel profile. Used by search mode."
          },
          "category": {
            "title": "Category slug",
            "type": "string",
            "description": "Kick category slug, for example just-chatting or slots. Leave empty to scan all live streams. Used by live directory mode."
          },
          "recordTypes": {
            "title": "Record types",
            "type": "array",
            "description": "Any of channel, stream, clip and vod. Defaults: channel and stream for a watchlist or search, stream for the live directory.",
            "items": {
              "type": "string"
            }
          },
          "videoType": {
            "title": "Older video type",
            "enum": [
              "videos",
              "clips"
            ],
            "type": "string",
            "description": "Only used with the older channel_videos mode: videos returns past broadcasts, clips returns clips.",
            "default": "videos"
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "number",
            "description": "Keep records whose channel has at least this many followers."
          },
          "minViewers": {
            "title": "Minimum live viewers",
            "minimum": 0,
            "type": "number",
            "description": "Keep live streams with at least this many current viewers."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Two-letter language code such as en or es. languageFilter is accepted as an older name."
          },
          "tags": {
            "title": "Required tags",
            "type": "array",
            "description": "Keep records whose stream or category tags include all of these values.",
            "items": {
              "type": "string"
            }
          },
          "verified": {
            "title": "Verified filter",
            "type": "boolean",
            "description": "Set to true to keep only verified channels, false to exclude them."
          },
          "affiliate": {
            "title": "Affiliate filter",
            "type": "boolean",
            "description": "Set to true to keep only affiliate channels, false to exclude them."
          },
          "mature": {
            "title": "Mature content",
            "type": "boolean",
            "description": "Set to false to exclude mature streams or true to keep only mature ones. excludeMature is accepted as an older name."
          },
          "maxResults": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Most records returned in this run, after filters and sorting. Free plans are limited to 25.",
            "default": 25
          },
          "sortBy": {
            "title": "Sort field",
            "enum": [
              "recordType",
              "followers",
              "viewers",
              "rank",
              "title",
              "category",
              "retrievedAt",
              "stableId",
              "recent"
            ],
            "type": "string",
            "description": "Order of the returned records. Recent puts the newest streams, VODs and clips first. Viewers with descending order gives the most-watched first.",
            "default": "recordType"
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Ascending or descending order for the selected sort field.",
            "default": "asc"
          },
          "monitorMode": {
            "title": "Monitor mode",
            "enum": [
              "snapshot",
              "changes"
            ],
            "type": "string",
            "description": "Snapshot returns what Kick shows now. Changes compares with the previous run that used the same monitor name and labels each record NEW, UPDATED, STATUS_CHANGED, REAPPEARED or EXPIRED.",
            "default": "snapshot"
          },
          "monitorScope": {
            "title": "Monitor name",
            "pattern": "^[A-Za-z0-9_.:-]{1,120}$",
            "type": "string",
            "description": "Name shared by the scheduled runs you want compared. Use a different name for each watchlist or search.",
            "default": "kick-snapshot"
          },
          "includeUnchanged": {
            "title": "Include unchanged records",
            "type": "boolean",
            "description": "In changes mode, also return records that did not change.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Requests go out directly first and use Apify Proxy automatically only if Kick refuses them."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}