{
  "openapi": "3.0.1",
  "info": {
    "title": "Bilibili Scraper",
    "description": "Scrape Bilibili without a login: video stats (views, likes, coins, favorites, shares, danmaku), keyword search, uploader profiles with followers and all their videos, danmaku bullet comments with timestamps, top comments with replies, and trending lists. Export JSON, CSV, Excel.",
    "version": "0.1",
    "x-build-id": "MOFgMfhFRD27r8ZVB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/blueskyscraper~bilibili-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-blueskyscraper-bilibili-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/blueskyscraper~bilibili-scraper/runs": {
      "post": {
        "operationId": "runs-sync-blueskyscraper-bilibili-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/blueskyscraper~bilibili-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-blueskyscraper-bilibili-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": {
          "mode": {
            "title": "🧭 What to get",
            "enum": [
              "videos",
              "search",
              "users",
              "danmaku",
              "comments",
              "trending"
            ],
            "type": "string",
            "description": "<b>Videos</b> — views, likes, coins, favorites, shares, danmaku and comment counts, tags, duration, uploader. <b>Search</b> — videos for a keyword. <b>Uploaders</b> — a creator's profile and followers, then their videos. <b>Danmaku</b> — the bullet comments shown over a video, with the second they appear. <b>Comments</b> — the top comments Bilibili shows publicly, with every reply under them. <b>Trending</b> — Bilibili's popular list or a category ranking.",
            "default": "videos"
          },
          "videoUrls": {
            "title": "🎬 Video URLs or IDs",
            "type": "array",
            "description": "<code>https://www.bilibili.com/video/BV1es411D7sW</code>, a BV ID like <code>BV1es411D7sW</code>, or an AV ID like <code>av2271112</code>. Used by Videos, Danmaku and Comments.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "🔍 Search keywords",
            "type": "array",
            "description": "Search: Chinese or English, e.g. <code>minecraft</code>, <code>人工智能</code>, <code>露营</code>. Each keyword is one search, up to 1,000 videos.",
            "items": {
              "type": "string"
            }
          },
          "userUrls": {
            "title": "👤 Uploaders",
            "type": "array",
            "description": "Uploader (UP主) space URL or UID: <code>https://space.bilibili.com/546195</code> or <code>546195</code>.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 Bilibili URLs",
            "type": "array",
            "description": "Any bilibili.com link, routed automatically: video, b23.tv-free video page, uploader space, search page (<code>search.bilibili.com/all?keyword=…</code>) or the popular page.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerInput": {
            "title": "💯 Results per video, keyword or uploader",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Cap for each input: search results per keyword, videos per uploader, danmaku or comments per video, trending videos.",
            "default": 50
          },
          "sortBy": {
            "title": "↕️ Search order",
            "enum": [
              "totalrank",
              "click",
              "pubdate",
              "dm",
              "stow"
            ],
            "type": "string",
            "description": "Bilibili's own search orders.",
            "default": "totalrank"
          },
          "durationFilter": {
            "title": "⏱️ Video length",
            "enum": [
              "any",
              "short",
              "medium",
              "long",
              "verylong"
            ],
            "type": "string",
            "description": "Search: Bilibili's length filter.",
            "default": "any"
          },
          "publishedAfter": {
            "title": "📅 Published after",
            "type": "string",
            "description": "Search: <code>YYYY-MM-DD</code>."
          },
          "publishedBefore": {
            "title": "📅 Published before",
            "type": "string",
            "description": "Search: <code>YYYY-MM-DD</code>."
          },
          "includeDetails": {
            "title": "📊 Full stats for each result ($0.002 instead of $0.001)",
            "type": "boolean",
            "description": "Search and uploader videos: open every video for likes, coins, favorites, shares, tags and uploader — billed as a video row.",
            "default": false
          },
          "includeVideos": {
            "title": "🎞️ Add the uploader's videos",
            "type": "boolean",
            "description": "Uploaders: after the profile, the uploader's videos with views, comments, danmaku and length ($0.001 each).",
            "default": true
          },
          "videoOrder": {
            "title": "↕️ Uploader video order",
            "enum": [
              "pubdate",
              "click",
              "stow"
            ],
            "type": "string",
            "description": "Order of the uploader's videos.",
            "default": "pubdate"
          },
          "allParts": {
            "title": "🧩 All parts of multi-part videos",
            "type": "boolean",
            "description": "Danmaku: read every part (P1, P2…) instead of the first.",
            "default": false
          },
          "includeTags": {
            "title": "🏷️ Video tags",
            "type": "boolean",
            "description": "Videos and Trending: add the video's tags (one extra request per video, no extra charge).",
            "default": true
          },
          "trendingList": {
            "title": "🔥 Trending list",
            "enum": [
              "popular",
              "all",
              "anime",
              "music",
              "dance",
              "game",
              "knowledge",
              "tech",
              "sports",
              "car",
              "life",
              "food",
              "animal",
              "fashion",
              "entertainment",
              "film",
              "kichiku"
            ],
            "type": "string",
            "description": "Trending: Bilibili's Popular list, or the ranking of one category.",
            "default": "popular"
          },
          "maxItems": {
            "title": "Maximum rows per run",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many rows in the whole run — a hard ceiling on cost.",
            "default": 10000
          },
          "monitoringStoreName": {
            "title": "🔔 Monitoring mode — store name",
            "type": "string",
            "description": "Give the run a name (e.g. <code>minecraft-new</code>) and every later run with the same name returns <b>only rows it has not delivered before</b> — new videos, new danmaku, new comments. Empty = normal run."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}