{
  "openapi": "3.0.1",
  "info": {
    "title": "WeChat Articles Scraper - Official Accounts, Full Text & Albums",
    "description": "Scrape WeChat Official Account (公众号) articles by keyword, album, link or account name: title, summary, account, gh_ id, publish time, cover and link, plus full text and account profiles. No login, no cookies. $0.045 per 1,000 articles; full text $0.90, profiles $4.50 per 1,000.",
    "version": "0.1",
    "x-build-id": "aabbTB6d9Qys8twc7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/topapi~wechat-articles-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-topapi-wechat-articles-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/topapi~wechat-articles-scraper/runs": {
      "post": {
        "operationId": "runs-sync-topapi-wechat-articles-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/topapi~wechat-articles-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-topapi-wechat-articles-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": {
          "keywords": {
            "title": "🔍 Search keywords",
            "type": "array",
            "description": "One search per line, Chinese or English, e.g. \"人工智能\", \"新能源汽车\", \"Tesla\". Each search returns up to ~100 articles (Sogou's 10 pages). A Sogou WeChat search link works here too.",
            "items": {
              "type": "string"
            }
          },
          "articleUrls": {
            "title": "🔗 Article links",
            "type": "array",
            "description": "mp.weixin.qq.com article links, short (/s/xxxx) or long (/s?__biz=...). Each one comes back with its full text and account fields. Album links pasted here are listed as albums.",
            "items": {
              "type": "string"
            }
          },
          "albumUrls": {
            "title": "📚 Album (合集) links",
            "type": "array",
            "description": "WeChat album links, e.g. https://mp.weixin.qq.com/mp/appmsgalbum?__biz=...&action=getalbum&album_id=... Every article of the album, newest first, with permanent links.",
            "items": {
              "type": "string"
            }
          },
          "accounts": {
            "title": "👤 Accounts",
            "type": "array",
            "description": "Official Account display names (e.g. \"人民日报\", \"36氪\") or a link to one of the account's articles. Returns the account's profile row and the articles Sogou lists for it.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Sogou search links",
            "type": "array",
            "description": "Sogou WeChat article search links (https://weixin.sogou.com/weixin?type=2&query=...). Reading starts at the page in the link.",
            "items": {
              "type": "string"
            }
          },
          "maxPagesPerQuery": {
            "title": "Pages per search",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Sogou result pages to read per keyword (10 articles each). Sogou shows at most 10 pages per search to a visitor who is not signed in.",
            "default": 10
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Relevance keeps Sogou's order. Newest first reads every page of a search, then delivers the newest articles first.",
            "default": "relevance"
          },
          "publishedWithin": {
            "title": "Published within",
            "enum": [
              "any",
              "day",
              "week",
              "month",
              "halfYear",
              "year"
            ],
            "type": "string",
            "description": "Keep only articles published in this window. Older articles are skipped before they are charged.",
            "default": "any"
          },
          "publishedAfter": {
            "title": "Published on or after",
            "type": "string",
            "description": "Date, YYYY-MM-DD (e.g. 2026-10-01). Empty = no start date."
          },
          "publishedBefore": {
            "title": "Published on or before",
            "type": "string",
            "description": "Date, YYYY-MM-DD. Empty = no end date."
          },
          "excludeKeywords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Skip articles whose title or summary contains any of these words, e.g. \"广告\", \"招聘\".",
            "items": {
              "type": "string"
            }
          },
          "onlyFromAccounts": {
            "title": "Only from accounts",
            "type": "array",
            "description": "Keep only articles published by these account display names (exact name, e.g. \"36氪\"). Empty = every account.",
            "items": {
              "type": "string"
            }
          },
          "includeContent": {
            "title": "➕ Full text",
            "type": "boolean",
            "description": "Open each article page: full text (and Markdown), author, gh_ id, WeChat ID, original (原创) flag, region, images, links, word count. Charged per article that comes back with its text.",
            "default": false
          },
          "includeMarkdown": {
            "title": "Markdown of the text",
            "type": "boolean",
            "description": "With the full text: also `contentMarkdown` (headings, bold, links and images kept), for LLM / RAG pipelines.",
            "default": true
          },
          "includeHtml": {
            "title": "HTML of the text",
            "type": "boolean",
            "description": "With the full text: also `contentHtml`, the article body as WeChat publishes it (large).",
            "default": false
          },
          "includeAccounts": {
            "title": "👤 Account profiles",
            "type": "boolean",
            "description": "One profile row per account behind the articles: name, gh_ id, WeChat ID, signature, avatar, account type, original-article count, region, recent articles. Charged per account row.",
            "default": false
          },
          "resolveArticleUrls": {
            "title": "Resolve article links",
            "type": "boolean",
            "description": "Follow each Sogou result to its mp.weixin.qq.com address (`articleUrl`, a link WeChat signs and keeps open for a limited time). One extra request per row; turn it off for a faster, cheaper run with Sogou's link only.",
            "default": true
          },
          "translateToEnglish": {
            "title": "English title and summary",
            "type": "boolean",
            "description": "Add `titleEn` and `summaryEn` (machine translation). No extra charge.",
            "default": false
          },
          "monitorMode": {
            "title": "Only new articles",
            "type": "boolean",
            "description": "Skip articles (and accounts) delivered by earlier runs with the same monitor name; they are not charged. Pairs with a daily schedule.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of the store that remembers delivered articles. Use a different name for each schedule, e.g. \"brand-watch\".",
            "default": "wechat-articles-monitor"
          },
          "resetMonitor": {
            "title": "Reset the monitor",
            "type": "boolean",
            "description": "Forget what earlier runs delivered (this run delivers everything again).",
            "default": false
          },
          "maxItems": {
            "title": "Max articles",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Most article rows in the whole run. Sogou shows ~100 per search signed out; use more keywords for more. 0 = no limit.",
            "default": 100
          },
          "maxItemsPerQuery": {
            "title": "Max articles per search",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Most articles per keyword, Sogou link or account. 0 = up to Sogou's ~100 (20 for an account)."
          },
          "maxArticlesPerAlbum": {
            "title": "Max articles per album",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Most articles per album, newest first. 0 = the whole album.",
            "default": 100
          },
          "compact": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Core fields only (title, summary, account, date, link, cover, text): small rows for AI agents and MCP.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. By default the run goes direct, then through Apify's datacenter and residential proxy only when Sogou refuses a route. Give your own proxy to use it instead."
          },
          "requestDelaySecs": {
            "title": "Pause between Sogou requests (s)",
            "minimum": 0.3,
            "maximum": 10,
            "type": "number",
            "description": "Sogou is read slowly on purpose so it keeps answering. Default 0.5 s.",
            "default": 0.5
          },
          "maxConcurrency": {
            "title": "Parallel article pages",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Article pages read at once for the full text and profiles. Default: 2 at 128 MB, 3 at 256 MB, 4 above."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}