{
  "openapi": "3.0.1",
  "info": {
    "title": "Kick Sponsor Tracker for Streamers, Brands and Promo Codes",
    "description": "Find which brands Kick streamers promote: casinos, skin sites, game stores and more, from !commands in live titles, the last month of broadcasts, channel links and promo codes. Scan live streams or check your own list. No login. Maintained by CleanScrape.",
    "version": "0.1",
    "x-build-id": "piZFfUzYDOXJAAyVy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cleanscrape~kick-sponsor-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cleanscrape-kick-sponsor-tracker",
        "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/cleanscrape~kick-sponsor-tracker/runs": {
      "post": {
        "operationId": "runs-sync-cleanscrape-kick-sponsor-tracker",
        "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/cleanscrape~kick-sponsor-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-cleanscrape-kick-sponsor-tracker",
        "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": {
          "scanLive": {
            "title": "Scan live streams",
            "type": "boolean",
            "description": "Looks through the live streams on Kick now, most viewers first, and checks every streamer whose title shows a sponsor (!stake, a promo code, #ad…).",
            "default": true
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Only scan these Kick categories, such as \"Slots & Casino\", \"Just Chatting\" or \"Counter-Strike 2\". Names, category links (https://kick.com/category/slots) or ids. Empty = all categories.",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Only scan streams in these languages: names (English, Polish) or codes (en, pl). Empty = all languages.",
            "items": {
              "type": "string"
            }
          },
          "minViewers": {
            "title": "Minimum viewers",
            "minimum": 0,
            "type": "integer",
            "description": "Skip live streams with fewer viewers than this.",
            "default": 10
          },
          "maxLiveStreams": {
            "title": "Live streams to scan",
            "minimum": 10,
            "maximum": 50000,
            "type": "integer",
            "description": "How many live streams to look through, most viewers first (split evenly between the categories and languages). Kick has about 5,000–10,000 streams live at a time.",
            "default": 1000
          },
          "streamers": {
            "title": "Streamers",
            "type": "array",
            "description": "Kick streamers to check, whether live or not: channel links (https://kick.com/xqc) or usernames, one per line. They are checked in depth even when no sponsor shows up.",
            "items": {
              "type": "string"
            }
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Only report these brands: names (Stake, Roobet), chat commands (!gamdom) or websites (shuffle.com). A term not in the built-in list is tracked as your own brand. Empty = every brand found.",
            "items": {
              "type": "string"
            }
          },
          "maxChannels": {
            "title": "Maximum streamers to check",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Streamers from the live scan to check in depth, most viewers first. Streamers you list are always checked.",
            "default": 100
          },
          "pastBroadcasts": {
            "title": "Read past broadcasts",
            "type": "boolean",
            "description": "Reads the titles of each streamer's latest broadcasts (Kick keeps about a month, at most 30) to count how often and how many hours each brand was promoted.",
            "default": true
          },
          "readChat": {
            "title": "Read recent chat",
            "type": "boolean",
            "description": "Also reads the last 25 chat messages of each channel for sponsor links posted by bots and moderators. Adds one request per streamer; it seldom finds more than the titles and links.",
            "default": false
          },
          "includeUnsponsored": {
            "title": "Also save streams and channels without sponsors",
            "type": "boolean",
            "description": "Saves every live stream scanned and every channel checked, even without a sponsor signal (useful as a full snapshot).",
            "default": false
          },
          "watchName": {
            "title": "Watch name (optional)",
            "type": "string",
            "description": "Names a watch, for example \"Stake on Kick\". Runs with the same name mark each sponsorship as new or seen before (isNew, firstSeenAt). Schedule the Actor to follow brands over time."
          },
          "connections": {
            "title": "Connections",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Requests in parallel, each on its own IP and kept to about one per second, which stays under Kick's limits. More is faster on big runs.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy works for Kick. Without a proxy the run uses one connection and is slower.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}