{
  "openapi": "3.0.1",
  "info": {
    "title": "TikTok Live Search Scraper",
    "description": "Search public TikTok LIVE rooms by keyword, category, room ID, or creator, or collect daily creator rankings. Export room, audience, stream, and gifter details or ranked creator profiles and gift values.",
    "version": "5.0",
    "x-build-id": "YaQAivQ38PEYeKW6R"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maximedupre~tiktok-live-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maximedupre-tiktok-live-search-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/maximedupre~tiktok-live-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-maximedupre-tiktok-live-search-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/maximedupre~tiktok-live-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-maximedupre-tiktok-live-search-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",
        "required": [
          "resultType"
        ],
        "properties": {
          "maxItems": {
            "title": "Maximum results",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after saving this many rows across the whole run. Leave blank or enter 0 for no overall row limit. TikTok may have fewer results."
          },
          "resultType": {
            "title": "Result type",
            "enum": [
              "rooms",
              "creatorRanking"
            ],
            "type": "string",
            "description": "Live rooms saves current live rooms with available room, creator, stream, and room gifter details. Daily creator ranking saves creator ranking entries for the chosen day. Fields for the other result type are ignored."
          },
          "findRoomsBy": {
            "title": "Find live rooms by",
            "enum": [
              "keyword",
              "category",
              "roomId",
              "creator"
            ],
            "type": "string",
            "description": "Find live rooms by Keyword, Category, Room ID, or Creator. Only fields for the chosen method are used. Omit this field in API runs to use Keyword.",
            "default": "keyword"
          },
          "keywords": {
            "title": "Keyword: Search keywords",
            "minItems": 1,
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Enter at least one TikTok LIVE topic, such as gaming, makeup, football, or shop. Each keyword is searched separately. This list is used only when Find live rooms by is Keyword.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "region": {
            "title": "Keyword: Search region",
            "type": "string",
            "description": "Enter a country code for TikTok LIVE Keyword search, such as US or GB. These are examples, not a full list. This sets the search region, not a strict filter for the creator’s country. Different codes may return the same rooms. Leave this empty or omit it in API runs to use US. Used only for Keyword."
          },
          "categories": {
            "title": "Category: Live categories",
            "minItems": 1,
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Open TikTok LIVE and choose \"All categories\" to find category names. The list can change and may not show every category. Enter at least one name as TikTok spells it, such as Gaming, Chats, Fortnite, or PUBG: BATTLEGROUNDS. Leave Maximum live rooms per keyword or category blank or enter 0 to collect all available rooms in each category, until TikTok has no more results or the overall Maximum results limit is reached. This list is used only when Find live rooms by is Category.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "roomIds": {
            "title": "Room ID: Room IDs",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Enter one or more exact numeric TikTok LIVE room IDs as text. To find an ID, first run Keyword or Category discovery, then copy roomId from a returned room row. Submit that ID here for Room ID lookup. Only rooms verified as live are saved. Used only for Room ID.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          "creators": {
            "title": "Creator: Creators",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Enter TikTok creator handles, with or without @, or full TikTok profile or live-page URLs. For example: @tiktok or https://www.tiktok.com/@tiktok/live. Only verified live rooms are saved. Used only for Creator.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "minViewerCount": {
            "title": "Minimum current viewers",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only rooms with at least this many current viewers. Rooms with no viewer count are skipped when this filter is set. Enter 0 to keep any known viewer count. Leave this blank or omit it in API runs to skip the filter. TikTok LIVE viewer counts can change during a stream. Used only for Live rooms."
          },
          "maxResultsPerKeyword": {
            "title": "Maximum live rooms per keyword or category",
            "minimum": 0,
            "type": "integer",
            "description": "For Keyword and Category only, stop each search after this many eligible rooms. Each eligible room counts toward that keyword or category’s limit, even if another search already saved it. Each room is saved only once per run. Leave blank or enter 0 to collect all available rooms for each keyword or category, until TikTok has no more results. The overall Maximum results limit also applies."
          },
          "rankingDay": {
            "title": "Ranking day",
            "enum": [
              "today",
              "yesterday"
            ],
            "type": "string",
            "description": "Choose today or yesterday in TikTok’s United States pool (US+) daily LIVE creator ranking. Today and yesterday follow that pool’s ranking days. The Keyword Search region does not affect creator rankings. Used only for Daily creator ranking.",
            "default": "today"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}