{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok LIVE Scraper: Search, Comments & Live Status",
    "description": "Find TikTok LIVE streams broadcasting now by keyword in 110+ countries, or check if any creator is live by username, link or room ID. Get viewers, likes, followers, stream URLs, the latest chat comments and top gifters in seconds. No login or cookies. Pay per LIVE.",
    "version": "1.0",
    "x-build-id": "9dmFfHB8qvmBygKg5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/invideoiq~tiktok-live-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-invideoiq-tiktok-live-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/invideoiq~tiktok-live-scraper/runs": {
      "post": {
        "operationId": "runs-sync-invideoiq-tiktok-live-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/invideoiq~tiktok-live-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-invideoiq-tiktok-live-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": {
          "keywords": {
            "title": "🔍 Search LIVE streams by keyword",
            "type": "array",
            "description": "Keywords to search TikTok LIVE for, as you would type them in the TikTok search bar (for example gaming, makeup, football). Each keyword is searched in each country below and returns the LIVE streams broadcasting right now. Minimum 2 characters per keyword. Leave empty if you only want to look up the LIVE rooms below.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "🌍 Countries",
            "type": "array",
            "description": "Countries whose LIVE streams you get: TikTok shows different LIVE streams in each country, and each search runs from that country. Pick several to cover or compare markets: every keyword is searched in every country. Applies to keyword search only: LIVE rooms listed by link, ID or username are found wherever they broadcast.",
            "items": {
              "type": "string",
              "enum": [
                "AL",
                "AO",
                "AR",
                "AM",
                "AU",
                "AT",
                "AZ",
                "BY",
                "BE",
                "BJ",
                "BO",
                "BA",
                "BW",
                "BR",
                "BG",
                "BF",
                "CM",
                "CA",
                "CL",
                "CO",
                "CR",
                "HR",
                "CY",
                "CZ",
                "CI",
                "CD",
                "DK",
                "DO",
                "EC",
                "SV",
                "EE",
                "FJ",
                "FI",
                "FR",
                "GE",
                "DE",
                "GH",
                "GR",
                "GT",
                "HT",
                "HN",
                "HU",
                "IS",
                "ID",
                "IE",
                "IL",
                "IT",
                "JM",
                "JP",
                "KZ",
                "KE",
                "KG",
                "LV",
                "LT",
                "LU",
                "MG",
                "MW",
                "MY",
                "ML",
                "MT",
                "MU",
                "MX",
                "MD",
                "MN",
                "ME",
                "MZ",
                "NA",
                "NP",
                "NL",
                "NZ",
                "NI",
                "NE",
                "NG",
                "MK",
                "NO",
                "PA",
                "PG",
                "PY",
                "PE",
                "PH",
                "PL",
                "PT",
                "PR",
                "RO",
                "RW",
                "SN",
                "RS",
                "SG",
                "SK",
                "SI",
                "ZA",
                "KR",
                "ES",
                "LK",
                "SE",
                "CH",
                "TW",
                "TJ",
                "TZ",
                "TH",
                "TG",
                "TT",
                "TR",
                "UG",
                "UA",
                "GB",
                "US",
                "UY",
                "UZ",
                "VE",
                "VN",
                "ZM",
                "ZW"
              ],
              "enumTitles": [
                "Albania (AL)",
                "Angola (AO)",
                "Argentina (AR)",
                "Armenia (AM)",
                "Australia (AU)",
                "Austria (AT)",
                "Azerbaijan (AZ)",
                "Belarus (BY)",
                "Belgium (BE)",
                "Benin (BJ)",
                "Bolivia (BO)",
                "Bosnia and Herzegovina (BA)",
                "Botswana (BW)",
                "Brazil (BR)",
                "Bulgaria (BG)",
                "Burkina Faso (BF)",
                "Cameroon (CM)",
                "Canada (CA)",
                "Chile (CL)",
                "Colombia (CO)",
                "Costa Rica (CR)",
                "Croatia (HR)",
                "Cyprus (CY)",
                "Czechia (CZ)",
                "Côte d'Ivoire (CI)",
                "DR Congo (CD)",
                "Denmark (DK)",
                "Dominican Republic (DO)",
                "Ecuador (EC)",
                "El Salvador (SV)",
                "Estonia (EE)",
                "Fiji (FJ)",
                "Finland (FI)",
                "France (FR)",
                "Georgia (GE)",
                "Germany (DE)",
                "Ghana (GH)",
                "Greece (GR)",
                "Guatemala (GT)",
                "Haiti (HT)",
                "Honduras (HN)",
                "Hungary (HU)",
                "Iceland (IS)",
                "Indonesia (ID)",
                "Ireland (IE)",
                "Israel (IL)",
                "Italy (IT)",
                "Jamaica (JM)",
                "Japan (JP)",
                "Kazakhstan (KZ)",
                "Kenya (KE)",
                "Kyrgyzstan (KG)",
                "Latvia (LV)",
                "Lithuania (LT)",
                "Luxembourg (LU)",
                "Madagascar (MG)",
                "Malawi (MW)",
                "Malaysia (MY)",
                "Mali (ML)",
                "Malta (MT)",
                "Mauritius (MU)",
                "Mexico (MX)",
                "Moldova (MD)",
                "Mongolia (MN)",
                "Montenegro (ME)",
                "Mozambique (MZ)",
                "Namibia (NA)",
                "Nepal (NP)",
                "Netherlands (NL)",
                "New Zealand (NZ)",
                "Nicaragua (NI)",
                "Niger (NE)",
                "Nigeria (NG)",
                "North Macedonia (MK)",
                "Norway (NO)",
                "Panama (PA)",
                "Papua New Guinea (PG)",
                "Paraguay (PY)",
                "Peru (PE)",
                "Philippines (PH)",
                "Poland (PL)",
                "Portugal (PT)",
                "Puerto Rico (PR)",
                "Romania (RO)",
                "Rwanda (RW)",
                "Senegal (SN)",
                "Serbia (RS)",
                "Singapore (SG)",
                "Slovakia (SK)",
                "Slovenia (SI)",
                "South Africa (ZA)",
                "South Korea (KR)",
                "Spain (ES)",
                "Sri Lanka (LK)",
                "Sweden (SE)",
                "Switzerland (CH)",
                "Taiwan (TW)",
                "Tajikistan (TJ)",
                "Tanzania (TZ)",
                "Thailand (TH)",
                "Togo (TG)",
                "Trinidad and Tobago (TT)",
                "Turkey (TR)",
                "Uganda (UG)",
                "Ukraine (UA)",
                "United Kingdom (GB)",
                "United States (US)",
                "Uruguay (UY)",
                "Uzbekistan (UZ)",
                "Venezuela (VE)",
                "Vietnam (VN)",
                "Zambia (ZM)",
                "Zimbabwe (ZW)"
              ]
            },
            "default": [
              "US"
            ]
          },
          "max_rooms_per_keyword": {
            "title": "Max LIVE streams per keyword and country",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of LIVE streams to return for each keyword in each country. TikTok serves about 50 LIVE streams per keyword and country at a given moment, often fewer in smaller countries.",
            "default": 50
          },
          "min_viewers": {
            "title": "Min viewers now",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep LIVE streams with at least this many people watching at the time of the search. LIVE streams under it are skipped and not charged. Applies to keyword search only: the LIVE rooms you list are always returned. 0 keeps every LIVE.",
            "default": 0
          },
          "rooms": {
            "title": "📺 LIVE rooms (link, room ID or username)",
            "type": "array",
            "description": "LIVE rooms to look up, one per line: a LIVE link (https://www.tiktok.com/@username/live), a profile link, a room share link, a numeric room ID, or a username (@username). A username returns the streamer's current LIVE, or their last one when they are offline (status \"ended\"). Short vm.tiktok.com links are not supported.",
            "items": {
              "type": "string"
            }
          },
          "include_comments": {
            "title": "💬 Get LIVE comments and top gifters",
            "type": "boolean",
            "description": "Also return the latest comments of each LIVE (up to 50, newest first), the pinned comment, the LIVE intro and the top gifters. Applies to the LIVE rooms you list and to every LIVE stream found by keyword. TikTok keeps only the latest ~50 comments of a LIVE, and an ended LIVE has none. A LIVE with comments is billed at a higher price, see the Pricing section of the README.",
            "default": false
          },
          "comments_limit": {
            "title": "Max comments per LIVE",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of comments returned per LIVE when comments are on (1 to 50).",
            "default": 50
          },
          "include_stream_urls": {
            "title": "Include stream URLs",
            "type": "boolean",
            "description": "Return the playback URLs of each LIVE (FLV and HLS by quality, plus an audio-only stream), for example to record a LIVE. They stop working when the LIVE ends.",
            "default": true
          },
          "deduplicate": {
            "title": "Remove duplicate LIVE streams",
            "type": "boolean",
            "description": "When a LIVE stream is found by several keywords or in several countries, keep it only once (for the first search that found it) so you never pay twice for the same LIVE. The LIVE rooms you list are always returned.",
            "default": true
          },
          "max_total_rooms": {
            "title": "Max LIVE streams in total",
            "minimum": 1,
            "type": "integer",
            "description": "Upper limit of LIVE streams saved by the whole run, across all keywords, countries and LIVE rooms. The run stops searching once it is reached. Leave empty for no limit."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}