# Toutiao Scraper - Chinese News & Article Data API (`sian.agency/toutiao-scraper`) Actor

Scrape Toutiao (Jinri Toutiao) at scale: keyword-search Chinese news articles, extract full article content, engagement metrics (reads, comments, likes) and creator profiles. Export clean structured JSON for media monitoring, content intelligence and ByteDance research.

- **URL**: https://apify.com/sian.agency/toutiao-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** News, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 search 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## Toutiao Scraper — Chinese News, Articles & Content Data 📰

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Store Weibo](https://img.shields.io/badge/Store-Weibo-E6162D)](https://apify.com/sian.agency/weibo-scraper?fpr=sian) [![Store Zhihu](https://img.shields.io/badge/Store-Zhihu-0084FF)](https://apify.com/sian.agency/zhihu-scraper?fpr=sian) [![Store Douyin](https://img.shields.io/badge/Store-Douyin-161823)](https://apify.com/sian.agency/douyin-scraper?fpr=sian)

#### 🎉 The only working Toutiao (今日头条) dataset on Apify — turn any keyword into a ranked feed of Chinese news articles with real engagement metrics
##### Built for media-monitoring teams, content-intelligence researchers, and AI/LLM data pipelines tracking China's largest news aggregator

---

### 📋 Overview

**Toutiao (今日头条, "Jinri Toutiao") is China's largest ByteDance-owned news and content aggregator** — syndicating thousands of mainland publishers to hundreds of millions of readers. This actor turns that firehose into clean, structured JSON: keyword-search articles, pull full article content, and look up creator profiles, all without an account or a single line of scraping code.

**Why teams choose this actor:**
- ✅ **Only working Toutiao scraper on the market**: a genuinely greenfield dataset — no competitor covers Toutiao today.
- ⚡ **Keyword → ranked article feed in seconds**: every result carries reads, comments, likes, favorites, author and a fresh publish timestamp.
- 🎯 **Full article content extraction**: complete HTML bodies, image galleries, and creator IDs for any Toutiao article.
- 💰 **Pay only for successful results**: transparent per-result pricing and a generous FREE tier — no credit card to start.
- 💎 **Built-in discovery → detail chain**: search surfaces native article IDs, so you can jump straight to full-content extraction.
- ✨ **Bulk-ready**: batch dozens of keywords, article IDs, or profile URLs into one run.

---

### ✨ Features

- 🔍 **Keyword Article Search**: find Toutiao news articles by keyword with engagement metrics and same-day freshness.
- 📰 **Full Article Content**: extract the complete HTML body, images, author ID, and metadata for any article.
- 👤 **Creator Profiles**: pull a creator's name, avatar, follower and publish counts, and external links.
- 🔗 **User-ID Resolver**: turn a Toutiao profile URL into a numeric creator ID for downstream lookups.
- 🧮 **Bulk Processing**: multiple keywords / article IDs / user IDs / profile URLs per run.
- 🌐 **Clean, Flat JSON**: curated camelCase fields plus the raw upstream data, ready for CSV, Excel, or a database.
- 🆓 **FREE Tier**: try every operation with full-quality output before you scale up.
- 🧾 **HTML Run Report**: success/error counts, success rate, and inputs — saved every run.

---

### 🎬 Quick Start

Pick an **operation**, provide a keyword (or article ID / user ID / profile URL), and run. Results land in the Apify dataset as flat rows you can export to JSON, CSV, or Excel. Start on the FREE tier, then scale to production.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~toutiao-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"operation": "searchArticles", "keyword": "人工智能"}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose an operation

Select `searchArticles`, `articleDetail`, `userProfile`, or `resolveUserId`.

#### Step 2: Provide your input

Enter a keyword (search), an article ID or URL (article detail), a user ID (profile), or a profile URL (resolve). Use the bulk array fields to process many at once.

#### Step 3: Run and export

Launch the actor and download your structured results as JSON, CSV, or Excel.

**That's it! In under a minute, you'll have:**

- A ranked list of Chinese news articles with engagement metrics
- Full article content ready for translation or summarization
- Creator profiles and IDs for content-source mapping

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `operation` | string | Yes | `searchArticles` | `articleDetail` | `userProfile` | `resolveUserId` |
| `keyword` | string | For search | A single search keyword |
| `keywords` | array | Optional | Multiple keywords (bulk search) |
| `articleId` | string | For detail | A Toutiao article ID or full article URL |
| `articleIds` | array | Optional | Multiple article IDs / URLs (bulk) |
| `userId` | string | For profile | A Toutiao creator user ID |
| `userIds` | array | Optional | Multiple user IDs (bulk) |
| `profileUrl` | string | For resolve | A Toutiao creator profile URL |
| `profileUrls` | array | Optional | Multiple profile URLs (bulk) |

**Search example:**

```json
{ "operation": "searchArticles", "keyword": "新能源汽车" }
```

**Bulk article detail:**

```json
{ "operation": "articleDetail", "articleIds": ["7664616922066993691", "7664435101836542491"] }
```

***

### 📤 Output

Results are saved to the Apify dataset as flat rows with **35+ fields**. Filter by `_operation` to split modes. Key fields:

| Field | Type | Description |
|-------|------|-------------|
| `articleTitle` | string | Article headline |
| `articleUrl` | string | Link to the article |
| `authorName` | string | Publisher / creator name |
| `publishTime` | string | Publish time |
| `readCount` | number | Reads (阅读量) |
| `commentCount` | number | Comments (评论量) |
| `diggCount` | number | Likes (点赞量) |
| `favoriteCount` | number | Favorites (收藏量) |
| `groupId` | string | Native article ID — feed to Article Detail |
| `articleContentHtml` | string | Full HTML article body |
| `originImageUrls` | array | Full-resolution article images |
| `mediaUserId` | string | Creator ID — feed to User Profile |
| `userId` / `name` | string | Creator ID and display name |
| `followersCount` | number | Creator follower count |
| `resolvedUserId` | string | ID resolved from a profile URL |

**Search result example:**

```json
{
  "_operation": "searchArticles",
  "status": "success",
  "searchKeyword": "汽车",
  "articleTitle": "单车6.5万 不到新车均价四成！上半年二手车比新车卖的还多",
  "articleUrl": "https://toutiao.com/group/7664616922066993691/",
  "articleType": "头条文章",
  "authorName": "中国汽车网",
  "publishTime": "2026-07-21 08:12:33",
  "readCount": 14,
  "commentCount": 0,
  "diggCount": 1,
  "favoriteCount": 0,
  "groupId": "7664616922066993691"
}
```

***

### 💼 Use Cases & Examples

#### 1. Chinese Media Monitoring

**PR and comms teams tracking how Chinese media covers a brand or issue.**
**Input:** Brand or topic keywords. **Output:** Ranked articles with engagement and timestamps. **Use:** Daily narrative and sentiment monitoring across mainland publishers.

#### 2. Content Intelligence & Trend Tracking

**Analysts spotting breakout stories on China's largest content platform.**
**Input:** Category keywords run on a schedule. **Output:** Fresh articles with reads/likes/comments. **Use:** Identify viral topics before mainstream coverage.

#### 3. LLM Training & RAG Corpora

**AI teams building current Mandarin news datasets.**
**Input:** Keywords, then article IDs. **Output:** Full HTML article bodies with metadata. **Use:** Language-model training, fine-tuning, and retrieval-augmented generation.

#### 4. ByteDance & Competitor Research

**Researchers mapping who produces content in a category.**
**Input:** Article IDs and creator profile URLs. **Output:** Creator profiles, IDs, and follower counts. **Use:** Source mapping and competitive content analysis.

#### 5. News Aggregation & Republishing Pipelines

**Product teams feeding a news app, newsletter, or dashboard.**
**Input:** Batched keywords and article lookups. **Output:** Clean JSON rows. **Use:** Translation, summarization, and downstream automation.

***

### 🔗 Integration Examples

#### JavaScript / Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/toutiao-scraper').call({
  operation: 'searchArticles',
  keyword: '人工智能'
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/toutiao-scraper').call(
    run_input={'operation': 'articleDetail', 'articleId': '7664616922066993691'}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~toutiao-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "userProfile", "userId": "5500311915"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle the JSON results
4. **Action**: Save, translate, notify, or transform

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **Up to 25 rows** per run — full feature access, same data quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** rows per run
- Bulk keywords, article IDs, and profile URLs
- Pay-per-result: only charged for successful results

💰 **Transparent, best-value pricing** for a dataset no one else offers.

🔗 [View current pricing](https://apify.com/sian.agency/toutiao-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many results can I get?**
A: FREE tier: up to 25 rows per run. PAID tier: unlimited.

**Q: Does search return native Toutiao articles?**
A: Yes — results are typed Toutiao articles (头条文章) from Toutiao's syndicated publishers, with engagement metrics and fresh timestamps.

**Q: Can I get the full text of an article?**
A: Yes — the Article Detail operation returns the complete HTML body, images, and creator ID.

**Q: What output formats are available?**
A: JSON, CSV, and Excel — export directly from the Apify dataset.

**Q: Do I need a Toutiao account or API key?**
A: No. Just choose an operation and run.

**Q: Is this legal?**
A: The actor extracts only publicly available data. See the legal note below.

***

### 🐛 Troubleshooting

**"Data source temporarily unavailable — please retry"**

- This is a transient upstream blip; the actor already retries automatically. Re-run if it persists.

**Search returns directory/portal pages instead of news articles**

- Some keywords surface official brand/portal pages. Try a more news-oriented or trending keyword for article-type results with engagement metrics.

**Article Detail says "Article not found"**

- The article may have been removed, or the ID may be wrong. Use a native `groupId` from a Search result.

**Empty user profile fields**

- Some creators keep sparse public profiles. Core fields (ID, name, links) are always returned when available.

***

### ⚠️ Trademark Disclaimer

This is an **independent scraping tool**. It is not affiliated with, endorsed by, or sponsored by ByteDance Ltd. or its subsidiaries, the operators of Toutiao (今日头条 / Jinri Toutiao). The **Toutiao®**, **今日头条®**, and **ByteDance®** names and marks are the property of their respective owners and appear here under nominative fair use, solely to describe the public data this tool helps you collect.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's Issues tab
- Check the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `operation` (type: `string`):

Which Toutiao data to scrape. Each operation reads its own input field(s) below.

## `keyword` (type: `string`):

🔍 A single search keyword — returns Toutiao articles with title, link, author, publish time and engagement metrics. Used by the Search Articles operation.

## `articleId` (type: `string`):

📰 A single Toutiao article ID (the 19-digit group ID) or a full toutiao.com article URL — returns the complete article content, images and author. Used by the Article Detail operation.

## `userId` (type: `string`):

👤 A single Toutiao creator user ID — returns the creator profile (name, avatar, follower/publish counts, external links). Used by the User Profile operation.

## `profileUrl` (type: `string`):

🔗 A single Toutiao creator profile URL (e.g. https://www.toutiao.com/c/user/token/…) — returns the numeric creator ID. Used by the Resolve User ID operation.

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

🔍 Multiple search keywords to process in one run (one search each). Used by the Search Articles operation.

## `articleIds` (type: `array`):

📰 Multiple article IDs or URLs to fetch in one run. Used by the Article Detail operation.

## `userIds` (type: `array`):

👤 Multiple creator user IDs to fetch in one run. Used by the User Profile operation.

## `profileUrls` (type: `array`):

🔗 Multiple creator profile URLs to resolve in one run. Used by the Resolve User ID operation.

## Actor input object example

```json
{
  "operation": "searchArticles",
  "keyword": "人工智能",
  "articleId": "7664723733352956451",
  "userId": "2826175326205300",
  "profileUrl": "https://www.toutiao.com/c/user/token/MS4wLjABAAAA.../",
  "keywords": [
    "人工智能",
    "新能源汽车"
  ],
  "articleIds": [
    "7664723733352956451"
  ],
  "userIds": [
    "2826175326205300"
  ]
}
```

# Actor output Schema

## `output` (type: `string`):

Toutiao articles, full article content, creator profiles, or resolved user IDs — one flat row per item with curated camelCase aliases (articleTitle, articleUrl, authorName, readCount, commentCount, diggCount, groupId, articleContentHtml, mediaUserId, userId, followersCount, resolvedUserId, …) plus the raw upstream fields spread alongside.

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

HTML report with run status, success/error row counts, success rate, targets processed, duration, and the inputs used — written even on fatal crash.

# 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 = {
    "operation": "searchArticles",
    "keyword": "人工智能"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/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 = {
    "operation": "searchArticles",
    "keyword": "人工智能",
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/toutiao-scraper").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 '{
  "operation": "searchArticles",
  "keyword": "人工智能"
}' |
apify call sian.agency/toutiao-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sian.agency/toutiao-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Toutiao Scraper - Chinese News & Article Data API",
        "description": "Scrape Toutiao (Jinri Toutiao) at scale: keyword-search Chinese news articles, extract full article content, engagement metrics (reads, comments, likes) and creator profiles. Export clean structured JSON for media monitoring, content intelligence and ByteDance research.",
        "version": "1.0",
        "x-build-id": "gu1tFLCQX5VtRyzGe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~toutiao-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-toutiao-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/sian.agency~toutiao-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-toutiao-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/sian.agency~toutiao-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-toutiao-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": {
                    "operation": {
                        "title": "Operation",
                        "enum": [
                            "searchArticles",
                            "articleDetail",
                            "userProfile",
                            "resolveUserId"
                        ],
                        "type": "string",
                        "description": "Which Toutiao data to scrape. Each operation reads its own input field(s) below.",
                        "default": "searchArticles"
                    },
                    "keyword": {
                        "title": "Keyword (Search Articles)",
                        "type": "string",
                        "description": "🔍 A single search keyword — returns Toutiao articles with title, link, author, publish time and engagement metrics. Used by the Search Articles operation.",
                        "default": "人工智能"
                    },
                    "articleId": {
                        "title": "Article ID or URL (Article Detail)",
                        "type": "string",
                        "description": "📰 A single Toutiao article ID (the 19-digit group ID) or a full toutiao.com article URL — returns the complete article content, images and author. Used by the Article Detail operation."
                    },
                    "userId": {
                        "title": "User ID (User Profile)",
                        "type": "string",
                        "description": "👤 A single Toutiao creator user ID — returns the creator profile (name, avatar, follower/publish counts, external links). Used by the User Profile operation."
                    },
                    "profileUrl": {
                        "title": "Profile URL (Resolve User ID)",
                        "type": "string",
                        "description": "🔗 A single Toutiao creator profile URL (e.g. https://www.toutiao.com/c/user/token/…) — returns the numeric creator ID. Used by the Resolve User ID operation."
                    },
                    "keywords": {
                        "title": "Keywords — bulk (Search Articles)",
                        "type": "array",
                        "description": "🔍 Multiple search keywords to process in one run (one search each). Used by the Search Articles operation.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "articleIds": {
                        "title": "Article IDs or URLs — bulk (Article Detail)",
                        "type": "array",
                        "description": "📰 Multiple article IDs or URLs to fetch in one run. Used by the Article Detail operation.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "userIds": {
                        "title": "User IDs — bulk (User Profile)",
                        "type": "array",
                        "description": "👤 Multiple creator user IDs to fetch in one run. Used by the User Profile operation.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "profileUrls": {
                        "title": "Profile URLs — bulk (Resolve User ID)",
                        "type": "array",
                        "description": "🔗 Multiple creator profile URLs to resolve in one run. Used by the Resolve User ID operation.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
