TikTok Scraper: Hashtag, Search & Trending Videos, No Login
Pricing
from $0.80 / 1,000 videos
TikTok Scraper: Hashtag, Search & Trending Videos, No Login
Scrape TikTok videos by hashtag, keyword search or trending feed: plays, likes, shares, saves, comments, caption, music and author followers. Free date filter, optional MP4 download and a views vs creator median score to spot viral videos. No login or cookies. Works via API and MCP.
Pricing
from $0.80 / 1,000 videos
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Scraper: Hashtag, Search and Trending Videos
Scrape public TikTok videos by hashtag, keyword search or the trending feed. Every video comes back as one flat row with plays, likes, shares, saves and comments, the caption and its hashtags, music, author followers and the exact posting time. Filter by how recently a video was posted at no extra charge, save the MP4 files, and see which videos beat the creator's usual reach. No login, no cookies and no TikTok API key.
At a glance
- Inputs: hashtags, search keywords, and the Explore (trending) feed across 21 categories
- Per video: plays, likes, shares, saves, comments, caption, hashtags, duration, cover, music, author followers and video count, ad and TikTok Shop flags, effects used
- Date filter included: keep only videos posted in the last N days, and pay only for what you keep
- Viral check: optional author median plays, so every video gets a "times above this creator's normal" score
- MP4 download: optional, saved to a link that opens anywhere without TikTok cookies
- Fair billing: pay per video delivered. Duplicates, videos outside your date window and blocked requests are never charged.
What does this TikTok scraper do?
You give it hashtags, search terms, or ask for the trending feed. It reads TikTok's own feeds the way the TikTok website does, from a US browser session, and returns one row per video until it reaches your maxItems for each input or the feed runs out. A video found by two inputs is returned once, credited to the first input that found it, and sourceType and sourceInput tell you which one surfaced it.
How do I scrape TikTok videos by hashtag?
Add hashtags to Hashtags, one per line, with or without the #. A tiktok.com/tag/... link works too. Set Max videos per input and, if you only want recent videos, Posted within the last N days.
{"hashtags": ["jewelrytok", "engagementring"],"maxItems": 60,"postedWithinDays": 14}
In our test on 26 Sep 2026, #jewelrytok, #labgrowndiamonds and #engagementring returned 60, 46 and 51 videos from the previous 14 days in one 81 second run, with plays, shares and saves filled on every row.
How do I scrape TikTok search results for a keyword?
Add terms to Search keywords exactly as you would type them into TikTok's search box, for example lab grown diamond ring. You get the videos TikTok's video search shows for that term. TikTok's web search ignores its own date and sort options, so the date filter is applied after the results come back, and you are only charged for the videos that pass it.
How do I get trending TikTok videos?
Turn on Trending videos and pick a category: All, Singing & Dancing, Comedy, Sports, Anime & Comics, Relationship, Shows, Lipsync, Daily Life, Beauty Care, Games, Society, Outfit, Cars, Food, Animals, Family, Drama, Fitness & Health, Education or Technology. Each run is a fresh draw from TikTok's Explore feed, so repeated runs return different videos.
How do I find TikTok videos that are going viral?
Big play counts alone mislead: a creator with 5 million followers gets a million plays on an average day. Turn on Author median plays and each video gets:
authorMedianPlays: the median play count of that creator's recent videosplaysVsAuthorMedian: this video's plays divided by that median
A playsVsAuthorMedian of 8 means the video did eight times the creator's normal reach, which is the real sign that a format, hook or sound is taking off. Sort by it to find breakout videos from small accounts that raw play counts would bury.
What data do I get for each TikTok video?
A real row, from a verified jewellery brand found through the #jewelry hashtag (the long video and cover links are shortened here):
{"id": "7612802409273806110","webVideoUrl": "https://www.tiktok.com/@traxnyc/video/7612802409273806110","createTime": 1772493706,"createTimeISO": "2026-03-02T23:21:46.000Z","text": "A Gold hand holding a giant diamond #diamonds #gold #jewelry #traxnyc ","textLanguage": "en","hashtags": ["diamonds", "gold", "jewelry", "traxnyc"],"playCount": 1600000,"diggCount": 154900,"shareCount": 985,"collectCount": 5196,"commentCount": 581,"durationSec": 17,"videoUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast8/tos...","coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-...","isSlideshow": false,"musicId": "7612802442572466974","musicTitle": "original sound","musicAuthor": "TraxNYC","musicOriginal": true,"authorUsername": "traxnyc","authorNickname": "TraxNYC","authorId": "6606429515621908486","authorFollowers": 3200000,"authorVideoCount": 1094,"authorVerified": true,"isAd": false,"isSponsored": false,"isECVideo": false,"effectStickers": ["HD Clarity"],"sourceType": "hashtag","sourceInput": "jewelry","scrapedAt": "2026-09-26T12:30:27.282Z"}
| Field | What it holds |
|---|---|
id, webVideoUrl | TikTok's video id and the public link |
createTime, createTimeISO | When the video was posted (unix seconds and ISO) |
text, hashtags, textLanguage | Caption, its hashtags, and the caption language |
playCount | Views |
diggCount | Likes |
shareCount | Shares |
collectCount | Saves (favourites) |
commentCount | Comments |
durationSec, isSlideshow | Length in seconds; whether it is a photo slideshow |
coverUrl | Cover image |
musicId, musicTitle, musicAuthor, musicOriginal | The sound, and whether it is the creator's original sound |
authorUsername, authorNickname, authorId, authorSecUid | Who posted it |
authorFollowers, authorVideoCount, authorVerified | The creator's audience size, output and verification |
isAd, isSponsored, isECVideo | Paid ad, branded or sponsored content, TikTok Shop video |
effectStickers | Effects and filters used in the video |
locationCreated, poiName, poiAddress, poiCity, poiCategory | Location tags, when the creator added one |
authorMedianPlays, authorMedianSample, playsVsAuthorMedian | With Author median plays on |
videoFileUrl, videoFileBytes | With Download videos on |
videoUrl, downloadAddr | TikTok's own video addresses (see the download question below) |
sourceType, sourceInput, scrapedAt | Which input found it, and when |
A run summary is saved to the key-value store record OUTPUT: for each input, videos requested, delivered, filtered out by date, duplicates and pages read, plus a blocked flag that is true only if TikTok refused every session for an input.
Can I download the TikTok videos as MP4 files?
Yes. Turn on Download videos and each MP4 is saved to the run's key-value store, with a public link in videoFileUrl that opens in any browser or editor without a TikTok login. TikTok's own videoUrl only plays with the cookies of the session that fetched it and expires within hours, which is why it is not useful on its own.
How much does it cost to scrape TikTok?
Everything is on the Pricing tab:
| Charge | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) and up |
|---|---|---|---|---|
| Per video delivered | $0.0028 | $0.0022 | $0.0015 | $0.0008 |
| Per MP4 downloaded | $0.002 | $0.002 | $0.002 | $0.002 |
| Per run started, default 2 GB memory | $0.005 | $0.005 | $0.005 | $0.005 |
The date filter and author median plays cost nothing extra. Compute and proxies are included.
What real jobs cost:
| Job | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
| 50 videos from one hashtag | $0.15 | $0.12 | $0.08 | $0.05 |
| 1,000 videos (10 hashtags, 100 each) | $2.81 | $2.21 | $1.51 | $0.81 |
| 100 videos with MP4 download | $0.49 | $0.43 | $0.36 | $0.29 |
Apify's free monthly credit covers about 1,700 videos.
Charged: each video delivered to your dataset, each MP4 that saved, and one start charge per run.
Never charged: videos outside your date window, duplicates found by several inputs, failed downloads, and anything TikTok refused to serve.
Can I filter TikTok videos by date?
Yes, with Posted within the last N days. It is included in the price, and filtered out videos are not charged. Note that TikTok's hashtag feed is not in date order, so the actor reads the whole feed until it has enough recent videos or the feed ends.
Why did a hashtag return fewer videos than I asked for?
TikTok's web hashtag feed only holds a few hundred videos (160 to 195 in our tests), mixed in age. With a strict date window, only the recent part counts. The OUTPUT record shows feed_items_seen and pages for each input, so you can see the feed was read to the end. Very broad tags such as #fyp return nothing on TikTok's web feed at all. Add search keywords alongside hashtags to widen coverage.
Which countries does it work from?
The United States. On 26 Sep 2026 TikTok refused its web video feeds to logged out visitors from the UK, Europe, Canada, Australia, Brazil, Japan and Mexico, so the actor browses from the US. The videos themselves can be from creators anywhere; searching in another language or for a local hashtag finds local content.
Do I need a TikTok account, cookies or an API key?
No. The actor reads public data the way the TikTok website shows it to a visitor who is not logged in. There is nothing of yours to connect, block or ban.
How do I use it from the API, Python or JavaScript?
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("themineworks/tiktok-hashtag-search-scraper").call(run_input={"hashtags": ["jewelrytok"],"maxItems": 50,"postedWithinDays": 14,})for video in client.dataset(run["defaultDatasetId"]).iterate_items():print(video["playCount"], video["webVideoUrl"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('themineworks/tiktok-hashtag-search-scraper').call({keywords: ['lab grown diamond ring'],maxItems: 40,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, 'videos');
It also runs on a schedule (for example every morning for your niche hashtags), and connects to n8n, Make, Zapier, Google Sheets and webhooks through Apify's integrations.
Can AI agents use it through MCP?
Yes. Add Apify's MCP server to Claude, ChatGPT, Cursor or any MCP client with this actor enabled:
https://mcp.apify.com/?tools=themineworks/tiktok-hashtag-search-scraper
Your agent can then ask for "the most saved #skincare videos from the last week" and reason over real numbers.
What is it used for?
- Trend and format research: find the hooks, sounds and formats taking off in your niche before they peak
- Content planning: see which videos in a hashtag earn saves and shares, not just views
- Influencer discovery: find creators whose videos beat their own average, with follower counts to size them
- Competitor and brand monitoring: track what gets posted under your brand, product or campaign hashtag
- Ad and TikTok Shop research: separate paid ads, sponsored content and Shop videos from organic posts
- Datasets for analysis and AI: clean, flat rows ready for spreadsheets, BI tools and LLM pipelines
Limitations
- Browses from the US only (see above).
- A hashtag feed holds a few hundred videos at most; #fyp and similar catch-all tags return none.
- Search returns what TikTok's search shows and ignores date or sort, so recent-only keyword runs can come back short.
- Private videos, deleted videos and anything behind a login are not reachable.
- TikTok changes its site often. If a feed stops answering, the run says so in
OUTPUTwithblocked: true, and nothing is charged for it.
Is it legal to scrape TikTok?
This actor collects only publicly visible video data and never logs in. In hiQ Labs v. LinkedIn a US federal appeals court found that accessing publicly available data is unlikely to breach the Computer Fraud and Abuse Act, but platform terms and privacy laws such as GDPR still apply to how you store and use personal data like usernames. Use the data responsibly and get advice for your own situation. This is not legal advice.
Need something else?
Open an issue on the Issues tab with the input that did not work or the field you need. Issues are read and answered.