# TikTok Hashtag Scraper V2 (`myagizm/tiktok-hashtag-scraper-v2`) Actor

Scrape TikTok hashtag feeds with guaranteed delivery. Returns video URL, description, plays, likes, comments, shares, saves, duration, author and music for every video under a hashtag. Deep pagination, no login.

- **URL**: https://apify.com/myagizm/tiktok-hashtag-scraper-v2.md
- **Developed by:** [MYM](https://apify.com/myagizm) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.57 / 1,000 hashtag video scrapeds

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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

## TikTok Hashtag Scraper — scrape videos by hashtag with full metrics (No API Key, No Login)

<p align="center">
  <a href="https://apify.com/myagizm/tiktok-hashtag-scraper-v2"><img src="https://img.shields.io/badge/Apify-Actor-00b96b?logo=apify&logoColor=white" alt="Apify Actor"></a>
  <img src="https://img.shields.io/badge/No%20API%20Key-required-blue" alt="No API Key required">
  <img src="https://img.shields.io/badge/No%20Login-needed-blue" alt="No Login needed">
  <img src="https://img.shields.io/badge/No%20Cookies-needed-blue" alt="No cookies needed">
  <img src="https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel%20%7C%20XML-orange" alt="Export formats">
  <img src="https://img.shields.io/badge/MCP-AI%20agents-8A2BE2" alt="MCP AI agents">
  <img src="https://img.shields.io/badge/Pricing-pay%20per%20result-success" alt="Pay per result">
</p>

**Scrape TikTok videos by hashtag** — no login, no cookies, no TikTok for Developers app, no access token. Give the TikTok Hashtag Scraper one or more hashtags and it returns each matching video with caption, all hashtags, plays, likes, comments, shares, **saves**, duration, cover image, sound title and author, an **ad flag**, and the creator's handle, verified badge and **follower count** — so you can filter by creator size without a second run. Perfect for trend research, creator discovery, and campaign monitoring. Export to JSON, CSV, Excel, or XML.

> **Get your first hashtag results free in under 2 minutes** — type a hashtag, click Start. No configuration, no credit card to try.

---

### Table of contents

- [What can it do?](#what-can-it-do)
- [Who uses it?](#who-uses-it)
- [What data can I scrape?](#what-data)
- [How to use it](#how-to)
- [Input example](#input-example)
- [Output example](#output-example)
- [Pricing](#pricing)
- [Tips](#tips)
- [Want other TikTok data?](#want-other-data)
- [AI agents (MCP)](#mcp)
- [Integrations & API](#integrations)
- [Support](#support)
- [FAQ](#faq)
- [Related searches](#related-searches)
- [Disclaimer](#disclaimer)
- [Resources](#resources)

---

### What can the TikTok Hashtag Scraper V2 do? {#what-can-it-do}

- #️⃣ **Scrape videos for any hashtag** — one or many in the same run.
- 📊 **Full metrics per video** — plays, likes, comments, shares, and saves.
- 👤 **Creator stats included** — handle, display name, verified badge, and **follower count**.
- 🎯 **Filter by creator size downstream** using `authorFollowers`, with no extra profile run.
- 📢 **Spot ads** — `isAd` marks branded content so you can separate organic from paid.
- 🎵 **See the sound behind each video** to identify trending audio early.
- ⏱️ **Get duration** to study which lengths win in a niche.
- 🏷️ **Every row carries the `hashtag`** it came from, so multi-hashtag runs stay separable.
- 🚚 **Managed delivery** — consistent results on every run.
- 📤 **Export** to JSON, CSV, Excel, or XML, or pull live via API.

Go beyond the limits of the official TikTok API: no OAuth app, no app review, no quota juggling — paste your input and collect publicly available data.

---

### Who uses the TikTok Hashtag Scraper V2? {#who-uses-it}

- 🔍 **Trend researchers** — track which hashtags and sounds are accelerating.
- 🤝 **Creator scouts** — discover mid-tier creators in a niche, filtered by follower count.
- 📣 **Campaign managers** — monitor a branded hashtag and collect UGC as it appears.
- 🛒 **E-commerce & product hunters** — spot rising products before they saturate.
- 📊 **Market researchers** — build hashtag datasets to measure attention over time.

---

### What data can I scrape? {#what-data}

| Field | Type | Description |
|-------|------|-------------|
| `hashtag` | string | The hashtag this video was found under. |
| `id` | string | Video ID. |
| `url` | string | Direct link to the video. |
| `text` | string | Caption. |
| `hashtags` | array | All hashtags in the caption. |
| `plays` | number | Play count. |
| `likes` | number | Likes (hearts). |
| `comments` | number | Comment count. |
| `shares` | number | Shares. |
| `saves` | number | Saves / favourites. |
| `duration` | number | Length in seconds. |
| `coverUrl` | string | Cover image URL. |
| `musicTitle` | string | Sound title. |
| `musicAuthor` | string | Sound author. |
| `author` | string | Creator handle. |
| `authorName` | string | Creator display name. |
| `authorId` | string | Creator numeric ID. |
| `authorVerified` | boolean | Creator verified badge. |
| `authorFollowers` | number | Creator's follower count — lets you filter by creator size without a second run. |
| `isAd` | boolean | Whether TikTok marks the video as an ad / branded content. |
| `createdAt` | string | Publish timestamp (ISO). |
| `createdAtEpoch` | number | Publish timestamp as Unix epoch. |

> Fields reflect what TikTok exposes publicly for that item. Values that do not exist for a given item are returned as `null` rather than dropped, so your schema stays stable.

---

### How to scrape hashtag videos {#how-to}

1. **Open the TikTok Hashtag Scraper** on [Apify](https://apify.com/myagizm/tiktok-hashtag-scraper-v2).
2. **Add hashtags** to *Hashtags* — with or without the `#`.
3. *(Optional)* Set **Max videos per hashtag**.
4. Click **▶ Start** and export the dataset.

No login, no cookies, no proxy configuration. Start with one input to see the output shape, then scale the same run — the fields stay identical, so code written against a test run keeps working.

---

### Input example {#input-example}

```json
{
  "hashtags": [
    "cooking",
    "fitness"
  ],
  "resultsLimit": 500
}
````

- **hashtags** — hashtags to scrape, `#` optional.
- **resultsLimit** — hard cap on videos per hashtag.

***

### Output example {#output-example}

```json
{
  "id": "7125823187908070661",
  "url": "https://www.tiktok.com/@simplefood4you/video/7125823187908070661",
  "isAd": false,
  "text": "I LOVE GARLIC 🙊🧄 #garlic #recipe #cooking #foodie #foodtiktok #food #foryou #fyp",
  "likes": 1500000,
  "plays": 23500000,
  "saves": 421400,
  "author": "simplefood4you",
  "shares": 63100,
  "hashtag": "cooking",
  "authorId": "309523380800585729",
  "comments": 6660,
  "coverUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-p-0068/d6b067679b524a399bb8e68f345882b6_1659110004~tplv-tiktokx-origin.image?dr=10395&x-expires=1785394800&x-signature=VuuReNgzNdhwUUITTX9F25NxQ2Q%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a",
  "duration": 20,
  "hashtags": [
    "garlic",
    "Recipe",
    "cooking",
    "Foodie",
    "foodtiktok",
    "food",
    "foryou",
    "fyp"
  ],
  "createdAt": "2022-07-29T15:53:22.000Z",
  "authorName": "simplefood4you",
  "musicTitle": "Could You Be Loved",
  "sourceType": "tiktok",
  "musicAuthor": "Bob Marley & The Wailers",
  "authorVerified": true,
  "createdAtEpoch": 1659110002,
  "authorFollowers": 2500000
}
```

Every run produces a clean dataset you can page through in the Apify Console or pull via API. Export to JSON, CSV, Excel, or XML in one click.

***

> **V2 = managed delivery.** This is the V2 line: it runs on managed infrastructure for consistent, guaranteed delivery and a wider field set. If you only need best-effort data at the lowest price, the V1 actor of the same surface is also on the [store profile](https://apify.com/myagizm).

### How much will it cost? {#pricing}

Simple, predictable **pay-per-result** pricing — you pay for the videos you actually receive, not for compute time.

- 💸 **Pay per video** — budget is just videos × rate, so you can estimate spend up front.
- 📉 **Volume discounts** — Bronze, Silver, Gold, Platinum, and Diamond Apify plans get progressively lower rates.
- 🆓 **Free to try** — new Apify accounts include monthly free usage, so your first run costs nothing.
- 🚫 **No hidden fees** — no proxy add-on, no per-request API charge, no minimum spend.

See the live rate on the [Apify store page](https://apify.com/myagizm/tiktok-hashtag-scraper-v2).

***

### Tips {#tips}

- 🎯 **Filter on `authorFollowers`** to find creators in your budget band — under 50k is where most deals happen.
- 📢 **Exclude `isAd: true`** when you want a picture of organic reach.
- 🎵 **Group by `musicTitle`** to find the sound powering a hashtag right now.
- 💾 **Rank by `saves`, not likes**, to find genuinely useful content in a niche.
- 🏷️ **Run related hashtags together** and compare median plays to find the least saturated one.
- ⏰ **Schedule daily runs** on a campaign hashtag to chart its growth.

***

### Want other TikTok data? {#want-other-data}

- 👤 **[TikTok Profile Scraper](https://apify.com/myagizm/tiktok-profile-scraper-v2)** — followers, following, likes, video count, bio, region and verified flag in bulk.
- 🎬 **[TikTok Video Scraper](https://apify.com/myagizm/tiktok-video-scraper-v2)** — video metrics: plays, likes, comments, shares, saves, duration and music.
- 💬 **[TikTok Comments Scraper](https://apify.com/myagizm/tiktok-comments-scraper-v2)** — comments with author, likes, replies and pinned flags.
- ⬇️ **[TikTok Video Downloader](https://apify.com/myagizm/tiktok-video-downloader-v2)** — watermark-free MP4 and audio download links.

Building a multi-platform dataset? The same no-login, pay-per-result approach covers the other networks:

- 🎵 **[TikTok Profile Scraper](https://apify.com/myagizm/tiktok-profile-scraper-v2)** · **[TikTok Video Scraper](https://apify.com/myagizm/tiktok-video-scraper-v2)** · **[TikTok Hashtag Scraper](https://apify.com/myagizm/tiktok-hashtag-scraper-v2)** · **[TikTok Comments Scraper](https://apify.com/myagizm/tiktok-comments-scraper-v2)**
- 🐦 **[X (Twitter) Tweets Scraper](https://apify.com/myagizm/x-tweets-scraper)** · **[X Profile Scraper](https://apify.com/myagizm/x-profile-scraper)** · **[X Trends Scraper](https://apify.com/myagizm/x-trends-scraper)**
- 👔 **[LinkedIn Profile Scraper](https://apify.com/myagizm/linkedin-profile-scraper)** · **[LinkedIn Company Scraper](https://apify.com/myagizm/linkedin-company-scraper)** · **[LinkedIn Jobs Scraper](https://apify.com/myagizm/linkedin-jobs-scraper)**
- 🤖 **[Reddit Scraper](https://apify.com/myagizm/reddit-scraper-v2)** · **[Reddit Search Scraper](https://apify.com/myagizm/reddit-search-scraper-v2)** · **[Reddit Subreddit Scraper](https://apify.com/myagizm/reddit-subreddit-scraper-v2)**
- ▶️ **[YouTube Channel Scraper](https://apify.com/myagizm/youtube-channel-scraper)** · **[YouTube Comment Scraper](https://apify.com/myagizm/youtube-comment-scraper)** · **[YouTube Transcript Scraper](https://apify.com/myagizm/youtube-transcript-scraper)**
- 🗺️ **[Google Maps Scraper](https://apify.com/myagizm/google-maps-scraper)** · **[Google News Scraper](https://apify.com/myagizm/google-news-scraper)**

Browse everything on the **[myagizm store profile](https://apify.com/myagizm)**.

***

### Use the data with AI agents (MCP) {#mcp}

The TikTok Hashtag Scraper V2 is available through the **Apify MCP server**, so AI assistants can call it as a tool and pull hashtag videos on demand.

- 🧩 **Claude** — add the Apify MCP server and let Claude fetch and analyse the data.
- 🤖 **ChatGPT** — use the actor as a tool inside research and reporting workflows.
- 🖊️ **Cursor** — pull structured results straight into your coding sessions.

Common AI-agent recipes:

- 🔍 **Trend brief** — "what themes and sounds dominate this hashtag this week?"
- 🤝 **Creator shortlist** — "find creators under 100k followers posting in this niche."
- 📢 **Organic vs paid** — "what share of these videos are marked as ads?"
- 💡 **Content angles** — "suggest three video ideas based on the top performers."

***

### Integrations & API {#integrations}

Connect the actor to the tools you already use: **Make, Zapier, n8n, Slack, Airbyte, Gumloop, CrewAI, IFTTT, Lindy, GitHub, Google Sheets, and Google Drive** — plus webhooks, Apify Schedules, and the MCP server.

#### Run synchronously and get the dataset (Apify API)

```bash
curl -X POST "https://api.apify.com/v2/acts/myagizm~tiktok-hashtag-scraper-v2/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hashtags": ["cooking", "fitness"], "resultsLimit": 500}'
```

#### Start a run asynchronously

```bash
curl -X POST "https://api.apify.com/v2/acts/myagizm~tiktok-hashtag-scraper-v2/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hashtags": ["cooking", "fitness"], "resultsLimit": 500}'
```

#### Fetch dataset items later

```bash
curl "https://api.apify.com/v2/acts/myagizm~tiktok-hashtag-scraper-v2/runs/last/dataset/items?token=YOUR_APIFY_TOKEN&format=csv"
```

Change `format` to `json`, `csv`, `xlsx`, or `xml` to export in your preferred format. The Apify Console also auto-generates ready-to-paste **JavaScript, Python, and CLI** snippets plus an **OpenAPI** spec for this actor.

***

### Support {#support}

Questions, feature requests, or something not looking right? Open an issue on the actor's **[Issues tab](https://apify.com/myagizm/tiktok-hashtag-scraper-v2/issues)**. Please include the input you used so we can reproduce and fix it quickly.

***

### FAQ {#faq}

#### Can I scrape several hashtags in one run?

Yes. Every row carries the `hashtag` field so results stay separable.

#### Why do some hashtags return fewer videos?

Very niche tags simply have fewer public videos, and TikTok gates some tags. Try a broader related hashtag.

#### Can I filter by creator follower count inside the actor?

Not inside the run, but `authorFollowers` is included in every row so you can filter instantly in your spreadsheet or query — without paying for a second profile run.

#### Does it include ads?

Yes, and `isAd` tells you which rows are branded content so you can include or exclude them.

#### Do I need a TikTok account, login, cookies, or API key?

No. There is no login, no cookies, no TikTok for Developers app, no app review, and no access token. Paste your input and run.

#### Is it legal to scrape TikTok?

The actor collects only publicly available data — the same content any visitor can see without logging in. It never logs in and never accesses private accounts. You are responsible for compliant use: if the data contains personal data, follow GDPR, CCPA, and other applicable regulations, and respect TikTok's terms.

#### Can I scrape private accounts?

No. Private accounts are reported in the run log and skipped. The actor never bypasses access controls.

#### Do I need proxies?

No. Proxy handling is built in and managed for you.

#### Can I export the results to CSV, Excel, or JSON?

Yes — JSON, CSV, Excel, or XML from the Console, or the API `format` parameter.

#### Can I use it with the Apify API?

Yes, using the sync and async endpoints shown above.

#### Is there an MCP server for AI agents?

Yes. Claude, ChatGPT, and Cursor can call this actor as a tool through the Apify MCP server.

#### Can I schedule runs?

Yes. Use Apify Schedules or trigger runs via API and webhooks.

#### How fresh is the data?

There is no caching. Every run reads the current public page, so numbers are live at run time.

#### Media URLs stopped working — why?

TikTok signs its CDN links and they expire within hours. Download or re-host media in the same session you scrape it.

***

### Related searches {#related-searches}

tiktok hashtag scraper · scrape tiktok hashtag · tiktok hashtag research · trending tiktok hashtags · tiktok trend research tool · tiktok creator discovery · tiktok ugc collection · tiktok campaign monitoring · tiktok hashtag data export · tiktok hashtag api alternative · scrape tiktok hashtag without login · tiktok trending sounds · tiktok niche research · tiktok hashtag videos csv

***

### Disclaimer {#disclaimer}

This is an independent tool and is not affiliated with, endorsed by, or sponsored by TikTok or ByteDance Ltd.. All product names, logos, and brands are property of their respective owners.

The actor collects only **publicly available** data — the same content any visitor can see without logging in. It never logs in, never bypasses access controls, and never touches private or protected content. You are responsible for how you use the data: if it contains personal data, follow GDPR, CCPA, and other applicable regulations, and respect the platform's terms.

***

### Resources {#resources}

- 📘 [Apify API documentation](https://docs.apify.com/api/v2) — run actors and fetch datasets programmatically.
- 🤖 [Apify MCP server](https://mcp.apify.com) — use this actor as a tool in Claude, ChatGPT, and Cursor.
- 📤 [Dataset export docs](https://docs.apify.com/platform/storage/dataset) — export to JSON, CSV, Excel, and XML.
- ⏰ [Scheduling actor runs](https://docs.apify.com/platform/schedules) — keep your data fresh automatically.
- 🔌 [Apify integrations](https://docs.apify.com/platform/integrations) — n8n, Zapier, Make, Slack, and more.
- 🏪 [myagizm store profile](https://apify.com/myagizm) — the full family of no-login scrapers.

***

## 中文说明 —— TikTok 话题标签抓取工具（V2）

**按话题标签抓取 TikTok 视频** —— 不需要登录、Cookie、开发者应用或 access token。填入一个或多个标签，每条视频返回文案、全部标签、播放、点赞、评论、分享、**收藏**、时长、封面、音乐名称与作者、**广告标记**，以及作者用户名、认证状态与**粉丝数** —— 无需二次抓取即可按达人体量筛选。适合趋势研究、达人挖掘与活动监控。

> **两分钟内免费拿到第一批数据** —— 填入内容、点击 Start 即可。无需配置，试用不需要信用卡。

### 能做什么

- \#️⃣ **按标签抓取视频**，一次可多个标签。
- 📊 **完整指标** —— 播放、点赞、评论、分享、收藏。
- 👤 **含作者数据** —— 用户名、显示名、认证状态、**粉丝数**。
- 🎯 **可按达人体量二次筛选**（`authorFollowers`），不必再跑资料抓取。
- 📢 **识别广告**（`isAd`），区分自然内容与商业内容。
- 🎵 **每条视频的音乐信息**，及早发现热门音频。
- ⏱️ **时长**，研究细分领域适合的长度。
- 🏷️ **每行带来源 `hashtag`**。
- 🚚 **托管交付**，结果稳定。
- 📤 **导出** JSON / CSV / Excel / XML。

无需 OAuth 应用、无需应用审核、无需配额管理 —— 填入内容即可采集公开数据。

### 谁在用

- 🔍 **趋势研究** —— 跟踪哪些标签与音频在加速。
- 🤝 **达人挖掘** —— 按粉丝数筛出细分领域的中腰部创作者。
- 📣 **活动运营** —— 监控品牌标签并收集 UGC。
- 🛒 **电商与选品** —— 在品类饱和前发现上升产品。
- 📊 **市场研究** —— 构建标签数据集衡量注意力变化。

### 可以抓取哪些数据

| 字段 | 类型 | 说明 |
|------|------|------|
| `hashtag` | string | 该视频来自哪个标签 |
| `id` | string | 视频 ID |
| `url` | string | 视频链接 |
| `text` | string | 文案 |
| `hashtags` | array | 文案中的全部标签 |
| `plays` | number | 播放量 |
| `likes` | number | 点赞数 |
| `comments` | number | 评论数 |
| `shares` | number | 分享数 |
| `saves` | number | 收藏数 |
| `duration` | number | 时长（秒） |
| `coverUrl` | string | 封面图 |
| `musicTitle` | string | 音乐名称 |
| `musicAuthor` | string | 音乐作者 |
| `author` | string | 作者用户名 |
| `authorName` | string | 作者显示名 |
| `authorId` | string | 作者数字 ID |
| `authorVerified` | boolean | 作者是否认证 |
| `authorFollowers` | number | 作者粉丝数 —— 无需二次抓取即可按体量筛选 |
| `isAd` | boolean | 是否被平台标记为广告 / 商业内容 |
| `createdAt` | string | 发布时间（ISO） |
| `createdAtEpoch` | number | 发布时间（Unix） |

> 字段取决于平台对外公开了什么。某个条目没有的值会返回 `null` 而不是直接省略，因此你的数据结构始终稳定。

### 使用步骤

1. 打开 [TikTok 话题标签抓取工具](https://apify.com/myagizm/tiktok-hashtag-scraper-v2)。
2. 在 *Hashtags* 填入标签（`#` 可省略）。
3. （可选）设置 **Max videos per hashtag**。
4. 点击 **▶ Start** 并导出数据。

### 输入示例

```json
{
  "hashtags": [
    "cooking",
    "fitness"
  ],
  "resultsLimit": 500
}
```

### 输出示例

```json
{
  "id": "7125823187908070661",
  "url": "https://www.tiktok.com/@simplefood4you/video/7125823187908070661",
  "isAd": false,
  "text": "I LOVE GARLIC 🙊🧄 #garlic #recipe #cooking #foodie #foodtiktok #food #foryou #fyp",
  "likes": 1500000,
  "plays": 23500000,
  "saves": 421400,
  "author": "simplefood4you",
  "shares": 63100,
  "hashtag": "cooking",
  "authorId": "309523380800585729",
  "comments": 6660,
  "coverUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-p-0068/d6b067679b524a399bb8e68f345882b6_1659110004~tplv-tiktokx-origin.image?dr=10395&x-expires=1785394800&x-signature=VuuReNgzNdhwUUITTX9F25NxQ2Q%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a",
  "duration": 20,
  "hashtags": [
    "garlic",
    "Recipe",
    "cooking",
    "Foodie",
    "foodtiktok",
    "food",
    "foryou",
    "fyp"
  ],
  "createdAt": "2022-07-29T15:53:22.000Z",
  "authorName": "simplefood4you",
  "musicTitle": "Could You Be Loved",
  "sourceType": "tiktok",
  "musicAuthor": "Bob Marley & The Wailers",
  "authorVerified": true,
  "createdAtEpoch": 1659110002,
  "authorFollowers": 2500000
}
```

> **V2 = 托管交付。** 这是 V2 产品线：运行在托管基础设施上，交付更稳定、字段更全。如果你只需要最低价的尽力而为版本，同一功能的 V1 Actor 也在[商店主页](https://apify.com/myagizm)。

### 价格

采用**按结果计费**：只为真正拿到的数据付费，不按运行时间计费。

- 💸 成本 = 结果数量 × 单价，预算可提前算清。
- 📉 Apify 的 Bronze / Silver / Gold / Platinum / Diamond 套餐享阶梯折扣。
- 🆓 新账号自带每月免费额度，第一次运行不花钱。
- 🚫 无代理附加费、无单次请求费、无最低消费。

实时价格见 [Apify 商店页面](https://apify.com/myagizm/tiktok-hashtag-scraper-v2)。

### 使用建议

- 🎯 用 `authorFollowers` 筛出预算内的达人，10 万以下通常最好谈。
- 📢 想看自然流量时请排除 `isAd: true`。
- 🎵 按 `musicTitle` 分组，找出当前带动该标签的音频。
- 💾 按 `saves` 排序而不是点赞，能找到真正有用的内容。
- 🏷️ 一次跑多个相关标签，比较中位播放量，找竞争最小的那个。

### 其他 TikTok 数据

- 👤 **[TikTok 账号资料抓取工具](https://apify.com/myagizm/tiktok-profile-scraper-v2)** —— 批量获取粉丝数、关注数、获赞总数、视频数、简介、地区与认证状态。
- 🎬 **[TikTok 视频抓取工具](https://apify.com/myagizm/tiktok-video-scraper-v2)** —— 抓取视频的播放、点赞、评论、分享、收藏、时长与音乐信息。
- 💬 **[TikTok 评论抓取工具](https://apify.com/myagizm/tiktok-comments-scraper-v2)** —— 抓取评论的作者、点赞数、回复数与置顶标记。
- ⬇️ **[TikTok 视频下载工具](https://apify.com/myagizm/tiktok-video-downloader-v2)** —— 获取无水印 MP4 与音频下载链接。

需要多平台数据？以下工具采用同样的免登录、按结果计费方式：

- 🎵 **[TikTok 账号抓取](https://apify.com/myagizm/tiktok-profile-scraper-v2)** · **[TikTok 视频抓取](https://apify.com/myagizm/tiktok-video-scraper-v2)** · **[TikTok 话题抓取](https://apify.com/myagizm/tiktok-hashtag-scraper-v2)** · **[TikTok 评论抓取](https://apify.com/myagizm/tiktok-comments-scraper-v2)**
- 🐦 **[X（推特）推文抓取](https://apify.com/myagizm/x-tweets-scraper)** · **[X 账号资料抓取](https://apify.com/myagizm/x-profile-scraper)** · **[X 热门趋势抓取](https://apify.com/myagizm/x-trends-scraper)**
- 👔 **[LinkedIn 个人资料抓取](https://apify.com/myagizm/linkedin-profile-scraper)** · **[LinkedIn 公司抓取](https://apify.com/myagizm/linkedin-company-scraper)** · **[LinkedIn 职位抓取](https://apify.com/myagizm/linkedin-jobs-scraper)**
- 🤖 **[Reddit 抓取](https://apify.com/myagizm/reddit-scraper-v2)** · **[Reddit 搜索抓取](https://apify.com/myagizm/reddit-search-scraper-v2)** · **[子版块抓取](https://apify.com/myagizm/reddit-subreddit-scraper-v2)**
- ▶️ **[YouTube 频道抓取](https://apify.com/myagizm/youtube-channel-scraper)** · **[YouTube 评论抓取](https://apify.com/myagizm/youtube-comment-scraper)** · **[YouTube 字幕抓取](https://apify.com/myagizm/youtube-transcript-scraper)**
- 🗺️ **[Google 地图抓取](https://apify.com/myagizm/google-maps-scraper)** · **[Google 新闻抓取](https://apify.com/myagizm/google-news-scraper)**

全部工具见 **[myagizm 商店主页](https://apify.com/myagizm)**。

### 配合 AI 智能体使用（MCP）

本 Actor 已接入 **Apify MCP 服务器**，Claude、ChatGPT、Cursor 等助手可以把它当作工具直接调用，用自然语言提问即可拿到结构化结果，无需写胶水代码。

### 集成与 API

支持 **Make、Zapier、n8n、Slack、Airbyte、Gumloop、CrewAI、IFTTT、Lindy、GitHub、Google Sheets、Google Drive**，以及 Webhook、定时任务与 MCP 服务器。

```bash
curl -X POST "https://api.apify.com/v2/acts/myagizm~tiktok-hashtag-scraper-v2/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hashtags": ["cooking", "fitness"], "resultsLimit": 500}'
```

把 `format` 改成 `json`、`csv`、`xlsx` 或 `xml` 即可导出不同格式。

### 常见问题

**能一次抓多个标签吗？**
可以，每行都带 `hashtag` 字段。

**为什么有些标签结果很少？**
冷门标签公开视频本就少，平台也会限制部分标签。

**能在运行时按粉丝数筛选吗？**
运行内不筛，但每行都含 `authorFollowers`，导出后即可立即过滤，无需再付一次资料抓取的钱。

**包含广告内容吗？**
包含，`isAd` 会标出商业内容，方便你保留或排除。

**需要 TikTok 账号、登录、Cookie 或 API Key 吗？**
不需要。不登录、不用 Cookie、不需要开发者应用、不需要审核、不需要 access token。

**抓取 TikTok 合法吗？**
只采集公开可见的数据，即任何未登录访客都能看到的内容，不登录、不访问私密账号。合规责任由使用者承担：如涉及个人数据请遵守 GDPR / CCPA 与平台条款。

**能抓私密账号吗？**
不能，会被跳过并记录在运行日志中。

**需要配置代理吗？**
不需要，已内置托管。

**支持导出 CSV / Excel / JSON 吗？**
支持 JSON、CSV、Excel、XML。

**可以通过 Apify API 调用吗？**
可以，同步与异步接口见上方示例。

**支持 AI 智能体（MCP）吗？**
支持，Claude、ChatGPT、Cursor 均可当作工具调用。

**可以定时运行吗？**
可以，支持 Apify Schedules、API 与 Webhook。

**数据有多新？**
不缓存，每次运行都读取当前公开页面。

**媒体链接失效了？**
TikTok 的 CDN 链接带签名，数小时内过期，请在抓取的同一时段下载或转存。

### 免责声明

本工具为独立第三方工具，与 TikTok 及字节跳动（ByteDance） 无任何隶属、认可或赞助关系，所有商标归各自所有者。

本 Actor 只采集**公开可见**的数据 —— 即任何未登录访客都能看到的内容。它不登录、不绕过访问控制、不获取私密内容。数据使用的合规责任由使用者承担：如涉及个人数据，请遵守 GDPR、CCPA 等法规与平台条款。

### 相关搜索

tiktok 标签抓取 · 抓取 tiktok 标签 · tiktok 标签研究 · tiktok 热门标签 · tiktok 趋势研究工具 · tiktok 达人挖掘 · tiktok ugc 收集 · tiktok 活动监控 · tiktok 标签数据导出 · tiktok 标签 api 替代 · 免登录抓取 tiktok 标签 · tiktok 热门音频 · tiktok 细分领域研究

# Actor input Schema

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

Hashtags to scrape, with or without the leading #.

## `resultsLimit` (type: `integer`):

Hard cap on how many results this run returns. A run lasts at most ~10 minutes.

## Actor input object example

```json
{
  "hashtags": [
    "funny",
    "food"
  ],
  "resultsLimit": 50
}
```

# Actor output Schema

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

All scraped results as structured JSON.

# 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 = {
    "hashtags": [
        "funny",
        "food"
    ],
    "resultsLimit": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("myagizm/tiktok-hashtag-scraper-v2").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 = {
    "hashtags": [
        "funny",
        "food",
    ],
    "resultsLimit": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("myagizm/tiktok-hashtag-scraper-v2").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 '{
  "hashtags": [
    "funny",
    "food"
  ],
  "resultsLimit": 50
}' |
apify call myagizm/tiktok-hashtag-scraper-v2 --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Hashtag Scraper V2",
        "description": "Scrape TikTok hashtag feeds with guaranteed delivery. Returns video URL, description, plays, likes, comments, shares, saves, duration, author and music for every video under a hashtag. Deep pagination, no login.",
        "version": "0.1",
        "x-build-id": "8gvEvYeuMTemdJKWU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/myagizm~tiktok-hashtag-scraper-v2/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-myagizm-tiktok-hashtag-scraper-v2",
                "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/myagizm~tiktok-hashtag-scraper-v2/runs": {
            "post": {
                "operationId": "runs-sync-myagizm-tiktok-hashtag-scraper-v2",
                "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/myagizm~tiktok-hashtag-scraper-v2/run-sync": {
            "post": {
                "operationId": "run-sync-myagizm-tiktok-hashtag-scraper-v2",
                "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": {
                    "hashtags": {
                        "title": "Hashtags",
                        "type": "array",
                        "description": "Hashtags to scrape, with or without the leading #.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "resultsLimit": {
                        "title": "Max videos per hashtag",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on how many results this run returns. A run lasts at most ~10 minutes.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
