{
  "openapi": "3.0.1",
  "info": {
    "title": "Douban Movie Top 250 Scraper 豆瓣电影: Hot Charts, Filters, Changes",
    "description": "Scrape Douban Top 250, weekly best, trending, cinema and TV charts plus 28 genre charts (豆瓣电影榜单 数据采集). Filter by rating, year, genre and country, add IMDb IDs and star-rating shares, and track rank changes between runs. Export JSON, CSV or Excel. No login or cookies needed.",
    "version": "0.3",
    "x-build-id": "iGbzdgiEQi8cYyFoa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~douban-movie-rankings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-douban-movie-rankings-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/getascraper~douban-movie-rankings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-douban-movie-rankings-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/getascraper~douban-movie-rankings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-douban-movie-rankings-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": {
          "rankingLists": {
            "title": "Ranking lists",
            "type": "array",
            "description": "Which Douban charts to read. Pick one or several: the Top 250, weekly and real-time charts, cinema lists, trending lists, or TV charts. Each title is labelled with the list it came from.",
            "items": {
              "type": "string",
              "enum": [
                "top250",
                "weeklyBest",
                "realtimeHot",
                "nowShowing",
                "comingSoon",
                "trending",
                "recentHot",
                "tvGlobalBest",
                "tvChineseBest",
                "tvHot"
              ],
              "enumTitles": [
                "Douban Top 250 (豆瓣电影 Top250)",
                "Weekly best-rated movies (一周口碑榜)",
                "Real-time hottest movies (实时热门电影)",
                "Now showing in cinemas (影院热映)",
                "Coming soon to cinemas (即将上映)",
                "Trending movies (豆瓣热门)",
                "Recent popular movies (近期热门电影)",
                "Weekly best global TV series (全球口碑剧集榜)",
                "Weekly best Chinese-language TV series (华语口碑剧集榜)",
                "Recent popular TV series (近期热门剧集)"
              ]
            },
            "default": [
              "top250"
            ]
          },
          "genreCharts": {
            "title": "Genre charts",
            "type": "array",
            "description": "Add Douban's ranked chart for one or more genres, for example Sci-Fi or Animation. Leave empty to skip genre charts.",
            "items": {
              "type": "string",
              "enum": [
                "纪录片",
                "传记",
                "犯罪",
                "历史",
                "动作",
                "歌舞",
                "儿童",
                "悬疑",
                "剧情",
                "灾难",
                "爱情",
                "音乐",
                "冒险",
                "奇幻",
                "科幻",
                "运动",
                "惊悚",
                "恐怖",
                "战争",
                "短片",
                "喜剧",
                "动画",
                "同性",
                "西部",
                "家庭",
                "武侠",
                "古装",
                "黑色电影"
              ],
              "enumTitles": [
                "Documentary 纪录片",
                "Biography 传记",
                "Crime 犯罪",
                "History 历史",
                "Action 动作",
                "Musical 歌舞",
                "Children 儿童",
                "Mystery 悬疑",
                "Drama 剧情",
                "Disaster 灾难",
                "Romance 爱情",
                "Music 音乐",
                "Adventure 冒险",
                "Fantasy 奇幻",
                "Sci-Fi 科幻",
                "Sport 运动",
                "Thriller 惊悚",
                "Horror 恐怖",
                "War 战争",
                "Short 短片",
                "Comedy 喜剧",
                "Animation 动画",
                "LGBTQ 同性",
                "Western 西部",
                "Family 家庭",
                "Martial arts 武侠",
                "Costume 古装",
                "Film noir 黑色电影"
              ]
            },
            "default": []
          },
          "genreChartBand": {
            "title": "Genre chart score band",
            "enum": [
              "100:90",
              "90:80",
              "80:70",
              "70:60",
              "60:50"
            ],
            "type": "string",
            "description": "Which slice of each genre chart to read. The first option is the best-rated slice and is what most people want.",
            "default": "100:90"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Keep only titles rated at least this high on Douban's 10-point scale. Titles without a rating are left out when this is set. Use 0 for no limit.",
            "default": 0
          },
          "minRatingCount": {
            "title": "Minimum number of ratings",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Keep only titles with at least this many Douban ratings, which removes titles rated by only a handful of people. Use 0 for no limit.",
            "default": 0
          },
          "yearFrom": {
            "title": "Release year from",
            "minimum": 1880,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only titles released in this year or later. Leave empty for no lower limit. Genre charts do not show the year, so this triggers one extra lookup per candidate title there."
          },
          "yearTo": {
            "title": "Release year to",
            "minimum": 1880,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only titles released in this year or earlier. Leave empty for no upper limit."
          },
          "genres": {
            "title": "Genres",
            "type": "array",
            "description": "Keep titles that belong to at least one of these genres.",
            "items": {
              "type": "string",
              "enum": [
                "纪录片",
                "传记",
                "犯罪",
                "历史",
                "动作",
                "歌舞",
                "儿童",
                "悬疑",
                "剧情",
                "灾难",
                "爱情",
                "音乐",
                "冒险",
                "奇幻",
                "科幻",
                "运动",
                "惊悚",
                "恐怖",
                "战争",
                "短片",
                "喜剧",
                "动画",
                "同性",
                "西部",
                "家庭",
                "武侠",
                "古装",
                "黑色电影"
              ],
              "enumTitles": [
                "Documentary 纪录片",
                "Biography 传记",
                "Crime 犯罪",
                "History 历史",
                "Action 动作",
                "Musical 歌舞",
                "Children 儿童",
                "Mystery 悬疑",
                "Drama 剧情",
                "Disaster 灾难",
                "Romance 爱情",
                "Music 音乐",
                "Adventure 冒险",
                "Fantasy 奇幻",
                "Sci-Fi 科幻",
                "Sport 运动",
                "Thriller 惊悚",
                "Horror 恐怖",
                "War 战争",
                "Short 短片",
                "Comedy 喜剧",
                "Animation 动画",
                "LGBTQ 同性",
                "Western 西部",
                "Family 家庭",
                "Martial arts 武侠",
                "Costume 古装",
                "Film noir 黑色电影"
              ]
            },
            "default": []
          },
          "countries": {
            "title": "Countries or regions",
            "type": "array",
            "description": "Keep titles produced in at least one of these places. Type English names such as Japan, USA, UK, France, South Korea or China, or Douban's Chinese names such as 日本 or 美国.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Spoken languages",
            "type": "array",
            "description": "Keep titles with at least one of these spoken languages, for example English, Japanese, Mandarin or Cantonese. Language is only shown on each title's own page, so this adds one lookup per candidate title.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleContains": {
            "title": "Title contains",
            "type": "string",
            "description": "Keep titles whose Chinese title, original title or alternative title contains this text. Not case sensitive."
          },
          "personContains": {
            "title": "Director or cast contains",
            "type": "string",
            "description": "Keep titles where a director, writer or cast member's name contains this text, for example 诺兰 or 周星驰. Cast names on ranking pages cover the lead actors only. Turn on detail enrichment to match the full cast."
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "listOrder",
              "rating",
              "ratingCount",
              "yearNewest",
              "yearOldest"
            ],
            "type": "string",
            "description": "The order of the results inside each list. Douban order keeps the official ranking. The other options read the whole list first, then sort.",
            "default": "listOrder"
          },
          "maxItems": {
            "title": "Maximum titles per list",
            "minimum": 1,
            "maximum": 1500,
            "type": "integer",
            "description": "The most titles to return from each selected list, counted after the filters. The Top 250 has 250 titles, genre charts hold several hundred.",
            "default": 25
          },
          "dedupeAcrossLists": {
            "title": "Skip titles already returned by an earlier list",
            "type": "boolean",
            "description": "When you select several lists, a film that appears in more than one list is returned only once, in the first list that has it. Leave off to get one row per list.",
            "default": false
          },
          "enrichDetails": {
            "title": "Add full title details",
            "type": "boolean",
            "description": "Adds the full cast, writers, languages, runtime, every release date, IMDb ID, summary, tags, awards and chart honors, review counts and a larger poster. Costs a few extra lookups per title, so runs take longer.",
            "default": false
          },
          "includeAudienceStats": {
            "title": "Add audience statistics",
            "type": "boolean",
            "description": "Adds the share of 1 to 5 star ratings, how many people watched, are watching or want to watch the title, and how it ranks inside its genres.",
            "default": false
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Remembers each list between runs and labels every title as new, moved up, moved down, rating changed or unchanged, with the previous rank and rating. Reads of the whole list also report titles that dropped out.",
            "default": false
          },
          "onlyChanges": {
            "title": "Return only changes",
            "type": "boolean",
            "description": "With change tracking on, skip titles whose rank and rating did not change since the last run. The first run returns everything as new.",
            "default": false
          },
          "stateName": {
            "title": "Tracking name",
            "type": "string",
            "description": "A name for this tracker. Runs that share a name continue the same history, and different names keep separate histories. Leave empty to use one shared default history.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings used to reach Douban. The default works for most runs. Switch to residential proxies if Douban refuses many requests.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}