{
  "openapi": "3.0.1",
  "info": {
    "title": "Douban Music Scraper 豆瓣音乐: Top 250, Weekly Charts and Tag Lists",
    "description": "Scrape Douban Music 豆瓣音乐 rankings: the all-time Top 250, weekly new albums and musician singles charts, and any genre or artist tag list. Filter by rating, year and genre, add track lists and star splits, and track rank changes between runs. Export to JSON, CSV or Excel. 豆瓣音乐排行榜数据采集.",
    "version": "0.2",
    "x-build-id": "6pmCeJ5LW7LbKztB2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~douban-music-rankings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-douban-music-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-music-rankings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-douban-music-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-music-rankings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-douban-music-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 Music rankings to collect. Top 250 is the all-time best-rated list. The new albums chart and the musician singles chart are Douban's weekly charts. Leave empty to use only the tags and album links below.",
            "items": {
              "type": "string",
              "enum": [
                "top250",
                "newAlbumsChart",
                "musicianSinglesChart"
              ],
              "enumTitles": [
                "Top 250 albums (all-time)",
                "Weekly new albums chart",
                "Weekly musician singles chart"
              ]
            },
            "default": [
              "top250"
            ]
          },
          "tags": {
            "title": "Genre, artist or era tags",
            "type": "array",
            "description": "Collect Douban's album list for each tag, for example a genre such as 摇滚 or jazz, an artist such as 周杰伦, or a region. A tag page link also works. Each tag is read as its own ranking.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "tagSort": {
            "title": "Tag list order",
            "enum": [
              "heat",
              "rating",
              "date",
              "popularity"
            ],
            "type": "string",
            "description": "How Douban orders the albums inside each tag. Best rated puts the highest scores first, so combine it with a minimum rating count to skip albums with only a few votes.",
            "default": "heat"
          },
          "subjectUrls": {
            "title": "Album links or IDs",
            "type": "array",
            "description": "Specific Douban Music album pages to collect in full, for example https://music.douban.com/subject/3040149/ or just 3040149. These always include the detail fields. Filters below still apply to them.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Keep only albums with a Douban rating at or above this value (0 to 10). Use 0 to switch the filter off.",
            "default": 0
          },
          "minRatingCount": {
            "title": "Minimum number of ratings",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Keep only albums rated by at least this many Douban listeners. Useful to skip albums with a high score from only a handful of votes. Use 0 to switch the filter off.",
            "default": 0
          },
          "releaseYearFrom": {
            "title": "Released from year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only albums released in this year or later. Use 0 for no lower limit.",
            "default": 0
          },
          "releaseYearTo": {
            "title": "Released up to year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Keep only albums released in this year or earlier. Use 0 for no upper limit.",
            "default": 0
          },
          "genres": {
            "title": "Genres",
            "type": "array",
            "description": "Keep albums whose genre contains any of these words, as Douban shows them (for example 摇滚, 流行, 民谣, 原声). Leave empty for all genres.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "artists": {
            "title": "Artists",
            "type": "array",
            "description": "Keep albums by artists whose name contains any of these words. Matches Chinese and Latin names, ignoring case. Leave empty for all artists.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "albumTypes": {
            "title": "Album types",
            "type": "array",
            "description": "Keep albums of these release types as Douban labels them, for example 专辑 (album), 单曲 (single), EP, Soundtrack or Live. Leave empty for all types.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "mediaTypes": {
            "title": "Media formats",
            "type": "array",
            "description": "Keep albums released on these formats, for example CD, Vinyl, 黑胶 or 数字 (digital). Leave empty for all formats.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleKeywords": {
            "title": "Title keywords",
            "type": "array",
            "description": "Keep albums whose title or alternate title contains any of these words. Leave empty to keep all titles.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include full album details",
            "type": "boolean",
            "description": "Open every album page to add the track list, summary, 1 to 5 star rating split, label, barcode, listener counts, other editions and related albums. This adds one page view per album, so runs take longer.",
            "default": false
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Remember each list after the run and compare it with the previous run. Rows then show rank change, new entries and rating movement. The first run only saves a baseline. Schedule the Actor weekly to build a history.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor name",
            "type": "string",
            "description": "A label for this watch. Use different names to keep independent watches on the same list, for example one for your A&R team and one for research. Only used when change tracking is on.",
            "default": "default"
          },
          "onlyChanges": {
            "title": "Only output changed albums",
            "type": "boolean",
            "description": "After the baseline run, return only albums that are new in the list, moved up or down, or changed rating. Everything else is skipped. Only used when change tracking is on.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum albums per list",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of albums to collect from each ranking list, tag or chart, in the order Douban shows them. The weekly charts are shorter than this.",
            "default": 25
          },
          "maxListPages": {
            "title": "Maximum pages to read per list",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Safety limit for how many ranking pages are read per tag when filters skip many albums. Tag pages hold 20 albums and Douban shows at most 50 pages.",
            "default": 10
          },
          "uniqueAlbums": {
            "title": "Keep each album only once",
            "type": "boolean",
            "description": "When an album appears in several lists, output it only for the first list instead of once per list.",
            "default": false
          },
          "requestDelaySecs": {
            "title": "Delay between page views",
            "minimum": 0.5,
            "maximum": 10,
            "type": "number",
            "description": "Pause in seconds between Douban page views. Keep the default for polite, reliable runs. Higher values are slower but gentler.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings for the public Douban pages. Leave the default unless your account needs a custom route.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}