{
  "openapi": "3.0.1",
  "info": {
    "title": "Weibo User Scraper 微博 | Timelines, Profiles & Followers",
    "description": "Collect any Weibo (微博) account's posts with engagement counts, images, video and the province each was posted from. Add the full account profile, and the accounts it follows or is followed by. Paste a profile link, a username or an account ID.",
    "version": "0.0",
    "x-build-id": "IGjSRKmCZINeCdLnR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~weibo-user-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-weibo-user-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/zen-studio~weibo-user-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-weibo-user-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/zen-studio~weibo-user-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-weibo-user-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",
        "required": [
          "profileUrls"
        ],
        "properties": {
          "profileUrls": {
            "title": "🔗 Weibo profile links",
            "maxItems": 50,
            "type": "array",
            "description": "Paste Weibo profiles (微博主页) in any form: <code>https://weibo.com/u/1618051664</code>, <code>https://weibo.com/kfcchina</code>, <code>https://m.weibo.cn/u/1618051664</code>, a username like <code>kfcchina</code>, or just the account ID. Up to 50 profiles per run.",
            "items": {
              "type": "string"
            }
          },
          "maxPostsPerUser": {
            "title": "📝 Maximum posts per profile",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "How many posts (微博) to collect from each account, newest first. Set this to what you actually need; cost scales linearly.<br><br><ul><li>Default: <code>100</code>. Maximum: <code>5000</code>. Set <code>0</code> to fetch <b>all available</b> posts.</li></ul>Weibo serves an account's timeline back through time without a limit, so a long-running account can be read years deep.",
            "default": 100
          },
          "includePosts": {
            "title": "📝 Include posts",
            "type": "boolean",
            "description": "Collect the account's posts. Turn this <b>off</b> to take only the profile, the followers, or both, without any posts.<br><br>It is a separate switch because <code>0</code> in the box above means <b>all available</b> posts, so there is no number that means none.",
            "default": true
          },
          "includeProfile": {
            "title": "👤 Include full profile",
            "type": "boolean",
            "description": "Add one row per account with its complete profile: follower and following counts, lifetime likes and comments, verification and the reason for it (认证), account age (注册时间), level, location, birthday, website and bio.<br><br>Billed as one profile row per account, so a run over 10 profiles adds 10 rows.",
            "default": true
          },
          "maxFollowersPerUser": {
            "title": "👥 Followers to collect per profile",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Collect the accounts that follow each profile, one row each, with their own follower counts and verification.<br><br><b>Off by default.</b> Here <code>0</code> means <b>collect none</b>, not \"all\" — a popular account has millions of followers and every one is a billed row. Raise it only as far as you need.",
            "default": 0
          },
          "maxFollowingPerUser": {
            "title": "👥 Following to collect per profile",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Collect the accounts each profile follows, one row each.<br><br><b>Off by default.</b> As above, <code>0</code> means <b>collect none</b>. Useful for mapping who a brand or creator pays attention to.",
            "default": 0
          },
          "startDate": {
            "title": "📅 Posted after",
            "type": "string",
            "description": "Only posts published on or after this date (China time).<br><br>Pick a date, or enter a period such as <code>7 days</code> to count back from when the run starts. Leave empty for no lower limit.<br><br>Timelines are read newest first, so the run stops as soon as it passes this date."
          },
          "endDate": {
            "title": "📅 Posted before",
            "type": "string",
            "description": "Only posts published on or before this date (China time). Leave empty to collect up to the newest post."
          },
          "contentType": {
            "title": "🖼️ Content type",
            "enum": [
              "all",
              "pictures",
              "videos"
            ],
            "type": "string",
            "description": "Keep only posts that include pictures, or only posts that include a video.",
            "default": "all"
          },
          "originalOnly": {
            "title": "✍️ Original posts only",
            "type": "boolean",
            "description": "Skip reposts (转发) and keep only posts the account wrote itself.",
            "default": false
          },
          "onlyNewPosts": {
            "title": "🔁 Only new posts",
            "type": "boolean",
            "description": "Return only posts this Actor has not already delivered to you in earlier runs for the same account. Ideal for scheduled monitoring: each run adds just what is new.<br><br>Delivered posts are remembered in a storage in your own account named <code>weibo-user-delivered</code>. Delete it to start over.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}