China news from 155 Chinese-language sources in one feed: state media, party-gov, commercial, overseas independent, dissident and censorship trackers, each labeled by outlet type and grouped by story. Plus a deletion watch on Weibo, Baidu, Zhihu, Toutiao and Bilibili hot lists, with evidence.
Public trending lists fetched logged-out. The default is every list. A list you leave out is not fetched, and its hot-list rows and deletion flags are not pushed or billed. An empty selection includes none.
Type:string[]
Default:
[
"weibo",
"baidu",
"zhihu",
"toutiao",
"bilibili",
"douyin",
"kuaishou"
]
Source types
sourceTypes
Optional
Which news rows to push and bill, by the type each row is credited to after aggregator handling. When a cluster_context record from the last 2 hours is available and this selection is narrower than every type, only sources of the selected types are fetched. If that record is missing, stale, or unusable, or this selection is every type, every approved news source is fetched. Hot lists follow hotLists. Evidence, clusters, and overseas pickup stay the same whatever you select here, using the stored context when the fetch is narrowed. The default is every type, including Commercial platform, and does not drop rows. Leaving the field unset does the same. A Commercial platform news row ships when you select that type and is left out when you select other types only. Douyin mirror rows also require douyin in hotLists; that list is in the default, so a default run still ships them, and leaving douyin out drops them even when Commercial platform is selected. Aggregator items are credited to the original outlet's type or dropped, and a credited row is kept only when that type is selected. A news row of an unselected type is not pushed and is not remembered. An empty list selects no news types.
Type:string[]
Default:
[
"State media",
"Party-gov",
"Commercial platform",
"Overseas independent",
"Dissident",
"Censorship tracker"
]
News sources
newsSources
Optional
"all" (default) = every approved outlet that can be read logged-out (about 110). Or list source ids from data/sources/news_notion.json, e.g. mfa, xinhua, bbc.
Type:string[]
Default:
[
"all"
]
Snapshots in this run
snapshotCount
Optional
Use 1 with a schedule (every 5-10 min). Higher values keep one run alive and poll repeatedly.
Type:integer
Minimum:1
Maximum:24
Default:1
Emit only new rows
emitOnlyNew
Optional
Push only dataset rows that are new since the last run. A deletion flag is pushed again when its status changes (for example likely censored to censored, or to returned). Turn off to push a full snapshot. Apify bills each pushed dataset row.
Type:boolean
Default:true
Minutes between in-run snapshots
snapshotIntervalMinutes
Optional
Minutes to wait between extra snapshots when snapshotCount is greater than 1.
Type:integer
Minimum:1
Default:5
Max billed rows
maxItems
Optional
Optional cap on the total number of billed rows this run. Leave empty for no limit.
Type:integer
Minimum:1
Max items per news source
maxItemsPerSource
Optional
Maximum number of news items kept from each source in one run.
Type:integer
Minimum:1
Maximum:100
Default:30
Include hot-list items up to rank
maxHotRank
Optional
Hot-list rows ranked worse than this are left out of the feed.
Type:integer
Minimum:5
Maximum:50
Default:50
'High rank' threshold for censorship flags
highRank
Optional
A topic that vanishes at or above this rank (or while rising) is flagged.
Type:integer
Minimum:3
Maximum:50
Default:15
Re-check URLs of vanished topics
recheckUrls
Optional
Kept for compatibility. URL rechecks run on our side, not in this actor. The actor joins the stored result for each flag. A flag with no stored result stays pending.
Type:boolean
Default:true
Cross-check FreeWeibo (aggregate counts only)
freeweiboCheck
Optional
Kept for compatibility. FreeWeibo lookups run on our side, not in this actor. The actor joins stored aggregate counts. A flag with no stored result leaves freeweibo empty. Post text is not stored.
Type:boolean
Default:true
Topics in the readable report
topN
Optional
How many topics to include in the readable top-stories report.
Type:integer
Default:15
Clustering time budget (seconds)
clusterBudgetSeconds
Optional
Maximum seconds spent clustering items in one run. If this runs out, items not yet assigned are left as their own clusters, a warning is logged, and the run continues. The default is 120 seconds.
Type:integer
Minimum:1
Default:120
Direct or sidecar route
sourceRoutes
Optional
Optional overrides of catalog ingest.route. Each value is direct or sidecar. China Press and Sydney Today default to sidecar: the poller fetches them on the box and this actor reads the store. Set a source to direct to use its actor fetcher instead. An empty object keeps the catalog route.
Type:object
Default:
{}
Include NFSC network rows
includeNfsc
Optional
When true (the default), the nine NFSC Dissident rows in the public sidecar record are merged into the dataset. Set false to leave them out without a new build. Telegram and YouTube NFSC rows still follow the channel redaction gate and stay internal until that sign-off.
Type:boolean
Default:true
Use Apify Proxy
useApifyProxy
Optional
Most sources work without a proxy. Enable if lists start rate-limiting.
Type:boolean
Default:false
Proxy groups
proxyGroups
Optional
e.g. RESIDENTIAL. Leave empty for the default datacenter pool.
Type:array
Sidecar store ID
sidecarStoreId
Optional
Optional. Overrides the SIDECAR_STORE_ID environment variable. Not shown to buyers.
Type:string
Hot-list history store
historyStore
Optional
Internal testing only. Owner runs upload trimmed history here. Buyer runs do not open this store. Leave as default.
Type:string
Default:china-feed-history
Simulate a buyer run
simulateBuyer
Optional
Internal testing only. When true, this run skips china-feed-history and uses an in-run temp file, the same as a buyer, even on the owner's account. It cannot turn history on.
Type:boolean
Default:false
Apify retention days
apifyRetentionDays
Optional
Internal testing only. Days of timestamped rows kept in Apify on each upload. The default is 7. The APIFY_RETENTION_DAYS environment variable overrides this.
Type:integer
Minimum:1
Default:7
Cluster context record key
contextKey
Optional
Internal testing only. Leave as default; changing it disables cross-run clustering.