{
  "openapi": "3.0.1",
  "info": {
    "title": "Douban Scraper - Movies, TV, Books, Ratings & Reviews",
    "description": "Scrape Douban (豆瓣) movies, TV shows, books and music: search, Top 250 and other charts, scores, cast, synopsis, short comments and full reviews. No login needed. Times in UTC. Export JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "EAekYF7sUWXVqAJqo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/v1tal615~douban-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-v1tal615-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/v1tal615~douban-scraper/runs": {
      "post": {
        "operationId": "runs-sync-v1tal615-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/v1tal615~douban-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-v1tal615-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": "Titles, people or keywords to search for, in Chinese or English.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchCategory": {
            "title": "Search in",
            "enum": [
              "movie",
              "book",
              "music"
            ],
            "type": "string",
            "description": "Which Douban section the keywords are searched in.",
            "default": "movie"
          },
          "subjectUrls": {
            "title": "Subject URLs or IDs",
            "type": "array",
            "description": "Douban links (movie.douban.com/subject/1292052/, book.douban.com/subject/2567698/, music.douban.com/subject/..., m.douban.com/...) or IDs. A bare ID is read as a movie or TV show; write book:2567698 or music:1394539 for the others.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "charts": {
            "title": "Charts (榜单)",
            "type": "array",
            "description": "Chart IDs or m.douban.com/subject_collection/... URLs. Popular ones: movie_top250, movie_showing (in cinemas), movie_real_time_hotest, movie_hot_gaia, movie_soon, movie_weekly_best, tv_hot, tv_real_time_hotest, tv_domestic, tv_american, tv_korean, tv_japanese, tv_animation, show_hot (variety shows), book_top250, book_bestseller, book_fiction, book_nonfiction, music_single, music_chinese.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max subjects per keyword / chart",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Upper limit of movies, shows, books or albums taken from each search keyword and each chart.",
            "default": 20
          },
          "fetchDetails": {
            "title": "Fetch full details",
            "type": "boolean",
            "description": "Search and chart entries only carry the title, rating and a one-line summary. Turn on to add genres, directors, cast, authors, countries, languages, durations, release dates, synopsis, comment and review counts (one extra request per subject). Always on for subject URLs.",
            "default": true
          },
          "includeComments": {
            "title": "Include short comments (短评)",
            "type": "boolean",
            "description": "Also get the most helpful short comments of each subject, with the commenter's star rating and vote count.",
            "default": false
          },
          "maxCommentsPerSubject": {
            "title": "Max short comments per subject",
            "minimum": 1,
            "maximum": 150,
            "type": "integer",
            "description": "Douban shows guests up to about 150 short comments per subject, most helpful first.",
            "default": 20
          },
          "includeReviews": {
            "title": "Include reviews (影评/书评)",
            "type": "boolean",
            "description": "Also get the most helpful long reviews of each subject.",
            "default": false
          },
          "maxReviewsPerSubject": {
            "title": "Max reviews per subject",
            "minimum": 1,
            "maximum": 40,
            "type": "integer",
            "description": "Douban shows guests the first two pages of reviews (most helpful first), about 40 per subject.",
            "default": 10
          },
          "fullReviewText": {
            "title": "Full review text",
            "type": "boolean",
            "description": "Review lists only carry a ~100 character abstract. Turn on to fetch the complete text of each review (one extra request per review).",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed in most cases: the scraper switches to Apify Proxy on its own if Douban blocks it.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}