{
  "openapi": "3.0.1",
  "info": {
    "title": "Douban Scraper (豆瓣): Movies, TV, Books, Ratings & Reviews",
    "description": "Douban (豆瓣) scraper API, no login: movie, TV and book details with Douban score and rating count, Top 250 and popular charts (movies, TV, books), keyword search, short reviews (短评) with 1-5 star ratings, and full reviews (影评/书评). Export JSON, CSV or Excel.",
    "version": "1.0",
    "x-build-id": "zcdeFdg6JIgITE62r"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sinodata~douban-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sinodata-douban-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/sinodata~douban-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sinodata-douban-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/sinodata~douban-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sinodata-douban-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Search Douban for movies, TV shows or books, e.g. 流浪地球, 三体, Oppenheimer.",
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Search in",
            "enum": [
              "movie",
              "book"
            ],
            "type": "string",
            "description": "Movies & TV, or books.",
            "default": "movie"
          },
          "subjectUrls": {
            "title": "Douban URLs or IDs",
            "type": "array",
            "description": "Movie, TV or book pages (movie.douban.com/subject/<id>, book.douban.com/subject/<id>) or numeric ids (treated as movie/TV).",
            "items": {
              "type": "string"
            }
          },
          "charts": {
            "title": "Charts",
            "type": "array",
            "description": "Douban charts to scrape: movie_top250, movie_showing (in cinemas), movie_hot_gaia, movie_weekly_best, tv_hot, tv_domestic, tv_american, tv_korean, tv_japanese, tv_animation, tv_variety_show, tv_chinese_best_weekly, tv_global_best_weekly, book_top250, book_hot.",
            "items": {
              "type": "string",
              "enum": [
                "movie_top250",
                "movie_showing",
                "movie_hot_gaia",
                "movie_weekly_best",
                "tv_hot",
                "tv_domestic",
                "tv_american",
                "tv_korean",
                "tv_japanese",
                "book_top250",
                "tv_animation",
                "tv_variety_show",
                "tv_chinese_best_weekly",
                "tv_global_best_weekly",
                "book_hot"
              ],
              "enumTitles": [
                "Top 250 movies",
                "In cinemas now",
                "Popular movies",
                "Weekly best movies",
                "Popular TV",
                "Popular Chinese TV",
                "Popular US TV",
                "Popular Korean TV",
                "Popular Japanese TV",
                "Top 250 books",
                "Popular animation",
                "Popular variety shows",
                "Weekly best Chinese TV (华语口碑剧集榜)",
                "Weekly best global TV (全球口碑剧集榜)",
                "Popular books (热门图书)"
              ]
            }
          },
          "maxSubjectsPerSource": {
            "title": "Max titles per keyword / chart",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many movies, shows or books to save for each search keyword and each chart.",
            "default": 20
          },
          "fetchFullDetails": {
            "title": "Full details",
            "type": "boolean",
            "description": "Load each title's page for the full record (cast, genres, countries, intro, rating count). Off = faster, with only the basics from search and charts.",
            "default": true
          },
          "includeShortReviews": {
            "title": "Short reviews (短评)",
            "type": "boolean",
            "description": "Save the most popular short reviews with star rating and votes. Douban shows logged-out visitors about the top 180 per title.",
            "default": false
          },
          "maxShortReviewsPerSubject": {
            "title": "Max short reviews per title",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Short reviews to save for each title (Douban's logged-out limit is about 180).",
            "default": 50
          },
          "includeReviews": {
            "title": "Full reviews (影评/书评)",
            "type": "boolean",
            "description": "Save long-form reviews. Douban shows logged-out visitors about the top 20 per title.",
            "default": false
          },
          "maxReviewsPerSubject": {
            "title": "Max full reviews per title",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Long-form reviews to save for each title.",
            "default": 10
          },
          "fetchReviewFullText": {
            "title": "Full review text",
            "type": "boolean",
            "description": "Load the complete text of each long-form review, not just the abstract (one extra request per review).",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Douban limits requests per IP. Without a proxy the scraper pauses when it hits the limit; with Apify Proxy it switches IP instead, which is much faster for big runs.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}