{
  "openapi": "3.0.1",
  "info": {
    "title": "Weibo Scraper 微博 No Login [From $2] Posts, Comments, Hot Search",
    "description": "[From $2 per 1,000 results] Sina Weibo (微博) scraper, no login or cookie: keyword search, posts, user profiles, user posts, comments, likers, reposts, fans, following, the realtime hot search list (热搜) and rankings, plus user, topic, video and picture search. Search and user posts $3 per 1,000.",
    "version": "1.0",
    "x-build-id": "2XTGapFWre4cA5vy2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~weibo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-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/memo23~weibo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-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/memo23~weibo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-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": {
          "operation": {
            "title": "Operation",
            "enum": [
              "searchWeibo",
              "comments",
              "likers",
              "hotSearch",
              "hotTimeline",
              "weiboDetail",
              "userDetail",
              "userFans",
              "userFollowing",
              "userPosts",
              "reposts",
              "advancedSearch",
              "searchUsers",
              "searchTopics",
              "searchVideos",
              "searchPictures",
              "ranking"
            ],
            "type": "string",
            "description": "One job per run. Default searchWeibo. Nothing needs a login.",
            "default": "searchWeibo"
          },
          "weiboId": {
            "title": "Weibo ID or URL",
            "type": "string",
            "description": "Post id for weiboDetail, comments, likers and reposts. A numeric mid (example 5249718969175092), a bid such as QkRpSCuRm, or a URL such as https://m.weibo.cn/detail/5249718969175092. Required for those four operations: with no id the run fails before it returns any rows. Ignored on the other operations."
          },
          "weiboIds": {
            "title": "Several Weibo IDs or URLs",
            "type": "array",
            "description": "Optional. Run weiboDetail, comments, likers or reposts on several posts in one run. Same formats as the single field. When this list has entries it replaces the single field. A post that fails is logged and skipped; the run fails only when every post fails.",
            "items": {
              "type": "string"
            }
          },
          "userId": {
            "title": "User ID or URL",
            "type": "string",
            "description": "User id for userDetail, userPosts, userFans and userFollowing. A numeric UID (example 1669879400) or a profile URL such as https://weibo.com/u/1669879400. Required for those four operations: with no id the run fails before it returns any rows. Prefill 1669879400 is a public account whose fans and following lists are visible. Ignored on the other operations."
          },
          "userIds": {
            "title": "Several user IDs or URLs",
            "type": "array",
            "description": "Optional. Run userDetail, userPosts, userFans or userFollowing on several accounts in one run. Same formats as the single field. When this list has entries it replaces the single field. An account that fails is logged and skipped.",
            "items": {
              "type": "string"
            }
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many pages to request. Search is about 40 posts per page; filtered search, user search, picture search, user posts, fans and following about 20; video search, trending posts and comments about 10. Comments stop after 2 pages without a login. Default 5. Minimum 1. Maximum 50. Ignored for weiboDetail, userDetail, hotSearch, reposts and ranking.",
            "default": 5
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many dataset rows. Example 20. No default: comments and hot search keep going until maxPages or the end of the list. Set this on every agent run."
          },
          "fetchFullText": {
            "title": "Full text of long posts",
            "type": "boolean",
            "description": "Weibo's lists send only the first ~150 characters of a long post. When on (default), each cut-off post is read again for its whole text, and every post row says isTextComplete. Turn off for faster runs that keep the preview.",
            "default": true
          },
          "includeComments": {
            "title": "Include comments of each post",
            "type": "boolean",
            "description": "For searchWeibo, hotTimeline, userPosts, weiboDetail, advancedSearch and searchVideos: after each post, also save its comments as rows of their own (_operation comments, charged as comments). Up to maxCommentsPerPost per post; without a login Weibo serves about the first 2 pages.",
            "default": false
          },
          "maxCommentsPerPost": {
            "title": "Max comments per post",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "With includeComments on: how many comments to save per post. Default 20.",
            "default": 20
          },
          "keyword": {
            "title": "Search keyword",
            "type": "string",
            "description": "Keyword for searchWeibo, advancedSearch, searchUsers, searchTopics, searchVideos and searchPictures. Chinese or English. Example 北京 or Tesla. Default 北京. Use the Several keywords list below for more than one. Ignored on the other operations.",
            "default": "北京"
          },
          "keywords": {
            "title": "Several keywords",
            "type": "array",
            "description": "Optional. Search several keywords in one run, one after another into the same dataset (each row keeps its keyword). When this list has entries it replaces the single keyword field. maxPages applies to each keyword, maxItems to the whole run.",
            "items": {
              "type": "string"
            }
          },
          "startDay": {
            "title": "Search start date",
            "type": "string",
            "description": "Optional. Keep search posts whose China calendar day is on or after this YYYY-MM-DD. Example 2026-08-22. Leave empty to keep Weibo's own ranking. Used by searchWeibo and advancedSearch (which needs both start and end date)."
          },
          "endDay": {
            "title": "Search end date",
            "type": "string",
            "description": "Optional. Keep search posts whose China calendar day is on or before this YYYY-MM-DD. Example 2026-09-21. Leave empty for no end cap. Ignored unless operation is searchWeibo."
          },
          "searchType": {
            "title": "Search filter",
            "enum": [
              "all",
              "hot",
              "original",
              "verified",
              "media",
              "viewpoint"
            ],
            "type": "string",
            "description": "For advancedSearch: which posts to return. For searchVideos only hot and all apply. Default all.",
            "default": "all"
          },
          "includeType": {
            "title": "Media filter",
            "enum": [
              "all",
              "pic",
              "video",
              "music",
              "link"
            ],
            "type": "string",
            "description": "For advancedSearch: only posts that carry this kind of media. Default all.",
            "default": "all"
          },
          "ranking": {
            "title": "Ranking",
            "enum": [
              "entertainment",
              "life",
              "social"
            ],
            "type": "string",
            "description": "For the ranking operation: which hot list to return, about 50 entries with heat.",
            "default": "entertainment"
          },
          "proxy": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional proxy override. Leave empty to use the actor's built-in residential proxy. To use Apify Proxy instead, pass {\"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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}