# WeChat Article Repost & Original Source Tracker (`scrupulous_buckler/wechat-article-repost-original-source-tracker`) Actor

Enter one topic. Detect similar public WeChat Official Account articles, trace the earliest source in the sample, and reconstruct publisher order with evidence links. Built-in collection; no login, Cookie, or upstream Actor. $0.0025/article + $0.99/report. Fewer than 2 articles are not charged.

- **URL**: https://apify.com/scrupulous\_buckler/wechat-article-repost-original-source-tracker.md
- **Developed by:** [Peng Lyu](https://apify.com/scrupulous_buckler) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 wechat article results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

Enter one topic or distinctive headline phrase. The Actor collects up to 100
public WeChat Official Account articles, groups probable reposts, identifies the
earliest source visible in the sample, and reconstructs publisher order with
timestamps, similarity scores, and evidence links.

No WeChat login, Cookie, or separate upstream Actor is required.

**Unofficial tool. This Actor is not affiliated with, sponsored by, or endorsed
by Tencent, WeChat, Weixin, Sogou, or any source platform.**

### What buyers receive

- one auditable row per analyzed article
- similar-title and similar-content article clusters
- the likely earliest article in each collected cluster
- explicit high, medium, or low source confidence
- publisher-by-publisher publication sequence
- time lag from the earliest collected article to each possible repost
- title and available snippet/body similarity scores
- publisher propagation flows across multiple clusters
- unmatched articles for coverage auditing
- evidence URLs and data-quality warnings

“Likely original” means the earliest timestamp visible inside the collected or
supplied sample. It is not proof of authorship, plagiarism, copyright ownership,
or unlawful copying.

### One-step live search

The default form needs one field:

```json
{
  "source": "人工智能"
}
```

The Actor searches public Sogou WeChat discovery with its built-in collector.
It does not invoke a public upstream Actor, so there is no separate upstream
Actor charge. Public discovery can still be incomplete, delayed, throttled, or
blocked.

Advanced users can analyze existing data:

```json
{
  "source": "dataset:YOUR_DATASET_ID"
}
```

Or set `source` to `uploaded` and provide `uploadedRecords`.

### Ready-made public tasks

- [Trace the original source of WeChat AI articles](https://apify.com/scrupulous_buckler/wechat-article-repost-original-source-tracker/examples/wechat-repost-ai-original-source)
- [Track WeChat EV article repost and publisher sequence](https://apify.com/scrupulous_buckler/wechat-article-repost-original-source-tracker/examples/wechat-repost-ev-publication-sequence)
- [Detect WeChat brand PR repost propagation](https://apify.com/scrupulous_buckler/wechat-article-repost-original-source-tracker/examples/wechat-repost-brand-pr-propagation)

### Pricing

- **$0.0025 per delivered article row**
- **$0.99 per completed repost/original-source report**
- **maximum custom-event charge for 100 articles: $1.24**

Fewer than two usable articles produce a non-chargeable status row. Explicit
`demo` mode is also uncharged.

### Important limits

- Search coverage can omit an earlier source.
- Equal or missing timestamps reduce original-source confidence.
- Snippet-only records are weaker evidence than full article text.
- Edited, translated, licensed, syndicated, or independently similar content
  can produce similarity signals.
- Review evidence before legal, enforcement, or attribution decisions.

### Related WeChat research

Need competitor account share, topic gaps, and title-pattern analysis instead?
Use [WeChat Official Account Scraper & Competitor Report](https://apify.com/scrupulous_buckler/wechat-ecosystem-data-intelligence).

### Local validation

```bash
python3 -m unittest discover -s tests -v
```

# Actor input Schema

## `source` (type: `string`):

Search public WeChat Official Account articles for this topic, campaign, brand, or distinctive headline phrase. Advanced shortcuts: dataset:DATASET\_ID, uploaded, or demo.

## `maxResults` (type: `integer`):

Maximum public or supplied articles analyzed and billed. The report is always capped at 100.

## `includeNonMatched` (type: `boolean`):

Keeps the complete analyzed sample auditable alongside matched clusters.

## `additionalKeywords` (type: `array`):

Optional related phrases used in the same public search. Total search terms are capped at 20.

## `sourceDatasetIds` (type: `array`):

For legacy API usage. The simpler shortcut is source = dataset:DATASET\_ID.

## `uploadedRecords` (type: `array`):

Set source to uploaded, then paste article records. Common English, Chinese, and Sogou field aliases are recognized.

## `proxyConfiguration` (type: `object`):

Used only by the built-in collector. No public Actor is invoked.

## `similarityThreshold` (type: `number`):

Lower values find looser rewrites; higher values keep closer title/content matches.

## `titleWeight` (type: `number`):

Weight assigned to normalized title overlap; the remaining weight uses available snippet or body text.

## Actor input object example

```json
{
  "source": "人工智能",
  "maxResults": 100,
  "includeNonMatched": true,
  "additionalKeywords": [],
  "uploadedRecords": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  },
  "similarityThreshold": 0.58,
  "titleWeight": 0.65
}
```

# Actor output Schema

## `report` (type: `string`):

No description

## `articles` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "source": "人工智能",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrupulous_buckler/wechat-article-repost-original-source-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "source": "人工智能",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrupulous_buckler/wechat-article-repost-original-source-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "source": "人工智能",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call scrupulous_buckler/wechat-article-repost-original-source-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrupulous_buckler/wechat-article-repost-original-source-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/z0RgYHKKtAP2liWKt/builds/gURRa1AXujqDNGQKL/openapi.json
