# TikTok Scraper — Videos, Profiles & Stats (`rbbscrap/tiktok-scraper`) Actor

Ultra-fast, browserless TikTok scraper. Extract user profiles, follower counts, verified status, video metadata, likes, view counts, audi.... Compatible Make.com, Zapier, n8n, Sheets & Webhooks. 256MB RAM & sub-second speed.

- **URL**: https://apify.com/rbbscrap/tiktok-scraper.md
- **Developed by:** [Hector](https://apify.com/rbbscrap) (community)
- **Categories:** Developer tools
- **Features:** Limited permissions
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.60 / 1,000 scraped tiktok videos

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

<p align="center">
  <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/y0h5Xh4ZLYL8d8YO7-actor-1x7eCvD0R3NVoeAHg-dTTC2B6UWP-fast-tiktok-scraper.png" width="110" height="110" style="border-radius: 24px;" alt="TikTok Scraper — Videos, Profiles & Stats Official Logo" />
</p>

## TikTok Scraper — Videos, Profiles & Stats

**TikTok Scraper** extracts structured TikTok records, metadata, metrics, and direct links in real time. Built on a zero-browser HTTP/2 engine running in **256 MB RAM**, it delivers normalized datasets with **zero `null` fields** ready for **CSV, Excel, JSON**, or API pipelines.

> **Looking for related scrapers?** Check out [TikTok Video Downloader](https://apify.com/rbbscrap/tiktok-video-downloader), [TikTok Creative Center Scraper: Top Ads & Ad Intelligence](https://apify.com/rbbscrap/tiktok-creative-center), [Instagram Scraper](https://apify.com/rbbscrap/instagram-scraper), [YouTube Scraper](https://apify.com/rbbscrap/youtube-scraper), or browse our [full catalog of 118+ dedicated scrapers](https://apify.com/rbbscrap).

***

### What does TikTok Scraper do?

Ultra-fast, browserless TikTok scraper. Extract user profiles, follower counts, verified status, video metadata, likes, view counts, audi.... Compatible Make.com, Zapier, n8n, Sheets & Webhooks. 256MB RAM & sub-second speed.

Whether you need to monitor TikTok at scale, enrich B2B/B2C databases, or feed structured records into analytics and AI workflows, **TikTok Scraper** handles pagination, field normalization, and schema validation automatically:

- **Bulk Data Extraction:** Collect TikTok listings, items, and detailed attributes in batches using keywords, filters, or direct URLs.
- **Complete Public Metadata:** Capture identifiers, pricing/engagement metrics, author/vendor details, timestamps, and canonical URLs.
- **Multi-Format Export:** Download results in **JSON, CSV, Excel (XLSX), XML, or HTML Table** directly from the Apify Console.
- **Ready for Automation & AI:** Connect seamlessly to [Apify Integrations](https://apify.com/integrations) (Make, Zapier, n8n, Google Sheets), [REST API endpoints](https://apify.com/rbbscrap/tiktok-scraper/api), or the [Apify MCP Server](https://apify.com/rbbscrap/tiktok-scraper/api/mcp).

#### Beyond the Official TikTok API

- **No API Keys or Approval Delays:** Start extracting public TikTok data immediately without registering developer apps or waiting for quota approvals.
- **No Restrictive Rate Quotas:** Bypass strict per-minute API limits and expensive enterprise tiers while capturing the complete public data points displayed on TikTok.
- **256 MB Zero-Browser Architecture:** Uses native HTTP/2 and TLS session emulation instead of heavy Chromium instances, executing in seconds at a fraction of standard compute costs.

***

### What data can you scrape from TikTok?

**TikTok Scraper** extracts the following data points from TikTok:

<table>
<tr>
<td>📝 <b>Mode</b> (<code>mode</code>)</td>
<td>📝 <b>Profiles</b> (<code>profiles</code>)</td>
<td>🏷️ <b>Hashtags</b> (<code>hashtags</code>)</td>
</tr>
<tr>
<td>🔗 <b>Video URLs</b> (<code>videoUrls</code>)</td>
<td>🏷️ <b>Item Type</b> (<code>itemType</code>)</td>
<td>🆔 <b>Unique ID</b> (<code>uniqueId</code>)</td>
</tr>
<tr>
<td>📝 <b>Nickname</b> (<code>nickname</code>)</td>
<td>📝 <b>Follower Count</b> (<code>followerCount</code>)</td>
<td>👍 <b>Heart Count</b> (<code>heartCount</code>)</td>
</tr>
<tr>
<td>🆔 <b>Video Count</b> (<code>videoCount</code>)</td>
<td>📝 <b>Verified</b> (<code>verified</code>)</td>
<td>🆔 <b>Video ID</b> (<code>videoId</code>)</td>
</tr>
</table>

| Data Category | Extracted Fields & Data Points |
| :--- | :--- |
| **Identity & Core Identifiers** | `itemType` (Item Type), `uniqueId` (Unique ID), `nickname` (Nickname), `videoId` (Video ID), `musicTitle` (Music Title) |
| **Metrics, Pricing & Engagement** | `followerCount` (Follower Count), `heartCount` (Heart Count), `videoCount` (Video Count), `playCount` (Play Count), `diggCount` (Digg Count), `commentCount` (Comment Count) |
| **Details, Attributes & Context** | `mode` (Mode), `profiles` (Profiles), `hashtags` (Hashtags), `verified` (Verified), `desc` (Desc), `musicAuthor` (Music Author) |
| **Direct Links, Media & Timestamps** | `videoUrls` (Video URLs), `engagementRatePercent` (Engagement Rate Percent), `url` (URL) |

***

### Why scrape TikTok? (Typical Use Cases & Guides)

You can use **TikTok Scraper** for a wide range of data and business workflows:

- **Influencer Vetting:** Verify engagement rates and real view metrics before booking TikTok sponsorships.
- **Viral Trend Tracking:** Monitor emerging audio tracks and viral hashtag challenges for social media teams.
- **Competitor Video Analysis:** Reverse-engineer top performing hooks, video lengths, and hashtags.
- **AI Agents, RAG & LLM Knowledge Pipelines:** Stream clean, structured TikTok JSON records into vector databases, Claude, GPT-4, or LangChain workflows.
- **Automated BI Dashboards & Scheduled Alerts:** Schedule daily or hourly runs and push live TikTok updates directly to Google Sheets, Looker Studio, Slack, or webhooks.
- **[Market Research & Competitor Analysis](https://apify.com/use-cases/market-research):** Benchmark TikTok offerings, pricing strategies, and market share across regions.
- **[Lead Generation & CRM Enrichment](https://blog.apify.com/marketing-leads-scraping-with-apify/):** Build targeted prospect lists and sync verified records straight into HubSpot, Salesforce, or Clay.
- **[AI Agents & RAG Pipelines via MCP](https://blog.apify.com/how-to-use-mcp/):** Connect live TikTok data directly to Claude Desktop, Cursor, or LangChain agents.

***

### How to scrape TikTok data

**TikTok Scraper** is designed for a zero-configuration start, even if you have never scraped data before:

1. [Create a free Apify account](https://console.apify.com/sign-up) using your email (includes **$5.00 in free monthly credits**).
2. Open **[TikTok Scraper](https://apify.com/rbbscrap/tiktok-scraper)** and click on the **[Input tab](https://apify.com/rbbscrap/tiktok-scraper/input)** — all required fields are already pre-filled with a working example.
3. Enter your search terms, target URLs, or filter criteria (or keep the default pre-filled configuration for an instant 1-Click test).
4. Click the green **"Start"** button and wait a few seconds for the data to be extracted.
5. Download your dataset in **JSON, CSV, Excel (XLSX), or HTML**, or fetch it via the [API tab](https://apify.com/rbbscrap/tiktok-scraper/api).

> For more technical details on every parameter, check out the [Input Schema tab](https://apify.com/rbbscrap/tiktok-scraper/input-schema) or read the [Apify Platform Documentation](https://docs.apify.com/platform/actors/running).

#### 🔗 How to scrape TikTok by Search Term or Direct URL

<table>
<tr>
<td><b>Scraping by Search Term / Filter 🔑</b></td>
<td>Enter keywords, categories, or filter parameters just as you would search on TikTok. Set the maximum number of items you want to extract and click <b>Start</b>.</td>
</tr>
<tr>
<td><b>Scraping by Direct URL 🔗</b></td>
<td>Paste one or more direct TikTok links (or import a list of URLs from a Google Sheet / CSV) to extract targeted item or profile details in bulk.</td>
</tr>
</table>

***

### ⬇️ Input Configuration & Examples

To start scraping TikTok, fill in the visual input form in the Apify Console or pass a JSON payload via the API. Full technical specifications are available on the [Input Schema tab](https://apify.com/rbbscrap/tiktok-scraper/input-schema).

#### Input Parameters Reference

| Parameter | Type | Default / Prefill | Description |
| :--- | :---: | :---: | :--- |
| `mode` | `string` | `profiles` | Choose whether you want to scrape TikTok user profiles, specific video URLs, or hashtag feeds. Options: `profiles`, `videos`, `hashtags`. |
| `profiles` | `array` | `["@tiktok","@khaby.lame"]` | List of TikTok handles (e.g. tiktok, @khaby.lame) or full URLs (https://www.tiktok.com/@tiktok). |
| `hashtags` | `array` | `["viral","tech"]` | List of TikTok hashtags to scrape (e.g. 'viral', 'fyp', 'webscraping', 'tech'). Used when Scrape Mode is set to 'hashtags'. |
| `videoUrls` | `array` | `["https://www.tiktok.com/@scout2015...` | List of direct TikTok video URLs (e.g. https://www.tiktok.com/@scout2015/video/6718335390845095173). Used when Scrape Mode is set to 'videos'. |
| `minLikes` | `integer` | `0` | Only keep videos with at least this number of likes (diggCount). |
| `minViews` | `integer` | `0` | Only keep videos with at least this number of views / plays (playCount). |
| `onlyVerified` | `boolean` | `false` | Filter to only keep content or profiles from verified TikTok creators (blue checkmark). |
| `maxItems` | `integer` | `20` | Maximum number of profiles, hashtags, or videos to scrape in this run. |
| `proxyConfiguration` | `object` | — | Use Apify Proxy (Residential or Datacenter) to prevent rate limits and geographic blocks. |

#### Example 1: Standard Extraction (1-Click Default)

```json
{
  "mode": "profiles",
  "profiles": [
    "@tiktok",
    "@khaby.lame"
  ],
  "hashtags": [
    "viral",
    "tech"
  ],
  "videoUrls": [
    "https://www.tiktok.com/@scout2015/video/6718335390845095173"
  ]
}
```

#### Example 2: Filtered & Batch Extraction

```json
{
  "mode": "videos",
  "profiles": [
    "@tiktok",
    "@khaby.lame"
  ],
  "hashtags": [
    "viral",
    "tech"
  ],
  "videoUrls": [
    "https://www.tiktok.com/@scout2015/video/6718335390845095173"
  ],
  "minLikes": 0,
  "minViews": 0,
  "onlyVerified": true,
  "maxItems": 40
}
```

***

### ⬆️ Output Example (Table View, JSON & Fields Reference)

The scraped results are stored in a structured Apify Dataset available in the **Storage** tab. Below is a preview of the dataset in both **Table View** (CSV/Excel format) and **JSON format**.

#### Table View (CSV / Excel Dataset Preview)

| Mode | Profiles | Hashtags | Video URLs |
| :--- | :--- | :--- | :--- |
| `profiles` | `@tiktok` | `viral` | `https://www.tiktok.com/@scout...` |
| `profiles` | `@tiktok` | `viral` | `https://www.tiktok.com/@scout...` |
| `profiles` | `@tiktok` | `viral` | `https://www.tiktok.com/@scout...` |

#### JSON Output Example

```json
{
  "mode": "profiles",
  "profiles": [
    "@tiktok",
    "@khaby.lame"
  ],
  "hashtags": [
    "viral",
    "tech"
  ],
  "videoUrls": [
    "https://www.tiktok.com/@scout2015/video/6718335390845095173"
  ]
}
```

#### Output Fields Reference

| Field Name | Type | Description |
| :--- | :---: | :--- |
| `mode` | `string` | Extracted mode value. |
| `profiles` | `array` | Extracted profiles value. |
| `hashtags` | `array` | Extracted hashtags value. |
| `videoUrls` | `array` | Extracted video urls value. |
| `itemType` | `string` | Extracted item type value. |
| `uniqueId` | `string` | Extracted unique id value. |
| `nickname` | `string` | Extracted nickname value. |
| `followerCount` | `integer / number` | Extracted follower count value. |
| `heartCount` | `integer / number` | Extracted heart count value. |
| `videoCount` | `integer / number` | Extracted video count value. |
| `verified` | `boolean` | Extracted verified value. |
| `videoId` | `string` | Extracted video id value. |
| `desc` | `string` | Extracted desc value. |
| `playCount` | `integer / number` | Extracted play count value. |
| `diggCount` | `integer / number` | Extracted digg count value. |
| `commentCount` | `integer / number` | Extracted comment count value. |
| `shareCount` | `integer / number` | Extracted share count value. |
| `engagementRatePercent` | `number` | Extracted engagement rate percent value. |
| `musicTitle` | `string` | Extracted music title value. |
| `musicAuthor` | `string` | Extracted music author value. |
| `url` | `string` | Extracted url value. |

***

### 🔗 Scrape any data you need with dedicated scrapers

Combine **TikTok Scraper** with our other dedicated scrapers from [@RBBscrap](https://apify.com/rbbscrap) if you want to extract specialized data across platforms:

<table>
<tr>
<td>🔹 <a href="https://apify.com/rbbscrap/tiktok-video-downloader"><b>TikTok Video Downloader</b></a></td>
<td>🔹 <a href="https://apify.com/rbbscrap/tiktok-creative-center"><b>TikTok Creative Center Scraper: Top Ads & Ad Intelligence</b></a></td>
<td>🔹 <a href="https://apify.com/rbbscrap/instagram-scraper"><b>Instagram Scraper</b></a></td>
</tr>
<tr>
<td>🔹 <a href="https://apify.com/rbbscrap/youtube-scraper"><b>YouTube Scraper</b></a></td>
<td>🔹 <a href="https://apify.com/rbbscrap/twitter-scraper"><b>Twitter / X Scraper</b></a></td>
<td>🔹 <a href="https://apify.com/rbbscrap/reddit-scraper"><b>Reddit Scraper</b></a></td>
</tr>
</table>

| Scraper | Extracted Data & Primary Use Case |
| :--- | :--- |
| **[TikTok Video Downloader](https://apify.com/rbbscrap/tiktok-video-downloader)** | No Watermark HD MP4 |
| **[TikTok Creative Center Scraper: Top Ads & Ad Intelligence](https://apify.com/rbbscrap/tiktok-creative-center)** | Extract structured TikTok Creative Center Scraper: Top Ads & Ad Intelligence datasets and metrics |
| **[Instagram Scraper](https://apify.com/rbbscrap/instagram-scraper)** | Profiles, Posts & Reels |
| **[YouTube Scraper](https://apify.com/rbbscrap/youtube-scraper)** | Videos, Shorts & Channels |
| **[Twitter / X Scraper](https://apify.com/rbbscrap/twitter-scraper)** | Tweets & Profiles |
| **[Reddit Scraper](https://apify.com/rbbscrap/reddit-scraper)** | Posts, Comments & Subreddits |

***

### ⚠️ Error Items & Resilience Reference

**TikTok Scraper** is engineered to process multi-query and batch runs resiliently without crashing if a single query or URL fails:

| Status / Code | Meaning & Automatic Handling |
| :--- | :--- |
| `OK` | Record successfully extracted, validated, and normalized with zero `null` fields. |
| `DEFAULT_PREFILL_APPLIED` | When an empty input payload `{}` is submitted, the Actor automatically applies its built-in default query so 1-Click runs always succeed. |
| `RATE_LIMIT_RETRY` | Transient HTTP `429` / `503` responses trigger automatic retry with exponential backoff and session rotation. |
| `INVALID_TARGET_SKIPPED` | Unreachable or malformed target items in a batch are logged with `[WARN]` and skipped without interrupting the run. |

***

### ❓ Frequently Asked Questions (FAQ)

#### How much does scraping TikTok cost?

**TikTok Scraper** uses transparent **Pay-Per-Event (`PAY_PER_EVENT`)** pricing set **10x cheaper than the market leader** ($\div 10$):

- **Event Rate:** **$0.0003** per *Scraped TikTok Scraper Record* (**$0.3 per 1,000 items**).
- **🎁 1st Run 100% FREE:** Your very first execution is **100% free** (`$0.00` event charges are applied on your initial run).
- **Apify Free Plan ($5.00/month included):** Every Apify account receives **$5.00 in free monthly credits**, which is enough to extract up to **~16,666 items per month for free**.
- View full details on the [Pricing tab](https://apify.com/rbbscrap/tiktok-scraper/pricing) and the [Apify Pricing page](https://apify.com/pricing).

#### Can I integrate TikTok Scraper with Make, Zapier, n8n, or Google Sheets?

Yes. **TikTok Scraper** can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations), including [Make](https://docs.apify.com/platform/integrations/make), [Zapier](https://docs.apify.com/platform/integrations/zapier), [n8n](https://docs.apify.com/platform/integrations/n8n), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [Google Sheets](https://docs.apify.com/platform/integrations/google-sheets), [Google Drive](https://docs.apify.com/platform/integrations/drive), and [webhooks](https://docs.apify.com/platform/integrations/webhooks).

#### Can I use TikTok Scraper with the Apify API (Python & Node.js)?

Yes. The Apify API gives you programmatic access to run **TikTok Scraper**, schedule jobs, and fetch datasets. Use the `apify-client` [PyPI package](https://apify.com/rbbscrap/tiktok-scraper/api/python) for Python or the `apify-client` [NPM package](https://apify.com/rbbscrap/tiktok-scraper/api/javascript) for Node.js, or check the [Apify API Reference](https://docs.apify.com/api/v2):

**Python (`apify-client`)**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run = client.actor("rbbscrap/tiktok-scraper").call(run_input={
    "mode": "profiles",
    "profiles": ["@tiktok","@khaby.lame"],
    "hashtags": ["viral","tech"],
    "videoUrls": ["https://www.tiktok.com/@scout2015/video/6718335390845095173"]
})

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

**Node.js (`apify-client`)**

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

const client = new ApifyClient({ token: 'YOUR_APIFY_API_TOKEN' });

const run = await client.actor('rbbscrap/tiktok-scraper').call({
    mode: "profiles",
    profiles: ["@tiktok","@khaby.lame"],
    hashtags: ["viral","tech"],
    videoUrls: ["https://www.tiktok.com/@scout2015/video/6718335390845095173"]
});

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

#### Can I use TikTok Scraper through an MCP Server (Claude Desktop, Cursor, AI Agents)?

Yes. With the Apify API, you can use **TikTok Scraper** in conjunction with an MCP server to connect directly to **Claude Desktop, Cursor, Windsurf, or LibreChat**. Read the official guide on [how to set up Apify Actors with MCP](https://blog.apify.com/how-to-use-mcp/), or go to the [MCP tab](https://apify.com/rbbscrap/tiktok-scraper/api/mcp):

1. Start a Server-Sent Events (SSE) session to receive a `sessionId`.
2. Send API messages using that `sessionId` to trigger **TikTok Scraper** with your input parameters.
3. Receive structured TikTok dataset records directly inside your AI agent conversation.

#### Do I need residential proxies or login cookies to scrape TikTok?

No. **TikTok Scraper** operates on a zero-browser HTTP/2 protocol engine (256 MB RAM) and works out-of-the-box without requiring login cookies or external proxies for standard workloads. For high-volume enterprise runs, you can optionally use [Apify Proxy](https://docs.apify.com/proxy) in the input configuration.

#### Is it legal to scrape data from TikTok?

Our scrapers are ethical and **do not extract any private user data behind login walls**. They only extract what is shared publicly on the web. However, please keep in mind that personal data is protected by **GDPR ([EU Regulation 2016/679](https://eur-lex.europa.eu/eli/reg/2016/679/oj))** and other regulations worldwide. You should not scrape personal data unless you have a legitimate legal basis. Read more in Apify's guide on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Your feedback & support

We are continuously improving the performance of our Actors. If you have any technical feedback for **TikTok Scraper**, need a custom feature, or found a bug, please create an issue on the Actor's [Issues tab](https://apify.com/rbbscrap/tiktok-scraper/issues/open) in the Apify Console.

# Actor input Schema

## `mode` (type: `string`):

Choose whether you want to scrape TikTok user profiles, specific video URLs, or hashtag feeds.

## `profiles` (type: `array`):

List of TikTok handles (e.g. tiktok, @khaby.lame) or full URLs (https://www.tiktok.com/@tiktok).

## `hashtags` (type: `array`):

List of TikTok hashtags to scrape (e.g. 'viral', 'fyp', 'webscraping', 'tech'). Used when Scrape Mode is set to 'hashtags'.

## `videoUrls` (type: `array`):

List of direct TikTok video URLs (e.g. https://www.tiktok.com/@scout2015/video/6718335390845095173). Used when Scrape Mode is set to 'videos'.

## `minLikes` (type: `integer`):

Only keep videos with at least this number of likes (diggCount).

## `minViews` (type: `integer`):

Only keep videos with at least this number of views / plays (playCount).

## `onlyVerified` (type: `boolean`):

Filter to only keep content or profiles from verified TikTok creators (blue checkmark).

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

Maximum number of profiles, hashtags, or videos to scrape in this run.

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

Use Apify Proxy (Residential or Datacenter) to prevent rate limits and geographic blocks.

## `maxExecutionTimeSecs` (type: `integer`):

Fail-Fast safety ceiling timeout in seconds (15 to 90s). Prevents long-running runs from wasting compute units.

## Actor input object example

```json
{
  "mode": "profiles",
  "profiles": [
    "@tiktok",
    "@khaby.lame"
  ],
  "hashtags": [
    "viral",
    "tech"
  ],
  "videoUrls": [
    "https://www.tiktok.com/@scout2015/video/6718335390845095173"
  ],
  "minLikes": 0,
  "minViews": 0,
  "onlyVerified": false,
  "maxItems": 20,
  "maxExecutionTimeSecs": 75
}
```

# Actor output Schema

## `results` (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 = {
    "mode": "profiles",
    "profiles": [
        "@tiktok",
        "@khaby.lame"
    ],
    "hashtags": [
        "viral",
        "tech"
    ],
    "videoUrls": [
        "https://www.tiktok.com/@scout2015/video/6718335390845095173"
    ],
    "minLikes": 0,
    "minViews": 0,
    "onlyVerified": false,
    "maxItems": 20,
    "maxExecutionTimeSecs": 75
};

// Run the Actor and wait for it to finish
const run = await client.actor("rbbscrap/tiktok-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 = {
    "mode": "profiles",
    "profiles": [
        "@tiktok",
        "@khaby.lame",
    ],
    "hashtags": [
        "viral",
        "tech",
    ],
    "videoUrls": ["https://www.tiktok.com/@scout2015/video/6718335390845095173"],
    "minLikes": 0,
    "minViews": 0,
    "onlyVerified": False,
    "maxItems": 20,
    "maxExecutionTimeSecs": 75,
}

# Run the Actor and wait for it to finish
run = client.actor("rbbscrap/tiktok-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 '{
  "mode": "profiles",
  "profiles": [
    "@tiktok",
    "@khaby.lame"
  ],
  "hashtags": [
    "viral",
    "tech"
  ],
  "videoUrls": [
    "https://www.tiktok.com/@scout2015/video/6718335390845095173"
  ],
  "minLikes": 0,
  "minViews": 0,
  "onlyVerified": false,
  "maxItems": 20,
  "maxExecutionTimeSecs": 75
}' |
apify call rbbscrap/tiktok-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rbbscrap/tiktok-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/1x7eCvD0R3NVoeAHg/builds/kgrQo3F3KlvCQEfAH/openapi.json
