TikTok Search by Keywords
Pricing
from $1.80 / 1,000 videos
TikTok Search by Keywords
Search public TikTok videos by keyword, hashtag, country and date range — or fetch specific videos directly from their URLs. Get views, likes, comments, shares, author stats, music and more as clean, structured data.
Pricing
from $1.80 / 1,000 videos
Rating
0.0
(0)
Developer
Lofomachines
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
6
Monthly active users
18 days ago
Last modified
Categories
Share
TikTok Search by Keywords — TikTok Scraper 🔍
Search TikTok videos by keyword or hashtag — or fetch specific videos directly from their URLs — and export them as clean, structured data. No login, no cookies, no TikTok account, and no official TikTok API access required.
Find every public TikTok video that mentions your brand, product, competitor, hashtag, sound, or any topic you care about — and turn it into a ready-to-use dataset in minutes. Already have the video links? Paste them in and get every video back with its complete metadata, fetched in parallel. Perfect for social listening, influencer marketing, trend research, brand monitoring, and content discovery.
Type a keyword. Pick a country. Get hundreds or thousands of matching TikTok videos with views, likes, comments, shares, creator stats, hashtags, sounds, cover images, and exact publication dates.
✨ Why use this TikTok Scraper?
- 🔎 Keyword & hashtag search — collect everything the search turns up for your terms, including videos that ride a trend without repeating its hashtag. One switch narrows it to captions that literally contain your keyword.
- 🔗 Direct URL mode — paste TikTok video URLs and fetch exactly those videos, in parallel, with all their metadata. No searching involved.
- 📦 Bulk keywords — search many keywords in a single run.
- 🌍 Country targeting — focus your search on any market (US, UK, Italy, Germany, France, India, Brazil, and 50+ more).
- 🗓️ Accurate date filtering — every video carries its exact publication time, and your date range is enforced against it.
- 🔬 Deep coverage on busy topics — search engines cap how many results one query can return, so viral keywords hide most of their videos. This actor detects a period that is holding back results and automatically re-searches it in narrower slices, down to single days.
- 📊 Rich engagement data — views, likes, comments, shares, plus follower counts and total likes for every creator.
- 🎵 Sound & hashtag metadata — track which sounds and tags drive a trend.
- 🖼️ Photo posts supported — TikTok slideshow posts are collected alongside regular videos.
- 🔐 No login, no cookies, no TikTok account — only publicly available data.
- ⚡ Fast & scalable — on paid Apify plans, large requests fan out into several searches running at the same time, so a big run finishes in a fraction of the wait.
- 🧹 Clean & deduplicated — one tidy row per video, ready for Excel, Google Sheets, BI tools, or your CRM.
🔓 Free plan limit
Runs started from an Apify free plan stop after 10 results and finish normally — you still get a complete, valid dataset, just a shorter one. The run log says so explicitly:
Upgrade to any Apify paid plan to remove the 10 result limit.
On any paid Apify plan the limit is gone and the actor collects up to the Max videos per keyword you set (up to 3,000 per keyword). Paid runs are also faster: from 100 videos per keyword the search fans out into 5 parallel searches, and above 1,000 into 10, so the bigger the request the more the waiting overlaps.
💳 What you pay for
You are charged per video stored, and nothing else — no charge for searching, for pages that turn out to be unusable, or for duplicates that get dropped. Two rates apply, depending on how you run it:
| Event | When it applies |
|---|---|
| Result | The default run: every video the search finds is stored. |
| Filtered result | With Only keep videos whose caption contains the keyword switched on: only videos whose own caption, hashtags, on-screen text or creator name mention your keyword are stored. |
Filtering means more pages have to be fetched and checked for each video that makes it into your dataset, so the two are priced separately. You can also cap what a run may cost before starting it — the actor stops cleanly at that limit and keeps everything collected up to that point.
💼 Who is it for?
| Role | What you can do |
|---|---|
| Marketing & social teams | Track brand mentions, campaigns, sounds, and hashtags. Measure organic reach and engagement. |
| Influencer marketing | Discover creators posting in your niche, ranked by real views, likes, and follower counts. |
| Market & competitive research | Monitor competitors, products, and trends as they emerge on TikTok. |
| PR & communications | Catch every mention of your company, executives, or events as they happen. |
| Trend & culture analysts | Spot rising sounds, formats, and topics before they peak. |
| Content creators | Research what actually performs in your space, backed by real engagement data. |
🚀 How to use this TikTok Scraper
Search by keyword or hashtag
- Add your keywords. Enter one or more keywords, hashtags, brand names, or phrases. You can paste many at once for bulk search.
- Choose a target country. Enter a two-letter country code (for example
us,it,gb,de,fr,in,br). - Set how many videos you want per keyword (from 10 up to 3,000).
- (Optional) Pick a date range. Leave it empty to automatically collect the most recent videos.
- Click Start ▶️ and watch your dataset fill up.
Fetch specific videos by URL
Already know which videos you want? Skip the search:
- Paste your video URLs into the Video URLs field, one per line:
https://www.tiktok.com/@username/video/1234567890123456789https://www.tiktok.com/@username/photo/1234567890123456789(photo slideshows)
- Click Start ▶️ — every video is fetched in parallel and returned with its complete metadata.
You can even combine both modes in a single run: the video URLs are fetched first, then the keyword search runs. Duplicates are removed automatically.
That's it — no technical setup, no proxies to configure, no scraping knowledge needed.
⚙️ Input
| Field | Description | Example |
|---|---|---|
| Keywords | Words, hashtags, or phrases to find in TikTok videos. One per line; bulk paste supported. A video is matched whenever the keyword appears in its caption, hashtags, on-screen text, or creator name — even when joined with other words or symbols (so gardening also matches #gardening and GardeningTips). Multi-word keywords match videos containing all the words, in any position. Wrap a keyword in "double quotes" to require an exact phrase instead. Optional if you provide video URLs. | gardening, #planttok, urban homestead |
| Video URLs (direct mode) | TikTok video URLs to fetch directly, one per line. Skips keyword search entirely. Invalid URLs are rejected before the run starts. | https://www.tiktok.com/@epicgardening/video/7307772740075916587 |
| Max videos per keyword | How many videos to collect for each keyword (10–3,000). Not applied to direct video URLs. | 100 |
| Only keep videos whose caption contains the keyword | Off by default: every video the search finds is kept. Turn it on for a smaller, stricter dataset. See below. | false |
| Target country | Two-letter country code of the market you want to target. Only used for keyword search. | us |
| Posted after (optional) | Only collect videos published on or after this date. | 2026-06-01 |
| Posted before (optional) | Only collect videos published on or before this date. | 2026-07-15 |
Provide keywords, video URLs, or both — at least one of the two is required.
Example input — keyword search
{"keywords": ["gardening", "#planttok"],"country": "us","maxVideosPerKeyword": 200,"publishedAfter": "2026-06-01","publishedBefore": "2026-07-15"}
Example input — direct video URLs
{"videoUrls": ["https://www.tiktok.com/@epicgardening/video/7307772740075916587","https://www.tiktok.com/@plantedinthegarden/video/7400779152841772294"]}
📤 Output
Each video becomes a single, clean record. Export the full dataset to JSON, CSV, Excel, XML, or HTML, or pull it via the API.
Data points you get
| Field | Description |
|---|---|
videoUrl | Direct link to the video |
videoId | Unique identifier of the video |
text | Full caption / description |
authorUsername | Creator's TikTok handle |
authorName | Creator's display name |
authorUrl | Link to the creator's profile |
authorBio | Creator's profile bio |
authorVerified | Whether the creator is verified |
authorAvatarUrl | Creator's profile picture |
authorFollowersCount | Creator's follower count |
authorFollowingCount | Accounts the creator follows |
authorLikesCount | Total likes across the creator's videos |
authorVideosCount | Number of videos the creator has published |
playCount | Views |
likesCount | Likes |
commentsCount | Comments |
sharesCount | Shares |
createdAt | Exact publication date & time (ISO 8601) |
durationSeconds | Video length in seconds |
videoWidth / videoHeight | Video resolution |
coverUrl | Thumbnail / cover image |
videoDownloadUrl | Direct MP4 link (TikTok-signed, expires shortly after the run) |
musicId / musicName / musicAuthor | The sound used in the video |
musicIsOriginal | Whether the sound is the creator's own |
hashtags | Hashtags used in the video |
mentions | Accounts mentioned in the caption, with links |
stickerText | On-screen text burned into the video |
isAd | Whether the video is marked as an ad |
isPhotoPost / images | Photo slideshow posts and their images |
locationCreated | Country the video was uploaded from |
searchKeyword | The keyword that matched this video (null for videos fetched directly by URL) |
searchCountry | The target country used |
scrapedAt | When the record was collected |
Example output
{"videoUrl": "https://www.tiktok.com/@epicgardening/video/7307772740075916587","videoId": "7307772740075916587","text": "We’re gardeners. 😂😂😂 #garden","authorUsername": "epicgardening","authorName": "Epic Gardening","authorUrl": "https://www.tiktok.com/@epicgardening","authorBio": "We exist to help you grow 🌱","authorVerified": true,"authorAvatarUrl": "https://p16-common-sign.tiktokcdn-eu.com/...","authorFollowersCount": 3300000,"authorFollowingCount": 780,"authorLikesCount": 83800000,"authorVideosCount": 1173,"playCount": 1700000,"likesCount": 222300,"commentsCount": 1465,"sharesCount": 6496,"createdAt": "2023-12-01T23:30:45.000Z","durationSeconds": 39,"videoWidth": 576,"videoHeight": 1024,"coverUrl": "https://p19-common-sign.tiktokcdn-eu.com/...","musicId": "7307772786406132522","musicName": "original sound","musicAuthor": "Epic Gardening","musicIsOriginal": true,"hashtags": ["garden"],"mentions": [],"stickerText": ["We’re Gardeners!"],"isAd": false,"isPhotoPost": false,"images": [],"locationCreated": "US","searchKeyword": "gardening","searchCountry": "us","scrapedAt": "2026-07-31T10:00:00.000Z"}
💡 Tips & best practices
- Be specific. Precise keywords, hashtags, and brand names return more relevant results than broad terms.
- Use bulk keywords to compare brands, products, or campaigns side by side in one run.
- Combine with a date range for time-bound analysis (campaign windows, event coverage, weekly monitoring).
- Match the country to your audience for the most relevant, localized results.
- Sort by
playCountorlikesCountto surface the best-performing content in your niche instantly. - Schedule recurring runs to monitor mentions automatically and build a historical archive over time.
🔗 Integrations & automation
Connect your results to the tools you already use:
- 📥 Export to CSV, Excel, JSON, XML, HTML
- 🔌 Access data through the Apify API
- 🔔 Trigger webhooks when a run finishes
- 🤝 Automate with Make, Zapier, n8n, Google Sheets, Slack, and more
- ⏰ Schedule runs hourly, daily, or weekly
❓ FAQ
Do I need a TikTok account, login, or cookies? No. This scraper works only with publicly available information and requires no credentials and no official TikTok API access.
Can I scrape specific videos instead of searching? Yes. Paste the video URLs into the Video URLs field and they are all fetched directly, in parallel, with the same complete metadata as search results. The URL format is validated before the run starts.
Are shortened links supported?
Not directly. vm.tiktok.com/… and tiktok.com/t/… links need to be opened in a browser first; copy the full tiktok.com/@username/video/… URL from the address bar.
How many videos can I collect? On any paid Apify plan, up to 3,000 videos per keyword, per run — run multiple keywords in a single run for even more coverage. On the Apify free plan, a run stops at 10 results in total and finishes successfully; upgrading to any paid plan removes that limit.
Why did my run stop at 10 results? That is the Apify free plan limit. The run is not an error — it completes successfully with the 10 results it collected, and the log shows "Upgrade to any Apify paid plan to remove the 10 result limit." Any paid Apify plan lifts it immediately, with no change to the input or the output format.
Which countries and languages are supported? 50+ markets across North & South America, Europe, the Middle East, Africa, Asia, and Oceania, each automatically localized.
What if I don't set a date range? The scraper automatically collects the most recent matching videos.
Are the dates accurate? Yes. Every record carries the video's exact publication timestamp taken from TikTok itself, and your date range is checked against it — not against a search engine's guess at a page's date.
I know there are far more videos on TikTok than I got back — how do I collect more? Raise Max videos per keyword. That number, not the search, is normally what ends a run: the actor keeps drilling into the busiest periods until it reaches your target. It also helps to give the search room to work — a wide Posted after / Posted before range covers more ground than a narrow one, and several related keywords (for example a brand name plus its main hashtags) reach corners of TikTok that a single term never does.
Will I get duplicates? No. Results are automatically deduplicated, so every video appears only once.
How is a video matched to my keyword? By default you get every video the search finds for your keyword. That deliberately includes videos whose own caption never repeats it — a clip riding a trend without tagging it, or a reaction to a moment everyone recognises. On a busy Italian TV keyword this roughly quadrupled the results for the same run: 1,249 videos instead of 318, of which 380 spelled the keyword out and 869 did not.
The wider net is a trade. Alongside genuinely on-topic clips it lets in some unrelated videos that merely shared a page with your keyword. Every record carries text, hashtags and stickerText, so you can always narrow the export afterwards — or tick Only keep videos whose caption contains the keyword to have the actor do it for you, keeping only rows where the keyword appears in the caption, hashtags, on-screen text or creator name, case- and accent-insensitively.
What happens with a keyword made of several words?
It finds videos that contain all of those words, wherever they appear — they don't have to be next to each other. Searching ammiraglio bergotto therefore still finds a video captioned "Ammiraglio di Squadra Giuseppe Berutti Bergotto". If you want a strict, word-for-word phrase, wrap the keyword in double quotes: "urban gardening". Note that an exact phrase returns nothing when the words never appear adjacently.
Does the video download link stay valid?
The videoDownloadUrl is signed by TikTok's CDN and expires a short while after the run, so download any files you need promptly.
⚖️ Legal & responsible use
This Actor collects only publicly available data and is intended for legitimate purposes such as research, analytics, monitoring, and marketing. You are responsible for ensuring your use complies with applicable laws and regulations (including data protection rules such as the GDPR) and with TikTok's terms. Do not use the data to harass individuals or for any unlawful purpose.
Ready to turn TikTok trends into actionable data?
Enter your keywords, pick a country, and click Start. 🚀