TikTokHashtags & Sounds
TikTok Content Discovery Scraper
Discover public TikTok videos by exact hashtag/challenge or sound/music. Get one typed row per unique video with creator, engagement, music, hashtag, and timestamp fields, with bounded depth and clear empty or partial outcomes.
- users, last 30 days
- 1
- runs, last 30 days
- 7
- runs, all time
- 11
- users, all time
- 2
Live figures from Apify's public API, refreshed every hour.
TikTok Content Discovery Scraper specifications
| Platform | TikTok |
|---|---|
| Apify actor | data-slayer/tiktok-content-discovery |
| Price | from $1.00 per 1,000 results, plus $0.0025 per run start |
| Inputs | modetargetsmaxItemsmaxItemsPerTargetmaxRequeststimeBudgetSecs |
| Output | 15 documented fields per row |
| Export formats | JSON, CSV, Excel, XML, HTML |
| TikTok login or cookies | Not required |
| Integrations | Apify REST API, JavaScript and Python clients, n8n, Make, Zapier |
| Last updated | September 25, 2026 (version 0.1.2) |
Run it from code
Replace the example input with your own. You need an Apify API token, which you can create in your Apify account settings.
curl -X POST "https://api.apify.com/v2/acts/data-slayer~tiktok-content-discovery/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "hashtag",
"targets": [
"fyp"
]
}'{
"recordType": string,
"discoveryMode": string,
"query": string,
"source": object,
"videoId": string,
"description": string | null,
"createdAt": string | null,
"webVideoUrl": string | null,
"author": object,
"metrics": object,
"music": object,
"hashtags": array,
"video": object,
"isAd": boolean | null,
// + 1 more fields
}Input parameters
6 parameters you can set for each run.
| parameter | type | description |
|---|---|---|
moderequired | string | Discovery mode Which entity type to discover content for. "hashtag" resolves exact hashtag/challenge names; "sound" resolves exact numeric sound/music IDs. Each mode writes its own explicit row type. options: hashtag, sound default: hashtag |
targetsrequired | array | Hashtags or sound IDs Exact targets for the selected mode. In hashtag mode add hashtag names or tiktok.com/tag/... URLs (for example "fyp" or "#fyp"). In sound mode add numeric sound/music IDs or tiktok.com/music/... URLs. Duplicate targets are processed once. 1–20 targets. |
maxItems | integer | Maximum rows Hard cap on unique content rows written to the dataset across all targets. Duplicate videos are never charged. default: 1000 |
maxItemsPerTarget | integer | Maximum rows per target Hard cap on unique content rows collected for each individual hashtag or sound. Bounds content depth per entity. default: 100 |
maxRequests | integer | Maximum provider requests Hard cap on total upstream requests for the run. Leave empty to use a safe default derived from the number of targets and rows per target. |
timeBudgetSecs | integer | Time budget (seconds) Soft wall-clock budget for collection. The run stops safely and reports a partial outcome when the budget is reached. default: 300 |
Output fields
Each result is one row with these 15 fields, taken from the scraper's dataset schema.
| field | type | description |
|---|---|---|
recordType | string | hashtagContent for hashtag mode or soundContent for sound mode. |
discoveryMode | string | The requested mode: hashtag or sound. |
query | string | The exact normalized target this row was discovered for. |
source | object | The hashtag/challenge or sound/music entity the row was discovered through. |
videoId | string | Stable numeric TikTok video ID and dataset identity. |
description | string | null | Public video caption or description. |
createdAt | string | null | ISO 8601 publication time when available. |
webVideoUrl | string | null | Canonical public TikTok video URL when the creator handle is known. |
author | object | Creator |
metrics | object | Engagement metrics |
music | object | Music |
hashtags | array | Hashtags referenced by the video. |
video | object | Video media |
isAd | boolean | null | Is ad |
observedAt | string | Observed at |
Pricing
Pay-per-event pricing, billed through your Apify account. Where plan tiers are listed, paid Apify plans get a lower price per event.
| event | price | per 1,000, by Apify plan |
|---|---|---|
| Content row One unique public video successfully added to the default dataset for the requested hashtag/challenge or sound. Duplicate, empty, unavailable, invalid, or failed results are not charged as content rows. | $0.003 each |
|
| Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.0025 per run |
|
Questions
How much does TikTok Content Discovery Scraper cost?
TikTok Content Discovery Scraper uses pay-per-event pricing on Apify. The main charge is $0.003 per content row, which is $3.00 per 1,000. On higher Apify plans the price drops to $1.00 per 1,000. Each run also has a start fee of $0.0025.
Do I need to log in to TikTok or share cookies?
No. TikTok Content Discovery Scraper works without your TikTok login or cookies. You only need an Apify account to run it.
Can I use TikTok Content Discovery Scraper through an API?
Yes. Send a POST request to the Apify API with your input and read the results as JSON, or use Apify's official clients for JavaScript and Python. The code examples on this page are ready to copy.
What data does TikTok Content Discovery Scraper return?
Each result is a structured row. Its dataset schema lists 15 fields, including recordType, discoveryMode, query, source, and videoId.
What formats can I export?
Results are stored in an Apify dataset. You can read it through the API as JSON, or download it as CSV, Excel, XML or HTML.
More TikTok scrapers
All TikTok scrapersTikTok Comments Scraper
No Cookies
Extract comments from any TikTok video without login. Get comment text, like counts, reply threads, timestamps, language detection, pinned status, and full commenter profiles (nickname, username, avatar). No cookies, no authentication. JSON/CSV/Excel export.
- runs/30d
- 57
- users/30d
- 1
TikTokfrom $1.00 / 1K resultsTikTok Profile Scraper
No Cookies
Extract TikTok user profile data by username without login. Get follower/following counts, total likes, video count, bio, profile images, verification status, commerce indicators, bio links, language, and region data. No cookies, no authentication. JSON/CSV/Excel export.
- runs/30d
- 43
- users/30d
- 2
TikTokfrom $1.50 / 1K resultsTikTok Followers Scraper
No Cookies
Extract follower lists from any public TikTok account without login. Get usernames, nicknames, bios, avatars, follower/following counts, video counts, heart counts, verification status, and privacy settings. No cookies, no authentication. JSON/CSV/Excel export.
- runs/30d
- 32
- users/30d
- 0
TikTokfrom $1.50 / 1K resultsTikTok Popular Posts Scraper
No Cookies
Extract top-performing posts from any TikTok profile without login. Get video views, likes, comments, shares, hashtags, music info, author stats, video URLs, and thumbnails. Discover what content goes viral. No cookies, no authentication. JSON/CSV/Excel export.
- runs/30d
- 31
- users/30d
- 0
TikTokfrom $1.50 / 1K resultsTikTok Top Ads Research
Creative Center
Research curated, high-performing TikTok ads from Creative Center by country, 7/30/180-day window, ranking, industry, objective, and language. Export unique ad rows with optional detail enrichment. This Actor does not cover every running TikTok ad or the EU transparency archive.
- runs/30d
- 16
- users/30d
- 1
TikTokfrom $1.00 / 1K resultsTikTok Video Search Scraper
No Cookies
Search TikTok videos by keyword and extract metadata without login. Get video descriptions, duration, resolution, cover images, play URLs, download links, codec info, and file sizes. No cookies, no authentication. JSON/CSV/Excel export.
- runs/30d
- 11
- users/30d
- 2
TikTokfrom $1.50 / 1K results