{
  "openapi": "3.0.1",
  "info": {
    "title": "Douyin Hot Search Scraper - China Trends & Videos",
    "description": "Scrape Douyin hot search list with every topic's videos, plus Douyin hot songs, Baidu, Zhihu and Toutiao boards. Rising list and change vs last run. Rank, heat and links. No login.",
    "version": "0.1",
    "x-build-id": "fytyxnGXX6DJNzcVU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~china-trending-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-china-trending-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/scrapewise~china-trending-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-china-trending-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/scrapewise~china-trending-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-china-trending-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": {
          "platforms": {
            "title": "Boards",
            "type": "array",
            "description": "One or more Chinese trending boards to read in this run: Douyin hot search (热榜, about 50 topics plus the 5 rising ones), Douyin hot songs chart (热歌榜), Baidu realtime hot (百度热搜), Zhihu hot list (知乎热榜) and Toutiao hot board (头条热榜). Default Douyin hot search. Each topic is one row with rank, title, heat value, link and board, charged as 'Trending topic delivered'.",
            "items": {
              "type": "string",
              "enum": [
                "douyin",
                "douyin_music",
                "baidu",
                "zhihu",
                "toutiao"
              ],
              "enumTitles": [
                "Douyin hot search (热榜)",
                "Douyin hot songs chart (热歌榜)",
                "Baidu realtime hot (百度热搜)",
                "Zhihu hot list (知乎热榜)",
                "Toutiao hot board (头条热榜)"
              ]
            },
            "default": [
              "douyin"
            ]
          },
          "includeVideos": {
            "title": "Add the videos of each Douyin topic",
            "type": "boolean",
            "description": "Off (default). On: for every Douyin hot topic, also return the videos Douyin shows under it, one row each with description, likes, comments, shares, saves, author, duration, video and cover links. Each video is charged as 'Topic video delivered', so limit it with the two fields below. Only for the Douyin hot search board.",
            "default": false
          },
          "maxVideosPerTopic": {
            "title": "Max videos per topic",
            "minimum": 1,
            "type": "integer",
            "description": "Upper limit of videos for each Douyin topic, default 20, for example 5 to get only the top videos. Most topics have 1 to 20. Used only when 'Add the videos of each Douyin topic' is on or 'Specific Douyin topics' is filled.",
            "default": 20
          },
          "maxTopicsWithVideos": {
            "title": "Only the top N topics get videos",
            "minimum": 1,
            "type": "integer",
            "description": "Get videos only for the top N topics of the board, for example 10 for the top 10. Leave empty for all topics on the board (up to 'Max topics per board'). Lowers cost when you need videos only for the hottest topics."
          },
          "topics": {
            "title": "Specific Douyin topics (optional)",
            "type": "array",
            "description": "Optional. Exact topic words from the current Douyin hot list, one per line, to get the videos of just those topics. Douyin only serves videos for words that are on the board right now; other words return a free NO_RESULTS row. Copy them from the 'title' of a previous run.",
            "items": {
              "type": "string"
            }
          },
          "maxTopics": {
            "title": "Max topics per board",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only the top N topics of each board, for example 10. Default 50, which covers the full Douyin and Baidu boards. You pay per topic delivered, so this caps the cost per board.",
            "default": 50
          },
          "includeRisingList": {
            "title": "Include Douyin rising list",
            "type": "boolean",
            "description": "On (default): adds the 5 topics Douyin marks as rising right now (实时上升热点), as board 'rising'. Turn off to get only the main hot search list.",
            "default": true
          },
          "compareWithPreviousRun": {
            "title": "Compare with previous run",
            "type": "boolean",
            "description": "Made for scheduled runs (for example hourly). Each topic gets 'trend' new, rising, falling or stable, with its previous rank and heat change, and topics that left the board come back once as trend 'dropped' (free row). The last snapshot is kept in a named key-value store in your account. On the first run every topic is new. 'trackChanges' also works.",
            "default": false
          },
          "snapshotName": {
            "title": "Comparison name",
            "type": "string",
            "description": "Name of the comparison to use, so different schedules keep separate histories, for example hourly-douyin and daily-all. Letters, numbers and hyphens. Default 'default'. Only used when 'Compare with previous run' is on."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) is the default and recommended; the boards are read from their public pages. Change it only to use your own proxies.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}