{
  "openapi": "3.0.1",
  "info": {
    "title": "Weibo Scraper — Posts, Users, Comments & Trends",
    "description": "Scrape Sina Weibo (微博) without login: hot-channel posts, user profiles, keyword & #topic# search, the hot-search board, and comments with replies. Likes, reposts, IP region, video plays, follower counts, verification. Datacenter proxy, no cookies, JSON/CSV/Excel export.",
    "version": "1.0",
    "x-build-id": "P5Y61GaBscYwseTPi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~weibo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-weibo-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/logiover~weibo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-weibo-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/logiover~weibo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-weibo-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": {
          "hotChannels": {
            "title": "Hot channels (热门频道)",
            "type": "array",
            "description": "Weibo's hot feeds, paged as deep as you ask (the deepest source: 1,000+ posts per channel per run). Use the Chinese name or an English alias: 热门 hot, 实时 realtime, 社会 society, 财经 finance, 科技 tech, 数码 gadgets, 汽车 cars, 体育 sports, 明星 celebrities, 综艺 variety, 电影 movies, 电视剧 tv, 美妆 beauty, 时尚 fashion, 美食 food, 旅游 travel, 国际 international, 军事 military, 股市 stocks, 房产 real-estate, 健康 health, 游戏 games, 动漫 anime, 教育 education, 育儿 parenting, 萌宠 pets, 搞笑 funny, 情感 relationships, 读书 books, 摄影 photography, 音乐 music, 历史 history, 艺术 art, 设计 design, 法律 law, 科普 science, 运动健身 fitness, 好物 shopping, 深度 in-depth, 榜单 rankings, 政务 government, 辟谣 fact-check, 三农 agriculture, 公益 charity — 55 channels in total.",
            "items": {
              "type": "string"
            }
          },
          "users": {
            "title": "Users (profiles)",
            "type": "array",
            "description": "Weibo users as numeric UID (1669879400), profile URL (https://weibo.com/u/1669879400, https://m.weibo.cn/u/1669879400, https://weibo.com/adolphag) or screen name (@华为终端). Returns one profile row with followers, total likes/comments/reposts, verification, company, school, account age and influence labels, plus the user's newest posts.",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Brands, products, people or #topics#. Each keyword is searched in the Top (综合), Real-time (实时) and Hot (热门) tabs and as a #topic#; results are de-duplicated. Weibo shows signed-out visitors the first page of each tab (about 15–30 unique posts per keyword) — use many keywords for volume, or add a cookie below for deeper pages.",
            "items": {
              "type": "string"
            }
          },
          "postUrls": {
            "title": "Post URLs (with comments)",
            "type": "array",
            "description": "Specific posts to fetch together with their comments — e.g. https://weibo.com/1669879400/RlZog45UR, https://m.weibo.cn/detail/5352408760976057 or just the numeric ID. Popular posts have tens of thousands of comments; the cap is 'Max comments per post'.",
            "items": {
              "type": "string"
            }
          },
          "includeTrending": {
            "title": "Hot-search board (热搜榜)",
            "type": "boolean",
            "description": "Add the 50 topics on Weibo's real-time hot-search board, with rank, heat value, label (热/新/沸/爆), category and the time each topic entered the board.",
            "default": false
          },
          "includeTrendingPosts": {
            "title": "Also collect posts for each trending topic",
            "type": "boolean",
            "description": "For every hot-search topic, also collect the posts Weibo shows for it (first page of each search tab). Up to ~750 extra posts — what people are actually saying about each trend.",
            "default": false
          },
          "maxPostsPerChannel": {
            "title": "Max posts per channel",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "How many posts to take from each hot channel. Measured: 1,000+ unique posts per channel are available in a single run.",
            "default": 200
          },
          "maxPostsPerUser": {
            "title": "Max posts per user",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Newest posts per user. Signed-out visitors are shown about 10 per profile; with a cookie the actor pages further. 0 = profile row only.",
            "default": 10
          },
          "includeUserProfile": {
            "title": "Include profile rows",
            "type": "boolean",
            "description": "Emit one 'user' row per requested user with the full profile (followers, following, posts, lifetime likes/comments/reposts, verification reason, company, school, account creation date, credit level, influence labels).",
            "default": true
          },
          "maxPostsPerKeyword": {
            "title": "Max posts per keyword",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Cap per search keyword (Top + Real-time + Hot tabs + #topic#, de-duplicated).",
            "default": 50
          },
          "includeUserSearch": {
            "title": "Also find users for each keyword",
            "type": "boolean",
            "description": "Run Weibo's user search for every keyword and emit up to 20 matching accounts as 'user' rows (followers, verification, description) — handy for finding brand accounts and KOLs.",
            "default": false
          },
          "maxPostsPerTrend": {
            "title": "Max posts per trending topic",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Cap per hot-search topic when 'Also collect posts for each trending topic' is on.",
            "default": 15
          },
          "includeComments": {
            "title": "Collect comments for every post found",
            "type": "boolean",
            "description": "Also collect comments for posts found via channels, users, search and trends (posts given under 'Post URLs' always get their comments). Each comment row carries the commenter's profile and IP region.",
            "default": false
          },
          "maxCommentsPerPost": {
            "title": "Max comments per post",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Top-level comments per post, 20 per request. Weibo shows signed-out visitors roughly 300 per order (about 500 with \"both\"). 0 = no comments.",
            "default": 100
          },
          "commentsSort": {
            "title": "Comment order",
            "enum": [
              "both",
              "hot",
              "latest"
            ],
            "type": "string",
            "description": "Weibo shows signed-out visitors about 300 comments per order. \"Both\" collects the hottest and the newest sets (measured: 509 unique comments on one viral post vs 307 hot-only).",
            "default": "both"
          },
          "includeReplies": {
            "title": "Include replies to comments",
            "type": "boolean",
            "description": "Also collect second-level replies under each comment that has any (rows with isReply = true).",
            "default": false
          },
          "maxRepliesPerComment": {
            "title": "Max replies per comment",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Cap on replies collected under each comment. Weibo shows signed-out visitors up to 100 replies per comment.",
            "default": 10
          },
          "fetchLongText": {
            "title": "Expand long posts (全文)",
            "type": "boolean",
            "description": "Weibo truncates long posts in feeds. When on, every post flagged as long gets one extra request for its full text.",
            "default": false
          },
          "enrichAuthors": {
            "title": "Complete author profiles on feed posts",
            "type": "boolean",
            "description": "Hot-channel feeds include only a slim author object (name, verification, lifetime interactions). When on, each unique author is looked up once (cached) to add followers, following, post count, gender, location, bio and verification reason to every post row. One extra request per unique author.",
            "default": true
          },
          "maxItems": {
            "title": "Max rows in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many rows across all sources and row types. 0 = no limit.",
            "default": 1000
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Requests in flight at the same time across the whole run. 20 is fast and stable on Weibo (measured); go up to 50 for very large runs, or lower it to be gentler.",
            "default": 20
          },
          "weiboCookie": {
            "title": "Weibo session cookie (optional, beta)",
            "type": "string",
            "description": "Optional and rarely needed — channels, comments, trends, profiles and first-page search all work without it. Only if you need deeper profile timelines or search pages: paste the Cookie header of your own signed-in m.weibo.cn session. Beta: this path has not been verified against a live signed-in account yet. Stored encrypted as a secret input, used from a single IP."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify datacenter proxy works well for Weibo (measured: every request answered). Each worker keeps its own IP and visitor identity; a refused one is replaced immediately.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}