{
  "openapi": "3.0.1",
  "info": {
    "title": "WeChat Official Account Scraper",
    "description": "Search public WeChat Official Account (公众号) articles by keyword. Get titles, summaries, accounts, publish times, full text, Markdown and images, plus account profiles, album lists and related searches as clean JSON. Monitor new articles. No WeChat login needed.",
    "version": "1.0",
    "x-build-id": "Pg7A6SBE4Q4l7b6gB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/insights_data~wechat-official-account-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-insights_data-wechat-official-account-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/insights_data~wechat-official-account-scraper/runs": {
      "post": {
        "operationId": "runs-sync-insights_data-wechat-official-account-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/insights_data~wechat-official-account-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-insights_data-wechat-official-account-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": [
          "urls"
        ],
        "properties": {
          "operation": {
            "title": "🪄 What to scrape",
            "enum": [
              "auto",
              "articleSearch",
              "accountSearch",
              "searchSuggestions",
              "articleDetail",
              "convertArticleLink",
              "accountInfo",
              "accountBasicInfo",
              "accountOriginalCount",
              "accountArticles",
              "accountHistoryArticles",
              "accountTodayArticles",
              "albumArticles",
              "articleMetrics",
              "articleComments",
              "articleCommentReplies",
              "wechatIndexSearch",
              "miniProgramSearch",
              "accountPrincipalInfo"
            ],
            "type": "string",
            "description": "Auto picks the right step for every entry in the list below: keywords are searched, article links are read, album links are listed and gh_ ids or @names are treated as accounts. Choose a specific step to apply it to every entry. Steps marked 'needs WeChat login' return a short notice row instead of data.",
            "default": "auto"
          },
          "urls": {
            "title": "🧲 Keywords, accounts and WeChat links (bulk)",
            "minItems": 1,
            "type": "array",
            "description": "One entry per line. Accepted: search keywords (人工智能, AI), article links (https://mp.weixin.qq.com/s/XXXXXXXXXXXX), album links, short links, gh_ ids, @account names, or any article link of an account. Each keyword is a separate search with its own result budget.",
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerEntry": {
            "title": "🔢 Max results per entry",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Results kept for each keyword, account or album. 0 means no limit. Free plan users get up to 10 results per run in total; paid plans have no run limit.",
            "default": 10
          },
          "maxPages": {
            "title": "📚 Pages per entry",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many result pages to read for each keyword or account. Results are de-duplicated and the run stops early when nothing is left.",
            "default": 3
          },
          "expandWithSuggestions": {
            "title": "✨ Expand with suggestions",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Also search the top N related suggestions of every keyword to get past the per-query result ceiling. 0 turns this off.",
            "default": 0
          },
          "sortBy": {
            "title": "↕️ Sort results",
            "enum": [
              "relevance",
              "latest",
              "oldest"
            ],
            "type": "string",
            "description": "Order of the delivered results (search and account articles; albums use Album order).",
            "default": "relevance"
          },
          "publishTime": {
            "title": "⏱️ Published within",
            "enum": [
              "all",
              "day",
              "week",
              "month",
              "halfYear",
              "year"
            ],
            "type": "string",
            "description": "Keep only articles published within this window.",
            "default": "all"
          },
          "publishedAfter": {
            "title": "🗓️ Published after",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only articles on or after this day (Beijing time). Format YYYY-MM-DD."
          },
          "publishedBefore": {
            "title": "⏳ Published before",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only articles on or before this day (Beijing time). Format YYYY-MM-DD."
          },
          "onlyFromAccounts": {
            "title": "🙋 Only from these accounts",
            "type": "array",
            "description": "Keep only results published by these account display names. Leave empty for all accounts.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "🛑 Drop results containing",
            "type": "array",
            "description": "Drop results whose title or summary contains any of these words.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "resolveArticleLinks": {
            "title": "🔗 Open article links",
            "type": "boolean",
            "description": "Open every search result to add the article link, article id and account id. Turn off for a faster run with search data only.",
            "default": true
          },
          "fetchFullArticles": {
            "title": "📜 Full article records",
            "type": "boolean",
            "description": "Replace every search or account-feed row with the complete article record (text, images, links, author, album).",
            "default": false
          },
          "includeContentText": {
            "title": "✍️ Plain text",
            "type": "boolean",
            "description": "Include the article text as plain text.",
            "default": true
          },
          "includeContentMarkdown": {
            "title": "🧾 Markdown",
            "type": "boolean",
            "description": "Include the article text as Markdown.",
            "default": true
          },
          "includeContentHtml": {
            "title": "🧩 HTML",
            "type": "boolean",
            "description": "Include the original article HTML.",
            "default": false
          },
          "includeImages": {
            "title": "🖼️ Images",
            "type": "boolean",
            "description": "Include the list of images with their sizes.",
            "default": true
          },
          "includeLinks": {
            "title": "🔖 Links in the article",
            "type": "boolean",
            "description": "Include links found inside the article.",
            "default": true
          },
          "accountArticleSources": {
            "title": "🗂️ Where account articles come from",
            "type": "array",
            "description": "Account history can combine search results and the account's public article collections. Choose one or both.",
            "items": {
              "type": "string",
              "enum": [
                "search",
                "albums"
              ],
              "enumTitles": [
                "Search results",
                "Article collections (albums)"
              ]
            },
            "default": [
              "search",
              "albums"
            ]
          },
          "albumOrder": {
            "title": "⇅ Album order",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Walk an album from its newest or its oldest article.",
            "default": "newest"
          },
          "albumDiscoveryArticles": {
            "title": "🔭 Extra articles opened per account",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "How many more articles of an account are opened to find additional collections. 0 turns this off.",
            "default": 3
          },
          "onlyNewSinceLastRun": {
            "title": "🆕 Only new since last run",
            "type": "boolean",
            "description": "Return only results not delivered by earlier runs of the same keyword or account. Ideal for scheduled monitoring.",
            "default": false
          },
          "continuePreviousRun": {
            "title": "⏯️ Continue where the last run stopped",
            "type": "boolean",
            "description": "For large albums: the next run carries on from where the last one stopped instead of starting over. Turn it on from the first run.",
            "default": false
          },
          "maxConcurrency": {
            "title": "⚡ Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many articles are opened at the same time (1-10).",
            "default": 4
          },
          "requestDelaySeconds": {
            "title": "🐢 Delay between searches",
            "minimum": 0.5,
            "maximum": 30,
            "type": "number",
            "description": "Minimum seconds between search requests.",
            "default": 2.5
          },
          "maxRetries": {
            "title": "🔂 Retries per request",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How often a failed request is retried before giving up.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Runs without a proxy by default. If the site blocks the request, the run switches to datacenter and then residential proxies on its own.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}