{
  "openapi": "3.0.1",
  "info": {
    "title": "WeChat Channels Scraper 视频号 | Videos, Creators & Comments",
    "description": "Extract WeChat Channels (视频号) data at scale. Search videos and creators by keyword, pull a creator's full catalogue with likes, comments, favourites and shares, read comment threads with IP regions, and get direct video URLs. 13 operations, no login.",
    "version": "0.0",
    "x-build-id": "GhQPUtX6yFe5z9WX1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~wechat-channels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-wechat-channels-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~wechat-channels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-wechat-channels-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~wechat-channels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-wechat-channels-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": [
          "operation"
        ],
        "properties": {
          "operation": {
            "title": "抓取内容 What to scrape",
            "enum": [
              "videoSearch",
              "channelSearch",
              "channelSearchVideos",
              "channelProfile",
              "channelVerification",
              "channelVideos",
              "collectionVideos",
              "videoDetail",
              "videoMetrics",
              "videoComments",
              "videoShareUrl",
              "resolveVideoId",
              "resolveChannelId"
            ],
            "type": "string",
            "description": "选择本次运行要抓取的能力，每次运行只跑一个。不同能力读取视频号的不同部分，并使用下方对应的输入框（说明里已标注）。<br>Pick one capability per run. Each reads a different part of WeChat Channels and uses the input field named in its description.",
            "default": "videoSearch"
          },
          "keywords": {
            "title": "搜索关键词 Search keywords",
            "maxItems": 50,
            "type": "array",
            "description": "用于<b>视频搜索</b>和<b>视频号搜索</b>。可一次填入多个关键词，并行抓取。中文关键词效果最好（如 人工智能、美食、健身教练）。<br>Used by Video search and Creator search. Add several to cover them in one run; Chinese keywords return the richest results.",
            "items": {
              "type": "string"
            }
          },
          "channels": {
            "title": "视频号账号 Creator accounts",
            "maxItems": 50,
            "type": "array",
            "description": "用于<b>账号资料</b>、<b>认证信息</b>、<b>创作者作品</b>和<b>号内搜索</b>。支持三种写法，均可自动识别：账号 ID（v2_…@finder）、视频号 ID（sphi9BjV8GK0Zsl），或账号名称（人民日报）。<b>直接填 v2_…@finder 最省钱</b>，用名称或 sph ID 需要额外一步解析。<br>Used by the creator operations. Accepts a v2_…@finder id, an sph… Channels ID, or the display name. Supplying the v2_…@finder id directly is cheapest; a name or an sph id costs one extra resolution step.",
            "items": {
              "type": "string"
            }
          },
          "videos": {
            "title": "作品 Videos",
            "maxItems": 50,
            "type": "array",
            "description": "用于<b>作品详情</b>、<b>作品数据</b>、<b>作品评论</b>、<b>分享链接</b>和<b>作品ID解析</b>。支持两种写法：作品 ID（14980729932764744213），或搜索结果里 export/ 开头的 ID。<b>作品 ID 请以文本形式填写</b>，它超出常规数字精度范围。微信分享短链（weixin.qq.com/sph/…）无法用于查询，请改用搜索结果中的 export/ ID。<br>Used by the video operations. Accepts a numeric video id or an export/… id from a search result. Enter numeric ids as text — they exceed normal number precision. WeChat share links cannot be looked up; use the export/… id from a search result instead.",
            "items": {
              "type": "string"
            }
          },
          "collections": {
            "title": "合集 ID Collection IDs",
            "maxItems": 50,
            "type": "array",
            "description": "用于<b>合集作品</b>。合集 ID 来自<b>账号资料</b>返回的 collections 列表。<br>Used by Collection videos. Collection IDs come from the `collections` list returned by Creator profile.",
            "items": {
              "type": "string"
            }
          },
          "channelIds": {
            "title": "视频号 ID Channels IDs",
            "maxItems": 50,
            "type": "array",
            "description": "用于<b>视频号ID解析</b>。填写 sph 开头的公开视频号 ID，例如 sphi9BjV8GK0Zsl。<br>Used by Resolve Channels ID. The public sph… id shown on a creator's profile.",
            "items": {
              "type": "string"
            }
          },
          "searchKeyword": {
            "title": "号内搜索关键词 Keyword to search within the creator",
            "type": "string",
            "description": "仅用于<b>号内搜索</b>，与上方“视频号账号”配合使用。<br>Only for Search within a creator, used together with Creator accounts above."
          },
          "maxPages": {
            "title": "每个条目的页数 Pages per entry",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "每个关键词或账号最多翻多少页。页数越多结果越多，费用也越高。不分页的能力会忽略此项。<br>How many pages to fetch per entry. More pages means more results and a higher cost. Ignored by operations that return a single page.",
            "default": 3
          },
          "sortBy": {
            "title": "排序 Sort by",
            "enum": [
              "relevance",
              "latest",
              "hot"
            ],
            "type": "string",
            "description": "用于<b>视频搜索</b>。<br>Used by Video search.",
            "default": "relevance"
          },
          "publishTime": {
            "title": "发布时间 Published within",
            "enum": [
              "all",
              "day",
              "week",
              "halfYear"
            ],
            "type": "string",
            "description": "用于<b>视频搜索</b>。<br>Used by Video search.",
            "default": "all"
          },
          "duration": {
            "title": "视频时长 Video length",
            "enum": [
              "all",
              "short",
              "medium",
              "long"
            ],
            "type": "string",
            "description": "用于<b>视频搜索</b>。<br>Used by Video search.",
            "default": "all"
          },
          "expandReplies": {
            "title": "展开评论回复 Expand comment replies",
            "type": "boolean",
            "description": "仅用于<b>作品评论</b>。微信每条评论默认只带 1 条回复，开启后会补全回复较多的评论。<b>回复不额外收费</b>，但会增加运行时间，每页最多补全 5 条评论。<br>Only for Video comments. WeChat returns just one reply per comment by default; turning this on fills in threads that have more. Replies are not charged separately, but the run takes longer; capped at 5 threads per page.",
            "default": false
          },
          "continuePreviousRun": {
            "title": "继续上次运行 Continue where the last run stopped",
            "type": "boolean",
            "description": "仅用于<b>作品列表</b>类能力。账号作品很多时，一次运行只能取到前面的部分；开启后，下一次运行会从上次停下的地方继续，而不是从头开始。请从第一次运行就开启，只有开启的运行才会记录位置。<br>Only for the creator and account feeds. A large account holds far more posts than one run returns, so turning this on makes the next run carry on from where the last one stopped instead of starting over. Turn it on from the first run: only runs with it on record a position.",
            "default": false
          },
          "collectionChannel": {
            "title": "合集所属账号 Collection's creator",
            "type": "string",
            "description": "可选，仅用于<b>合集作品</b>。填写合集所属的账号 ID（v2_…@finder）可提高命中率。<br>Optional, only for Collection videos. Supplying the owning creator's v2_…@finder id improves the hit rate."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}