{
  "openapi": "3.0.1",
  "info": {
    "title": "Douyin 抖音 Trending Scraper - Hot Search & Charts",
    "description": "Scrape Douyin (抖音) trends: the live hot search list and its themed boards, hot and rising topics by category and city, hot videos, trending hashtags, top search terms and the music charts. Export ranks, heat scores and trends to JSON/CSV/Excel. No login, cookies or proxy needed.",
    "version": "1.0",
    "x-build-id": "xbtM1LECFSBaQUNaX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vulnv~douyin-trending-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vulnv-douyin-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/vulnv~douyin-trending-scraper/runs": {
      "post": {
        "operationId": "runs-sync-vulnv-douyin-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/vulnv~douyin-trending-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-vulnv-douyin-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",
        "required": [
          "operation"
        ],
        "properties": {
          "operation": {
            "title": "⚙️ Operation",
            "enum": [
              "hot_search",
              "hot_topics",
              "hot_videos",
              "hot_hashtags",
              "search_terms",
              "hot_music"
            ],
            "type": "string",
            "description": "Which ranking to scrape. Each operation has its own board selector and filters below:\n\n• Hot search list → Hot search board\n• Hot topics → Topic board, category, city, sort, dates\n• Hot videos → Video board, time window, content category\n• Trending hashtags → Hashtag board, time window, content category\n• Top search terms → Search board, time window\n• Music charts → Music chart",
            "default": "hot_search"
          },
          "maxItems": {
            "title": "📊 Maximum results",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Upper bound on rows for the chosen board. The hot search list has about 50 entries and each music chart 30-50; the topic, video, hashtag and search boards go much deeper. Cost scales linearly. Set 0 to fetch all available.",
            "default": 100
          },
          "keyword": {
            "title": "🔎 Keyword filter (optional)",
            "type": "string",
            "description": "For Hot topics, Hot videos, Trending hashtags and Top search terms. Only keep board entries that contain this word, e.g. 国庆 or 金价. Leave empty for the whole board."
          },
          "hotSearchBoard": {
            "title": "🔥 Hot search board",
            "enum": [
              "hot",
              "seeding",
              "entertainment",
              "society",
              "challenge"
            ],
            "type": "string",
            "description": "For \"Hot search list\". The in-app hot list and its themed sub-boards.",
            "default": "hot"
          },
          "topicBoard": {
            "title": "📈 Topic board",
            "enum": [
              "total",
              "rising",
              "city",
              "challenge"
            ],
            "type": "string",
            "description": "For \"Hot topics\". Total hot list, rising topics, city topics or challenges. Rows include the topic's category, heat score, rank change and a heat trend.",
            "default": "total"
          },
          "topicCategory": {
            "title": "🏷️ Topic category",
            "enum": [
              "all",
              "food",
              "travel",
              "platform_trends",
              "topic_interaction",
              "entertainment",
              "society",
              "anime",
              "transport",
              "parenting",
              "sports",
              "military",
              "drama",
              "pets",
              "weather",
              "talent",
              "culture_education",
              "fashion",
              "politics",
              "campus",
              "cars",
              "gaming",
              "tech",
              "finance"
            ],
            "type": "string",
            "description": "For \"Hot topics\" (total, rising and city boards). Only keep topics in this category.",
            "default": "all"
          },
          "city": {
            "title": "🏙️ City",
            "type": "string",
            "description": "For the \"City topics\" board. A Chinese city name (e.g. 北京, 上海, 成都) or a city code (e.g. 110000). Leave empty for city topics from everywhere."
          },
          "topicSort": {
            "title": "↕️ Topic sort",
            "enum": [
              "rank",
              "rank_change"
            ],
            "type": "string",
            "description": "For the \"Rising topics\" and \"City topics\" boards. Sort by heat rank, or by how many places a topic climbed.",
            "default": "rank"
          },
          "startDate": {
            "title": "📅 Start date",
            "type": "string",
            "description": "For the \"Total hot list\" board only. Set both dates to get every topic that was on the board during that period instead of the latest snapshot. Recent dates only."
          },
          "endDate": {
            "title": "📅 End date",
            "type": "string",
            "description": "For the \"Total hot list\" board only. Last day of the period (inclusive)."
          },
          "videoBoard": {
            "title": "🎬 Video board",
            "enum": [
              "all",
              "low_follower_hits",
              "high_completion",
              "high_follower_growth",
              "high_like_rate"
            ],
            "type": "string",
            "description": "For \"Hot videos\". The overall hot video ranking or one of its specialised boards.",
            "default": "all"
          },
          "hashtagBoard": {
            "title": "#️⃣ Hashtag board",
            "enum": [
              "hot",
              "rising"
            ],
            "type": "string",
            "description": "For \"Trending hashtags\". The hottest hashtags, or the ones rising fastest.",
            "default": "hot"
          },
          "searchBoard": {
            "title": "🔍 Search board",
            "enum": [
              "hot",
              "rising"
            ],
            "type": "string",
            "description": "For \"Top search terms\". The most searched terms, or the ones rising fastest.",
            "default": "hot"
          },
          "timeWindow": {
            "title": "⏱️ Time window",
            "enum": [
              "1h",
              "24h",
              "72h",
              "7d"
            ],
            "type": "string",
            "description": "For \"Hot videos\", \"Trending hashtags\" and \"Top search terms\". The period the ranking is computed over.",
            "default": "24h"
          },
          "contentCategory": {
            "title": "🗂️ Content category",
            "enum": [
              "all",
              "food",
              "travel",
              "leisure",
              "culture",
              "dance",
              "education",
              "art",
              "charity",
              "fashion",
              "anime",
              "tv_series",
              "tech",
              "rural",
              "sports",
              "animals",
              "movies",
              "cars",
              "health",
              "music",
              "casual",
              "photography",
              "celebrities",
              "beauty_looks",
              "home_living",
              "relationships",
              "humanities",
              "career",
              "finance",
              "science",
              "parenting",
              "variety_shows",
              "life_vlog",
              "effects_minigames",
              "drama",
              "law",
              "family",
              "ai_video",
              "gaming"
            ],
            "type": "string",
            "description": "For \"Hot videos\" and \"Trending hashtags\". Only keep entries in this content vertical.",
            "default": "all"
          },
          "musicChart": {
            "title": "🎵 Music chart",
            "enum": [
              "hot",
              "trending",
              "original"
            ],
            "type": "string",
            "description": "For \"Music charts\". The hot, rising or original music chart.",
            "default": "hot"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}