Tiktok Keyword Search Scraper
Pricing
from $1.60 / 1,000 search rresults
Tiktok Keyword Search Scraper
TikTok Keyword Search Scraper extracts TikTok videos from keyword-based search results, including rank, captions, creators, stats, and URLs. Use it for market research, trend tracking, competitor monitoring, SEO-style analysis, and AI workflows.
Pricing
from $1.60 / 1,000 search rresults
Rating
0.0
(0)
Developer
Delowar Munna
Actor stats
0
Bookmarked
4
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Share
Search TikTok videos by keyword with ranking context, filters, creator data, and structured export-ready results.

What does this actor do?
TikTok Keyword Search Scraper is an Apify Actor that searches TikTok for videos by keyword and exports structured search results with rich metadata. It is designed for content research, competitor monitoring, trend spotting, influencer discovery, SEO/content ideation, and AI/LLM workflows.
For each keyword, the actor:
- Searches TikTok and extracts video results (up to ~150 per keyword)
- Preserves search rank, page number, and position context
- Returns structured records with video, creator, engagement, and music data
- Supports multi-keyword batch mode with cross-keyword deduplication
Why use this actor?
- Keyword-focused — cleaner and simpler than all-in-one TikTok scrapers
- Search ranking context — every result includes rank, page number, and position
- Multi-keyword batch mode — search multiple keywords in a single run with per-keyword traceability
- Rich metadata — video details, creator summary, engagement stats, music info, and parsed hashtags
- Flexible output — toggle creator, music, engagement, and hashtag fields on/off
- Deduplication — optionally deduplicate when the same video appears across multiple keywords
- Export-ready — structured output for CSV, JSON, Excel, API, and AI pipelines
- Part of a suite — pairs with TikTok Trend & Discovery Scraper, TikTok Profile Scraper, and TikTok Comment Scraper
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string[] | — | One or more TikTok search keywords (required) |
maxItemsPerKeyword | integer | 50 | Maximum results to collect per keyword (1–500) |
sort | string | "relevance" | Sort order: relevance, latest, mostLiked |
region | string | "" | Two-letter country code for region targeting (e.g. US, AU, GB) |
datePosted | string | "any" | Date filter: any, last24Hours, last7Days, last30Days, last90Days |
includeCaption | boolean | true | Include video caption in output |
includeHashtags | boolean | true | Include parsed hashtags and mentions |
includeCreator | boolean | true | Include creator/author fields |
includeMusic | boolean | true | Include music/sound fields |
includeEngagement | boolean | true | Include engagement metrics |
deduplicateAcrossKeywords | boolean | false | Remove duplicate videos across keywords |
debugMode | boolean | false | Enable verbose logging |
proxyConfiguration | object | — | Apify proxy configuration (residential recommended) |
Example input: Basic keyword search
{"keywords": ["tesla"],"maxItemsPerKeyword": 50}
Example input: Multi-keyword research batch
{"keywords": ["ai tools", "chatgpt prompts", "automation apps"],"maxItemsPerKeyword": 100,"sort": "relevance","region": "US","datePosted": "last30Days","deduplicateAcrossKeywords": true,"includeMusic": false}
Example input: Regional trending content
{"keywords": ["canberra cafe", "sydney brunch"],"maxItemsPerKeyword": 30,"region": "AU","sort": "latest","includeCreator": true,"includeEngagement": true}
Output
The actor outputs one record per search result video. Results are available in four dataset views:
- Search Results — keyword, rank, video URL, caption, engagement, and creator summary
- Creators — creator-focused view with follower counts and profile links
- Engagement — engagement metrics focused view
- Full Data — all fields including media, music, system metadata

Search Results view
{"keyword": "tesla","searchRank": 1,"pageNumber": 1,"videoId": "7615705845640318221","videoUrl": "https://www.tiktok.com/@tesla.flex/video/7615705845640318221","caption": "The base Tesla Model 3 is actually good?! #tesla #model3 #teslatok #evsoftiktok #teslamodel3 ","createTimeISO": "2026-03-10T19:09:00.000Z","duration": 60,"views": 14800,"likes": 520,"comments": 20,"shares": 26,"authorUniqueId": "tesla.flex","authorVerified": false,"sort": "relevance","region": "","scrapedAt": "2026-03-16T07:47:49.912Z"}
Creators view
{"keyword": "tesla","searchRank": 1,"videoId": "7615705845640318221","authorId": "6614876484773969926","authorUniqueId": "tesla.flex","authorNickname": "Brandon | Tesla Flex","authorUrl": "https://www.tiktok.com/@tesla.flex","authorVerified": false,"authorFollowerCount": 3000000,"authorFollowingCount": 593,"authorHeartCount": 159700000,"views": 14800,"likes": 520,"caption": "The base Tesla Model 3 is actually good?! #tesla #model3 #teslatok #evsoftiktok #teslamodel3 "}
Engagement view
{"keyword": "tesla","searchRank": 1,"videoId": "7615705845640318221","caption": "The base Tesla Model 3 is actually good?! #tesla #model3 #teslatok #evsoftiktok #teslamodel3 ","authorUniqueId": "tesla.flex","views": 14800,"likes": 520,"comments": 20,"shares": 26,"saves": 33,"engagementTotal": 599,"isAd": false,"isSponsored": false}
Full Data view
{"keyword": "tesla","normalizedKeyword": "tesla","searchType": "keyword_video_search","searchRank": 1,"pageNumber": 1,"resultIndexOnPage": 1,"sort": "relevance","region": "","dateFilter": "any","scrapedAt": "2026-03-16T07:47:49.912Z","runId": "bKcA8m72H7Iwwx9YD","videoId": "7615705845640318221","videoUrl": "https://www.tiktok.com/@tesla.flex/video/7615705845640318221","shareUrl": "https://www.tiktok.com/@tesla.flex/video/7615705845640318221","caption": "The base Tesla Model 3 is actually good?! #tesla #model3 #teslatok #evsoftiktok #teslamodel3 ","createTime": 1773169740,"createTimeISO": "2026-03-10T19:09:00.000Z","duration": 60,"views": 14800,"likes": 520,"comments": 20,"shares": 26,"saves": 33,"engagementTotal": 599,"authorId": "6614876484773969926","authorUniqueId": "tesla.flex","authorNickname": "Brandon | Tesla Flex","authorUrl": "https://www.tiktok.com/@tesla.flex","authorVerified": false,"authorAvatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ff1930f2d25bb38d219aa67e7d04d59b~tplv-tiktokx-cropcenter:1080:1080.jpeg?...","authorFollowerCount": 3000000,"authorFollowingCount": 593,"authorHeartCount": 159700000,"musicId": "7411930613424883713","musicTitle": "Like This (Lofi)","musicAuthorName": "ProdByDave","musicOriginal": false,"musicDuration": 240,"hashtags": ["tesla", "model3", "teslatok", "evsoftiktok", "teslamodel3"],"mentions": [],"isAd": false,"isSponsored": false,"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oUAjAfo3BBC0iA0ClwibDHEE2BJIFwUw5tIQYA~tplv-tiktokx-dmt-logom.image?...","dynamicCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oUAjAfo3BBC0iA0ClwibDHEE2BJIFwUw5tIQYA~tplv-tiktokx-origin.image?...","originCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oY46bG7WDIiEgw2uAfFESJRoFBf5pZDIEAgGEs~tplv-tiktokx-origin.image?...","videoWidth": 720,"videoHeight": 1280,"ratio": "720p","inputKeywordIndex": 0,"isDuplicateAcrossKeywords": false,"source": "tiktok_search","scrapeStatus": "ok"}
Output fields
Search context fields
| Field | Description |
|---|---|
keyword | The search keyword that produced this result |
normalizedKeyword | Lowercase, whitespace-normalized version of the keyword |
searchType | Always keyword_video_search |
searchRank | Overall position in search results for this keyword |
pageNumber | Which page this result came from |
resultIndexOnPage | Position within the page |
sort | Sort mode used (relevance/latest/mostLiked) |
region | Region code used for search |
dateFilter | Date filter applied |
scrapedAt | ISO 8601 timestamp of extraction |
runId | Actor run ID for batch traceability |
Video fields
| Field | Description |
|---|---|
videoId | TikTok video ID |
videoUrl | Full video URL |
shareUrl | Shareable video URL |
caption | Video caption/description |
createTime | Unix timestamp of video creation |
createTimeISO | ISO 8601 creation time |
duration | Duration in seconds |
Engagement fields (conditional)
| Field | Description |
|---|---|
views | Play/view count |
likes | Like count |
comments | Comment count |
shares | Share count |
saves | Save/collect count |
engagementTotal | Sum of likes + comments + shares + saves |
Creator fields (conditional)
| Field | Description |
|---|---|
authorId | Author user ID |
authorUniqueId | Author username |
authorNickname | Display name |
authorUrl | Profile URL |
authorVerified | Verified badge status |
authorAvatarUrl | Avatar image URL |
authorFollowerCount | Follower count (if available) |
authorFollowingCount | Following count (if available) |
authorHeartCount | Total hearts (if available) |
Music fields (conditional)
| Field | Description |
|---|---|
musicId | Music/sound ID |
musicTitle | Music title |
musicAuthorName | Music author |
musicOriginal | Whether the sound is original |
musicDuration | Music duration in seconds |
Content fields
| Field | Description |
|---|---|
hashtags | Parsed hashtags from caption |
mentions | Parsed @mentions from caption |
isAd | Whether the video is an ad |
isSponsored | Whether the video is sponsored |
Media fields
| Field | Description |
|---|---|
coverUrl | Video cover image URL |
dynamicCoverUrl | Animated cover URL |
originCoverUrl | Original cover URL |
videoWidth | Video width in pixels |
videoHeight | Video height in pixels |
ratio | Video aspect ratio |
System fields
| Field | Description |
|---|---|
inputKeywordIndex | Index of the keyword in the input array |
isDuplicateAcrossKeywords | Whether this video appeared under a previous keyword |
source | Always tiktok_search |
scrapeStatus | ok or error status |
Use cases
- Topic research — find top TikTok videos for any topic or keyword
- Trend monitoring — track keyword-based content trends over time with scheduled runs
- Creator discovery — identify creators ranking for target queries
- Competitor tracking — monitor what content appears for competitive keywords
- Keyword landscape analysis — compare search results across regions and sort modes
- AI dataset generation — build structured datasets for clustering, summarization, and analysis
- Content ideation — discover what types of content perform for a topic before creating
Tips and best practices
- Start small — use
maxItemsPerKeyword: 10–20for initial exploration - Use
searchRankfor analysis — compare how videos rank across keywords and regions - Enable deduplication — set
deduplicateAcrossKeywords: truewhen searching related keywords - Toggle fields off — set
includeCreator: falseorincludeMusic: falseto reduce output size - Schedule for monitoring — run on a schedule to track keyword trends over time
- Use
normalizedKeyword— consistent lowercase version for grouping across runs
Proxy configuration
Residential proxies are recommended for reliable TikTok scraping.
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Integrations
- Google Sheets — export search results to spreadsheets for team dashboards
- Slack/email — set up notifications when new results are found
- Webhooks — trigger downstream workflows when a run completes
- API — access results programmatically via the Apify API
- Other actors — feed discovered creators into TikTok Profile Scraper, or video URLs into TikTok Comment Scraper
FAQ
How many results can I get per keyword? TikTok's search API currently returns up to ~150 results per keyword per request. The actual number depends on how many results TikTok has for that query.
Why are some fields null?
Fields like saves, authorFollowerCount, and musicDuration depend on what TikTok includes in its search data. They are extracted on a best-effort basis.
What does isDuplicateAcrossKeywords mean?
When the same video appears in results for multiple keywords, this field is set to true for subsequent appearances. With deduplicateAcrossKeywords: true, duplicates are removed entirely.
How does region targeting work? Region is set via cookies as a best-effort hint. For true region-specific results, use a proxy from that region.
Can I scrape hashtag pages or specific videos? This actor is focused on keyword search. For hashtag/trend discovery, use TikTok Trend & Discovery Scraper. For specific videos, use TikTok Video Scraper.