# Toutiao Scraper 今日头条: News Search, Reads & Comments (`memo23/toutiao-scraper`) Actor

Toutiao (今日头条) news scraper with no login: search by keyword and get each article's title, summary, source and its verified label, publish time, reads, comments, likes, saves, shares, the Toutiao link and the original link. Filter by date and reads. $3 per 1,000 articles.

- **URL**: https://apify.com/memo23/toutiao-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** News, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 articles

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Toutiao Scraper 今日头条: News Search, Reads & Comments

Search **Toutiao (今日头条)**, China's largest news app, by keyword and get every article's **title, summary, source, publish time, reads, comments, likes, saves and shares**, with the Toutiao link and the link to the original article. Filter by date and reads; filtered-out articles are not charged. **$3 per 1,000 articles.** No login, no cookies, no API key.

![How Toutiao Scraper works](https://api.apify.com/v2/key-value-stores/4qhu8hUI6exkJvvYp/records/how-it-works-toutiao.png)

```json
{
  "keywords": ["新能源汽车", "比亚迪"],
  "maxResultsPerKeyword": 50,
  "publishedAfter": "2026-10-20"
}
```

### Why Use This Actor?

- **Engagement numbers.** Reads, comments, likes, saves and shares for each article, so you see what Chinese readers actually pay attention to.
- **Who said it.** The publishing account and its verified label (for example 中国新闻网官方账号), plus the original article's link for syndicated news.
- **Date and reads filters** applied before billing.
- **Fair billing.** Each article is billed once per run, even when several keywords find it.
- **$3 per 1,000 articles.**

### Use Cases

- **Brand and company monitoring:** what Chinese media write about a brand, product or competitor this week.
- **Market and policy research:** follow a sector (新能源汽车, 半导体, 光伏) across hundreds of outlets in one place.
- **PR measurement:** reads and comments on coverage of a launch or announcement.
- **News datasets:** a daily schedule builds a history of what Toutiao served for your topics.

### How It Works

1. Each keyword is searched on Toutiao's news tab (资讯), page after page.
2. Every article is read with its source, time and engagement numbers.
3. Your filters are applied and articles found by more than one keyword are delivered once.
4. A keyword stops when Toutiao has no more results, usually after 80-100 articles covering the last days.

### Input Configuration

| Field | Type | Description |
|---|---|---|
| `keywords` | array | What to search for. Chinese keywords match best. |
| `searchTab` | string | `news` (资讯, default) or `all` (综合, the articles among the mixed results). |
| `maxResultsPerKeyword` | integer | 1-200. Default 50. |
| `maxItems` | integer | Cap for the whole run. Free-plan runs return up to 100. |
| `publishedAfter` | date | Only articles published on or after this day (Beijing time). |
| `minReads` | integer | Only articles with at least this many reads. |

### Output Sample

An article for 人工智能 (2026-10-29):

```json
{
  "articleId": "7700576055953768987",
  "title": "杨正林：人工智能只能作为帮手 不能取代医务人员",
  "summary": "10月25日，2026年“数智健康·双化协同”主题活动暨数智健康产业高端对话于成都高新区前沿医学中心举办。封面新闻记者专访中国科学院院士、四川省科协主席、四川省医学科学院·四川省人民医院党委书记杨正林。在他看来，人工智能只能作为帮手，无法取代医务人员。",
  "source": "封面新闻",
  "sourceVerified": "封面新闻官方账号",
  "authorId": "52029171784",
  "publishedAt": "2026-10-25T12:08:17.000Z",
  "reads": 5623,
  "comments": 8,
  "likes": 35,
  "saves": 11,
  "shares": 1,
  "hasVideo": false,
  "toutiaoUrl": "https://www.toutiao.com/article/7700576055953768987/",
  "originalUrl": "https://m.thecover.cn/video_details.html?from=web&eid=kPpS0ItlgBuH90qSdq8Jkw==",
  "imageUrl": null,
  "searchKeyword": "人工智能",
  "position": 71
}
```

### Key Output Fields

| Field | Meaning |
|---|---|
| `title`, `summary` | The headline and Toutiao's summary |
| `source`, `sourceVerified` | The publishing account and its verification label, when it has one |
| `publishedAt` | Publish time (UTC) |
| `reads`, `comments`, `likes`, `saves`, `shares` | Engagement on Toutiao at the time of the run |
| `toutiaoUrl`, `originalUrl` | The article on Toutiao, and where the full text lives for news syndicated from another site |
| `position` | Rank in the search for `searchKeyword` |

### FAQ

**Can I search in English?**
Toutiao is a Chinese news app; Chinese keywords give far more results. A translator gives good ones.

**How far back does it go?**
Toutiao's news search favours recent articles, usually the last days to a couple of weeks. For a longer history, schedule the actor daily.

**Does it return the full article text?**
Not yet; you get the summary and both links. Ask on the Issues tab if you need full text.

**Do I need a Toutiao account or a Chinese IP?**
No.

### Pricing

| Event | When | Price |
|---|---|---|
| Actor start | Once per run (per GB of memory, 256 MB default) | $0.005 |
| Article | Each article delivered | $0.003 |

Example: 10 keywords × 50 articles = $1.50 + $0.005. Articles removed by your filters and duplicates are not charged.

### Support

Found a bug or need a field? Open an issue on the actor's Issues tab and include the run link.

### ⚠️ Disclaimer

This actor reads public search results from Toutiao. It is not affiliated with or endorsed by Toutiao or ByteDance. Articles belong to their publishers. You are responsible for using the data in line with Toutiao's terms and the laws that apply to you.

### SEO Keywords

toutiao scraper, 今日头条, toutiao news, toutiao search, china news scraper, chinese news monitoring, toutiao api, 头条新闻, china media monitoring, bytedance news, toutiao articles, chinese press coverage

# Actor input Schema

## `keywords` (type: `array`):

What to search for. Chinese keywords match best, for example 新能源汽车, 人工智能 or a company name like 比亚迪.

## `searchTab` (type: `string`):

News gives articles from the last days and goes deeper. All gives the articles from Toutiao's mixed results page.

## `maxResultsPerKeyword` (type: `integer`):

Toutiao's search usually runs out at 80-100 articles per keyword.

## `maxItems` (type: `integer`):

Cap for the whole run. Free-plan runs return up to 100.

## `publishedAfter` (type: `string`):

Only articles published on or after this date (Beijing time). Older ones are skipped and not charged.

## `minReads` (type: `integer`):

Only articles with at least this many reads on Toutiao.

## Actor input object example

```json
{
  "keywords": [
    "新能源汽车",
    "比亚迪"
  ],
  "searchTab": "news",
  "maxResultsPerKeyword": 50,
  "maxItems": 1000
}
```

# Actor output Schema

## `results` (type: `string`):

One row per article.

# 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 = {
    "keywords": [
        "新能源汽车"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/toutiao-scraper").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 = { "keywords": ["新能源汽车"] }

# Run the Actor and wait for it to finish
run = client.actor("memo23/toutiao-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "keywords": [
    "新能源汽车"
  ]
}' |
apify call memo23/toutiao-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/toutiao-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gobiguHhyt4YdnkLu/builds/54PM66Kbrr4v4pCVg/openapi.json
