Tiktok Scraper avatar

Tiktok Scraper

Pricing

from $1.96 / 1,000 search results

Go to Apify Store
Tiktok Scraper

Tiktok Scraper

Search TikTok by keyword and export unique videos with creator profiles, engagement stats, music, hashtags and media URLs. Sort by relevance or likes, filter by date and region. Cross-keyword dedup, flat pay-per-result pricing, no login or cookies needed.

Pricing

from $1.96 / 1,000 search results

Rating

0.0

(0)

Developer

BatScrape

BatScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

TikTok Search Scraper: Keyword Search with Creator & Engagement Data ๐ŸŽต

Search TikTok by keyword and export unique videos as clean JSON: creator profiles, engagement stats, music metadata, and media URLs included, with transparent flat per-result pricing. No TikTok account, no login, no cookies required. Perfect for trend research, competitor and brand tracking, hashtag monitoring, influencer discovery, and building structured datasets of short-form video content.

๐Ÿ’ฐ Price: $0.0005 flat per run + $0.00199/video (no separate query fee) ๐ŸŒ Coverage: TikTok global keyword search โ€” English, emoji, brand names & keywords all work ๐Ÿ“Š Data: Video description, creator profile, engagement stats, music metadata, and signed media URLs ๐ŸŽฏ Filters: Sort (relevance / most liked), publish-time window, region ๐Ÿ›ก๏ธ Flat Per-Result Pricing

Quick Navigation

๐Ÿงญ What Does This Actor Do?

This actor searches TikTok by keyword and pushes results to your dataset as structured JSON โ€” no headless browser, no signing algorithm to maintain, no login wall to work around on your end. Give it one or more keywords and it queues exactly the searches needed, deduplicating across keywords and respecting your maxItems cap and pay-per-event budget as it goes.

๐Ÿ” Keyword Search โ€” search as many keywords as you like in one run (English, brand names, product terms, emoji), each searched independently.

๐ŸŽฏ Sort & Filter โ€” relevance or most-liked sort, a publish-time window, and a region setting, so you get exactly the slice of results you are after.

๐Ÿ‘ค Creator Data Included โ€” every result carries the posting creator's profile (username, nickname, follower count, verification status) at no extra charge โ€” no separate profile lookup needed.

๐ŸŽฌ Features and Functionality

FeatureDescriptionBenefit
๐Ÿ’ฐ Flat Per-Result PricingOne price per unique video delivered, no separate query feePredictable cost โ€” no surprise per-page or per-query charges
๐Ÿ” Multi-Keyword SearchSearch as many keywords as you like in one runBroad coverage from a single actor run
๐Ÿงน Cross-Keyword DedupA video surfaced by two different keywords is stored (and charged) onceNever pay twice for the same result
๐ŸŽฏ Sort & FilterRelevance or most-liked sort, publish-time window, regionNarrow results down without any extra cost
๐Ÿ‘ค Creator Data IncludedUsername, nickname, followers, verification on every resultNo separate profile lookup needed
๐Ÿ”ง Custom Map FunctionJavaScript function to reshape or enrich output on the flyShape results to match your exact requirements
๐Ÿ’ต Budget-AwareEvery result is checked against the run's charge budget before it is storedA run stops cleanly instead of overspending

๐Ÿ’ฐ Pricing: Transparent Event-Based Costs

Pay-per-event pricing โ€” no subscription, no hidden fees. A flat run fee, and one charge per unique video actually delivered.

Pricing Structure

EventPrice (USD)Charged For
๐Ÿš€ Actor Start$0.0005Once per run, regardless of input
๐Ÿ“Š Search Result$0.00199Each unique TikTok video actually delivered

How Pricing Works

Every run charges a flat $0.0005 Actor Start fee once, regardless of how many keywords or results you request, then $0.00199 per unique TikTok video actually stored in your dataset โ€” nothing else. A search that returns nothing costs nothing beyond the flat run fee, and the first 2 pages of results (~40 videos) per keyword are free of charge for paying users.

๐Ÿ’ต Real-World Pricing Examples

Use CaseConfigurationTotal CostBreakdown
Quick sample1 keyword, 10 results$0.0204$0.0005 + (10 ร— $0.00199)
Single keyword, default settings1 keyword, up to 100 results$0.1995$0.0005 + (100 ร— $0.00199)
Multi-keyword sweep5 keywords, up to 100 results each (~500 unique)$0.9955$0.0005 + (500 ร— $0.00199)
Large single-keyword pull1 keyword, up to 1,000 results$1.9905$0.0005 + (1,000 ร— $0.00199)

Result counts vary keyword to keyword โ€” a narrow or low-volume keyword simply returns fewer unique results (and costs less) than a popular one; the rows above are illustrative at the volumes shown.

๐ŸŒŸ Who Needs This?

  • ๐Ÿ“ˆ Social media marketers โ€” track trending TikTok content under any keyword or campaign term.
  • ๐Ÿท๏ธ Brands & competitors โ€” monitor how competitor keywords or branded hashtags perform across creators.
  • ๐ŸŽ“ Academic researchers โ€” build structured datasets of short-form video data for consumption pattern analysis.
  • ๐Ÿค Influencer agencies โ€” evaluate creator reach and engagement rates at scale before outreach.
  • ๐Ÿ“ฐ Journalists & analysts โ€” cover social media trends with verifiable, structured data.
  • ๐Ÿ›’ E-commerce teams โ€” surface product-related user-generated content for campaigns and social proof.

๐ŸŽต Input Parameters

FieldDescriptionDefault
keywordsSearch keywords (one per line). Each keyword is searched independently; results are deduplicated across keywords so you never pay twice for the same video. Required (at least one).โ€”
maxItemsMaximum number of videos to collect across all keywords combined. Range: 1โ€“10,000.100
sortTypeRELEVANCE (relevance) / MOST_LIKED (most liked).RELEVANCE
publishTimeALL / ONE_DAY / ONE_WEEK / ONE_MONTH / THREE_MONTHS / HALF_YEAR.ALL
regionISO 3166-1 alpha-2 country code to scope results (e.g. US, GB, DE).US
customMapFunction(object) => object applied to every item. Must not be used for filtering.(none)

๐Ÿ’ก Input Strategy Guide

Just want a quick sample? Set maxItems to 10โ€“20 and run a single keyword โ€” a cheap, fast check that the actor and your keyword return what you expect. The first 2 pages (~40 results) per keyword are free for paying users, so a small test costs only the $0.0005 run fee.

Tracking a trend or campaign term? Use sortType: MOST_LIKED to surface the highest-engagement content, or publishTime: ONE_WEEK with sortType: RELEVANCE to focus on recently posted videos relevant to your keyword.

Researching several brands or competitors in one run? List every keyword up front. Cross-keyword dedup means an overlapping result is never charged twice, so batching keywords into one run costs the same as running them separately, minus the duplicates.

Need region-specific content? Set region to the relevant ISO country code (e.g. GB for the UK, DE for Germany). The default is US.

๐Ÿ”Ž Example Requests

Search one keyword for travel content, sorted by most liked:

{
"keywords": ["travel"],
"sortType": "MOST_LIKED",
"maxItems": 100
}

Track a trend term's newest videos from the last week:

{
"keywords": ["summer fashion"],
"sortType": "RELEVANCE",
"publishTime": "ONE_WEEK",
"maxItems": 50
}

Sweep several brand keywords in one run (cross-keyword dedup applies automatically):

{
"keywords": ["nike", "adidas", "puma"],
"sortType": "MOST_LIKED",
"publishTime": "ONE_MONTH",
"region": "US",
"maxItems": 500
}

๐Ÿ“ฆ Output

One dataset item per unique TikTok video. A keyword that returns no matches simply contributes no items โ€” it is not stored as a placeholder row.

Example item (field values illustrative โ€” no real run output was captured; values are built from the output schema and field list):

{
"id": "7318492016453829893",
"url": "https://www.tiktok.com/@adventureseeker/video/7318492016453829893",
"description": "Best hidden beaches in Southeast Asia ๐ŸŒŠ #travel #beach #adventure",
"descriptionLanguage": "en",
"createTime": 1705420800,
"createDate": "2024-01-16",
"awemeType": 0,
"isAiGenerated": false,
"region": null,
"authorMeta": {
"id": "6841234567890123456",
"secUid": "MS4wLjABAAAAโ€ฆ",
"name": "adventureseeker",
"nickname": "Adventure Seeker",
"followerCount": 284500,
"followingCount": 312,
"heartCount": 0,
"videoCount": 0,
"verified": false,
"avatar": "https://p16-sign.tiktokcdn-us.com/โ€ฆ"
},
"videoMeta": {
"width": 1080,
"height": 1920,
"ratio": "540p",
"duration": 42,
"coverUrl": "https://p16-sign.tiktokcdn-us.com/โ€ฆ",
"dynamicCoverUrl": "https://p16-sign.tiktokcdn-us.com/โ€ฆ",
"playUrl": "https://v19-webapp.tiktok.com/โ€ฆ"
},
"statistics": {
"likeCount": 48200,
"commentCount": 1340,
"shareCount": 2870,
"playCount": 612000,
"collectCount": 5100
},
"musicMeta": {
"id": "6978234567890123456",
"title": "Summer Vibes",
"author": "ChillBeats",
"playUrl": "https://sf16-ies-music.tiktokcdn.com/โ€ฆ"
},
"hashtags": ["travel", "beach", "adventure"],
"searchKeyword": "travel",
"inputKeyword": "travel"
}

Non-obvious fields:

  • videoMeta.playUrl โ€” a CDN-signed URL that expires within approximately 24 hours. Fetch or download the video promptly after collecting results; the URL will not be valid indefinitely.
  • region โ€” scoped by the region input parameter, not the creator's country. This field is not reliably returned by the search endpoint and may be null.
  • authorMeta.heartCount / authorMeta.videoCount โ€” these fields may return 0 for all items via the search endpoint; they are not reliably populated in search responses.
  • authorMeta.name โ€” the creator's @username handle (used in the URL). authorMeta.nickname is the display name shown in the TikTok UI.
  • hashtags โ€” a flat array of hashtag strings (without the # prefix) extracted from the video's challenge list.
  • searchKeyword / inputKeyword โ€” the keyword that retrieved this video, stamped by the extractor for traceability.

See tests/schemas/video.schema.js for the validated shape.

๐Ÿงฉ Custom Map Function

A synchronous (object) => object function applied to every dataset item. Use it only to add or reshape fields:

(object) => {
return {
...object,
isViral: (object.statistics?.likeCount || 0) > 50000,
};
};

Rules enforced by the actor (a violation is logged and the function is ignored โ€” the run never crashes):

  • No filtering. Returning null, {} or a non-object falls back to the original item.
  • No date-based logic. Sources containing new Date, Date.now or 1970 are rejected.
  • Synchronous only. async / generator functions and returned Promises are rejected.

๐Ÿ”ง Troubleshooting

โ“ Getting Few or No Results?

  • โœ… Check maxItems โ€” the run stops once this cap is reached
  • โœ… Check the charge budget โ€” a run that cannot afford another result stops cleanly rather than erroring
  • โœ… Try a broader or more common keyword โ€” a very narrow keyword may simply have little content on TikTok
  • โœ… Confirm keywords is not empty โ€” at least one keyword is required
  • โœ… Check your publishTime setting โ€” a very narrow window combined with a niche keyword can return zero results

๐Ÿ’ฐ Unexpected Costs?

Remember: every run charges a flat $0.0005 Actor Start fee once, no matter what you ask for. Beyond that, cost is purely $0.00199 ร— unique videos delivered โ€” there is no separate per-keyword or per-page fee to budget for. The first 2 pages (~40 results) per keyword are free for paying users.

๐Ÿ’ก Want to Minimize Costs?

  • โœ… Set maxItems to only what you actually need
  • โœ… Use publishTime to narrow results to the relevant window โ€” fewer pages to paginate means faster runs
  • โœ… Batch related keywords into one run โ€” cross-keyword dedup means overlaps are never charged twice

โ” FAQ

Do I need a TikTok account or login to use this actor? No โ€” searches run through a backend service using only public data; no TikTok account, login, or cookies are required on your end.

Should I enter keywords with or without the # symbol? Enter keywords without # (e.g. travel, not #travel). The search endpoint treats them as plain text search terms.

Is creator data included in the price? Yes, at no extra charge โ€” every result includes the creator's profile (username, nickname, follower count, verification status).

Does this actor download videos? No โ€” it returns each video's metadata and a signed play URL, but does not download or store video files itself. The play URL expires within approximately 24 hours, so fetch the file promptly if you need it.

What is included at no extra charge for paying users? The first 2 pages of results (~40 videos) per keyword per run are free. You only start paying the $0.00199/video rate from the third page onward.

Can I extract data from a specific country's TikTok feed? Yes โ€” set the region field to an ISO 3166-1 alpha-2 country code (e.g. GB, DE, JP) to scope search results to that region.

๐Ÿ“ž Contact

Reach out to the maintainers directly for support.

  • โœ‰๏ธ Email: batscrape@gmail.com
  • ๐Ÿ’ฌ Discord: discord.com/invite/ZRANXwhWU
  • ๐Ÿฆ X (Twitter): x.com/batscrape
  • ๐Ÿ›’ Apify: apify.com/batscrape