{
  "openapi": "3.0.1",
  "info": {
    "title": "Kick Streamers Scraper",
    "description": "Find Kick.com streamers for influencer marketing, no API key or account: followers, live viewers, stream title, category, language, bio, Instagram, X, YouTube and TikTok links and their Discord. Browse live channels with filters or track a watchlist. $3 per 1,000 streamers.",
    "version": "1.0",
    "x-build-id": "6PEfGhTzkJ9oAt9vA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/badr_xba~kick-streamers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-badr_xba-kick-streamers-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/badr_xba~kick-streamers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-badr_xba-kick-streamers-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/badr_xba~kick-streamers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-badr_xba-kick-streamers-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": {
          "usOnly": {
            "title": "🇺🇸 Keep only streamers with US clues",
            "type": "boolean",
            "description": "Kick publishes no country for any streamer, and offers no country filter. Switched on, this keeps only channels whose title, bio or category carries an explicit US clue (city, state, “USA”, an EST/PST timezone, NFL/NBA…). Precise, but very restrictive. Left off, you get every streamer matching the other filters, each with its score and clues (usScore and usSignals) so you can sort them yourself. To cover the US broadly, simply keep the language set to English.",
            "default": false
          },
          "maxStreamers": {
            "title": "🔢 Maximum streamers",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Exact number of streamers saved (and billed). The run stops as soon as this number is reached. 50 usually finishes in under a minute.",
            "default": 100
          },
          "channels": {
            "title": "📺 Specific channels (optional)",
            "type": "array",
            "description": "Creators you already know, to track their followers, live status and socials even when offline: “xqc”, “@adinross”, “kick.com/adinross” or a full URL such as https://kick.com/trainwreckstv/videos. You can paste a whole list into one line (separated by commas or new lines); duplicates and extra spaces are removed for you. Entries that are not Kick channels are skipped and listed in FAILED_INPUTS (never billed). When filled, this replaces the automatic browsing of live channels.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Browsing order",
            "enum": [
              "viewers",
              "smallest"
            ],
            "type": "string",
            "description": "Most-watched first, or smallest first to mine the long tail.",
            "default": "viewers"
          },
          "includeFeatured": {
            "title": "Include Kick's featured selection",
            "type": "boolean",
            "description": "Adds the live channels Kick promotes on its home page.",
            "default": true
          },
          "includeChannelDetails": {
            "title": "Add channel data",
            "type": "boolean",
            "description": "Opens each streamer's channel to get followers, bio, social accounts (Instagram, X, YouTube, TikTok, Discord) and recent categories. One extra request per streamer. A streamer whose channel page cannot be read is not saved (and not billed); it is listed in FAILED_INPUTS.",
            "default": true
          },
          "languages": {
            "title": "🌍 Languages",
            "type": "array",
            "description": "Declared stream language when browsing live channels: English, Spanish, French, Portuguese, Arabic… Codes such as “en” or “es” work too. Empty means every language. Not applied to Specific channels.",
            "items": {
              "type": "string"
            }
          },
          "minViewers": {
            "title": "Minimum viewers",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only streams with at least this many viewers. 0 keeps every stream.",
            "default": 0
          },
          "maxViewers": {
            "title": "Maximum viewers",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only streams with at most this many viewers, to find small and mid-size creators. 0 (default) means no maximum. Combine it with \"Minimum viewers\" for a range. With \"Most watched first\", pages above the maximum are skipped without counting as empty.",
            "default": 0
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only channels with at least this many followers (0 keeps every channel). Requires channel data.",
            "default": 0
          },
          "maxFollowers": {
            "title": "Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only channels with at most this many followers, e.g. 50000 for micro-influencers. 0 (default) means no maximum. Requires channel data (switched on automatically when set).",
            "default": 0
          },
          "verifiedOnly": {
            "title": "Verified channels only",
            "type": "boolean",
            "description": "Keep only channels carrying Kick's verified badge.",
            "default": false
          },
          "excludeMature": {
            "title": "Exclude mature content",
            "type": "boolean",
            "description": "Drops streams the streamer flagged as adult content.",
            "default": false
          },
          "categoryKeywords": {
            "title": "🎮 Category contains",
            "type": "array",
            "description": "Keep only streams whose category contains one of these words, e.g. slots, gta, just chatting.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "usScoreThreshold": {
            "title": "US score threshold",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Points needed for a streamer to count as likely US. 2 (default): they speak English and nothing points elsewhere — mentions of the UK, Australia, Canada, India or Nigeria, a foreign currency, or the language “English (India)” subtract points. 5 also requires an explicit geographic clue (city, state, timezone, US sports league).",
            "default": 2
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many channel pages are read at the same time. Kick publishes no rate limit; 10 is brisk and stable.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy is optional: Kick answers direct requests, so no proxy is the cheapest start. Switch it on for large runs; each retry then uses a new IP address.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}