# Tiktok Video Scraper (`scraperforge/tiktok-video-scraper`) Actor

- **URL**: https://apify.com/scraperforge/tiktok-video-scraper.md
- **Developed by:** [ScraperForge](https://apify.com/scraperforge) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

### What is TikTok Video Scraper?

A TikTok Video Scraper is a powerful tool that allows you to automatically extract data from TikTok videos — without needing to open each video manually. Whether you’re tracking viral trends, collecting influencer stats, or running sentiment analysis, this tool lets you do it at scale. Most modern scrapers, including the Apify TikTok Video Scraper, offer both no-code interfaces and developer-friendly integrations via API, Python, or even GitHub-hosted projects.

Popular variants include:

*   TikTok Video Scraper Python scripts for automation workflows
    
*   Free TikTok Video Scraper tools for limited use
    
*   Browser-based options like the TikTok scraper extension
    
*   Code-first solutions on GitHub TikTok Video Scraper repos
    

These scrapers are typically used for public content, meaning no login or private data access is required

### What TikTok Video Data Can I Extract?

Here’s a breakdown of what a TikTok video data scraper can extract from video URLs:

| Data Type | Description |
| --- | --- |
| Video URL | Direct link to the TikTok video |
| Author Info | Name, username, avatar, bio, account status |
| Engagement Stats | Plays, likes (hearts), comments, shares |
| Captions & Hashtags | Full video text + used hashtags |
| Music Metadata | Music title, original/borrowed, author |
| Timestamp | Date/time of publication |
| Video Status | Paid promotion or organic content |
| Comments (optional) | Pull with a TikTok video comment scraper |

Advanced tools like Clockworks TikTok Video Scraper and Apify TikTok Video Scraper even allow filtering by video types and bulk processing from URLs.

#### Key Features of TikTok Video Scraper

*   Scrape data from individual or bulk video URLs
    
*   Export to CSV, JSON, Excel, XML, or HTML
    
*   Option to download TikTok video metadata only (lightweight mode)
    
*   Works as a TikTok video URL scraper or video link scraper
    
*   Handles large-scale scraping with pagination and proxy support
    
*   Integrates with Zapier, Slack, Google Drive, etc.
    
*   Can scrape replies using a TikTok comment scraper
    
*   Some tools come as an installable TikTok Video Scraper app
    

### How to Use TikTok Video Scraper

Whether you're using an online platform or a Python script, most TikTok Video Scrapers follow a simple setup process. Here's how to get started:

#### 1\. Create an Account

Sign up on a scraping platform like Apify to access ready-to-use actors such as the TikTok Video Scraper. Some free TikTok Video Scrapers also offer limited access without sign-up.

#### 2\. Open the Scraper Tool

Locate the TikTok Video Scraper in the dashboard or install it locally. Tools may appear as actors (hosted) or CLI tools (self-hosted).

#### 3\. Input TikTok Video URLs

Paste one or more video links into the input field. Most scrapers support bulk URLs and accept formats like JSON arrays. Optional settings may include subtitle download, video resolution, and metadata-only mode.

#### 4\. Start the Scraper

Click the “Start” or “Run” button. The scraper will begin extracting data for each video.

#### 5\. Download the Results

Once the run completes, export your data in formats such as CSV, Excel, JSON, or XML.

#### 🐍 Using a Python Script?

If you’re working with a TikTok Video Scraper GitHub repository, clone the repo, install dependencies (pip install -r requirements.txt), and run the script in your terminal with the correct input.

#### Input

```json
{
    "max_comments": 10,
    "urls": [
        "https://www.tiktok.com/@mrbeast"
    ]
}
````

#### Output

```json
[
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "Cooking a pizza with powertools! ",
    "diggCount": 883800,
    "shareCount": 114800,
    "playCount": 16900000,
    "commentCount": 58800,
    "videoMeta.duration": 39,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-09-23T16:49:52.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7553327774983802143"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "I just got punched by @Mike Tyson #CaneloCrawford #RiyadhSeason ",
    "diggCount": 997700,
    "shareCount": 78800,
    "playCount": 14800000,
    "commentCount": 37900,
    "videoMeta.duration": 22,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-09-14T01:43:24.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7549754449489595679"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "They wouldn’t let me keep the bike. Check out Tron: Ares in theaters October 10th!",
    "diggCount": 228500,
    "shareCount": 31900,
    "playCount": 5600000,
    "commentCount": 22300,
    "videoMeta.duration": 13,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-09-05T04:44:25.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7546461281742556447"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "I raced @IShowSpeed",
    "diggCount": 890800,
    "shareCount": 33900,
    "playCount": 13800000,
    "commentCount": 20000,
    "videoMeta.duration": 46,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-09-03T17:22:55.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7545914587384696095"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "WE RAISED $40,000,000 FOR #teamwater Couldn’t have done this without each and every one of you :) ",
    "diggCount": 442500,
    "shareCount": 46600,
    "playCount": 6000000,
    "commentCount": 37200,
    "videoMeta.duration": 142,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-09-01T00:45:25.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7544915396579708190"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "We are so close! Donate now to #teamwater to help give 2 million people access to clean water!",
    "diggCount": 343600,
    "shareCount": 41100,
    "playCount": 31600000,
    "commentCount": 41900,
    "videoMeta.duration": 12,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-08-19T04:09:20.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7540143785636826398"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "yo it’s me @Karl, don’t worry jimmy is totally okay and is totally not sitting on my shelf rn. ",
    "diggCount": 2300000,
    "shareCount": 98000,
    "playCount": 41400000,
    "commentCount": 64800,
    "videoMeta.duration": 5,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "Lilz Bullz Official",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-08-11T15:34:46.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7537351756468997407"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "Help us raise $40,000,000 for #TeamWater. Thanks to our partners at TikTok for helping us get even closer to our goal of giving clean drinking water to 2 million people in need.",
    "diggCount": 1900000,
    "shareCount": 80700,
    "playCount": 223900000,
    "commentCount": 74800,
    "videoMeta.duration": 30,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-08-04T16:41:45.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7534771415275375902"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "Tag your boss to get them on the Jumbotron 😭",
    "diggCount": 816200,
    "shareCount": 38200,
    "playCount": 12300000,
    "commentCount": 172300,
    "videoMeta.duration": 11,
    "musicMeta.musicName": "original sound",
    "musicMeta.musicAuthor": "MrBeast",
    "musicMeta.musicOriginal": true,
    "createTimeISO": "2025-07-18T22:53:44.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7528558840904830238"
  },
  {
    "authorMeta.avatar": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=665b17c9&x-expires=1762502400&x-signature=NxCywJfut6L2KxxTsirfjaoXH0I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva",
    "authorMeta.name": "mrbeast",
    "text": "@haleyybaylee you owe me a giveaway video",
    "diggCount": 3100000,
    "shareCount": 91500,
    "playCount": 47300000,
    "commentCount": 146800,
    "videoMeta.duration": 17,
    "musicMeta.musicName": "Sing To Me",
    "musicMeta.musicAuthor": "Jhené Aiko",
    "musicMeta.musicOriginal": false,
    "createTimeISO": "2025-06-29T00:39:06.000Z",
    "webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7521164305530703135"
  }
]
```

### 🎯 Use Cases

A TikTok Video Scraper isn’t just for data geeks—it’s a powerful tool across marketing, research, and content creation. Here’s how different users benefit:

#### 🔥 Trend Discovery

Track trending videos across niches and regions. Identify what formats, sounds, and hashtags are going viral to inspire your next content move.

#### 👥 Influencer Analysis

Scrape engagement data (likes, shares, comments) to evaluate influencer performance. Spot rising creators before they go mainstream, and back decisions with hard metrics.

#### 📈 Marketing Intelligence

Monitor competitor campaigns or hashtag challenges. Use scraped TikTok video data to calculate ROI, benchmark performance, and optimize ad spend.

#### 🗣️ Social Listening

Combine a TikTok video comment scraper with metadata to extract customer sentiment, common feedback, or viral moments that impact your brand perception.

#### 🎓 Academic & Behavioral Research

Study how TikTok’s algorithm prioritizes certain content types. Use metadata like timestamps, engagement rates, and music to uncover platform dynamics.

#### ✍️ Content Strategy Development

Use a TikTok video metadata viewer to refine your content calendar. Learn which formats work best, what time to post, and how to frame your captions based on what’s already performing.

### How Many Results Can You Scrape with TikTok Video Scraper?

The number of results you can scrape depends on the tool, configuration, and platform limits. For example, the Apify TikTok Video Scraper supports thousands of video records per run, limited only by your compute units and result count settings. Users on Apify’s free plan can typically scrape a few hundred results per month, while paid plans allow tens of thousands or more.

#### 🚀 Scaling Your Scraping Capacity

To increase scale:

- Use batch input (bulk video URLs or hashtag-based scraping)

- Enable proxy rotation to bypass TikTok rate limits

- Adjust resultsPerPage settings to fetch more items per scroll

With these settings, a single run can yield thousands of data points, including video metadata, author stats, and engagement numbers.

#### 🐍 Self-Hosted Options

If you’re using a TikTok Video Scraper GitHub script or a TikTok Video Scraper Python project, you can theoretically scrape hundreds of thousands of videos, provided you manage rate-limiting and use rotating proxies effectively.

In short, whether you're scraping 10 videos or 100,000, it's all about how well your tool is optimized and how you configure your inputs.

### How Much Will Scraping TikTok Videos Cost?

The cost of scraping TikTok videos depends on the tool and the scale of your data extraction. Some free TikTok Video Scraper tools offer limited access—usually allowing you to scrape around 100–500 items per month, which is ideal for small projects or occasional use.

Platforms like Apify TikTok Video Scraper follow a pay-per-result pricing model, with the following typical breakdown:

- $0.03 per actor start (each time the scraper runs)

- $0.004 per dataset item (each video’s data)

- $0.001 per video if downloading is enabled

With optimized settings and metadata-only mode, costs can be kept low. If you’re working within a smaller scope, our $5 monthly can cover around 1,000 results—making it a solid entry point for individuals and startups.

For larger-scale scraping, consider moving to a higher plan like $49/month, which unlocks more compute credits and can handle 5,000+ results with ease.

Alternatively, using a TikTok Video Scraper GitHub project or a Python-based TikTok scraper lets you self-host and bypass platform fees entirely. Just keep in mind: you’ll need to manage your own proxies, rate limits, and server resources.

### Is It Legal to Scrape TikTok Videos?

Yes—but only if you follow specific guidelines and focus strictly on public data. Here's what you need to know:

#### ✅ Public Data Is Fair Game

You are legally allowed to scrape content that is publicly available on TikTok, such as:\n- Video metadata (likes, views, captions)\n- Public comments\n- Usernames and bios (if public)\n- Hashtags and music metadata

#### ❌ Private or Restricted Data Is Off-Limits

TikTok’s terms strictly prohibit scraping:\n- Private accounts or DMs\n- Login-restricted content\n- Personally identifiable information (email, phone numbers, etc.)

#### 🤖 Ethical Scrapers Follow the Rules

Tools like the Apify TikTok Video Scraper and Clockworks TikTok Video Scraper are built to follow ethical scraping practices, collecting only what’s visible to any public user.

#### 📌 Legal Compliance Reminder

Even if the data is public, how you use it matters:\n- If your project involves storing or analyzing personal data (e.g., comment history, usernames), consult legal counsel.\n- Make sure your usage aligns with privacy laws such as GDPR, CCPA, or other regional regulations.

### What Are Other TikTok Scraping Tools?

If you want to scrape specific TikTok data, you can use any of the dedicated scrapers with fewer settings to configure and faster results. Just enter one or more TikTok URLs and click to scrape.

| 🎥 TikTok Video Scraper | 👤 TikTok Profile Scraper |
| --- | --- |
| 💬 TikTok Comments Scraper | #️⃣ TikTok Hashtag Scraper |
| 🎵 TikTok Sound Scraper | 📢 TikTok Ads Scraper |
| 🔍 TikTok Discover Scraper | 📈 TikTok Trending Videos Scraper |

# Actor input Schema

## `postURLs` (type: `array`):

Add the URLs of posted videos you want to scrape. You can enter URLs one by one, or you can upload or link to a text file.

## `scrapeRelatedVideos` (type: `boolean`):

Tick to scrape related videos for the post URLs you provide. The maximum number of scraped related videos is set by the resultsPerPage count.

## `resultsPerPage` (type: `integer`):

Add the number of related videos you want to scrape for each post URL. This field is applicable when the Scrape related videos option is enabled. Note: TikTok typically limits related videos to 12-16 per video.

## Actor input object example

```json
{
  "postURLs": [
    "https://www.tiktok.com/@apifyoffice/video/7200360993149553925"
  ],
  "scrapeRelatedVideos": false,
  "resultsPerPage": 10
}
```

# 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 = {
    "postURLs": [
        "https://www.tiktok.com/@apifyoffice/video/7200360993149553925"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperforge/tiktok-video-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 = { "postURLs": ["https://www.tiktok.com/@apifyoffice/video/7200360993149553925"] }

# Run the Actor and wait for it to finish
run = client.actor("scraperforge/tiktok-video-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 '{
  "postURLs": [
    "https://www.tiktok.com/@apifyoffice/video/7200360993149553925"
  ]
}' |
apify call scraperforge/tiktok-video-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Tiktok Video Scraper",
        "version": "0.2",
        "x-build-id": "0nYrVgtsHKD5LLc5H"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperforge~tiktok-video-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperforge-tiktok-video-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/scraperforge~tiktok-video-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperforge-tiktok-video-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/scraperforge~tiktok-video-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperforge-tiktok-video-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",
                "required": [
                    "postURLs"
                ],
                "properties": {
                    "postURLs": {
                        "title": "Direct URL(s) for scraping specific video(s)",
                        "type": "array",
                        "description": "Add the URLs of posted videos you want to scrape. You can enter URLs one by one, or you can upload or link to a text file.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeRelatedVideos": {
                        "title": "Scrape related videos",
                        "type": "boolean",
                        "description": "Tick to scrape related videos for the post URLs you provide. The maximum number of scraped related videos is set by the resultsPerPage count.",
                        "default": false
                    },
                    "resultsPerPage": {
                        "title": "Number of related videos per post",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Add the number of related videos you want to scrape for each post URL. This field is applicable when the Scrape related videos option is enabled. Note: TikTok typically limits related videos to 12-16 per video.",
                        "default": 10
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
