TikTok Search Scraper: Keyword Videos by Region, No Login avatar

TikTok Search Scraper: Keyword Videos by Region, No Login

Pricing

from $0.20 / 1,000 videos

Go to Apify Store
TikTok Search Scraper: Keyword Videos by Region, No Login

TikTok Search Scraper: Keyword Videos by Region, No Login

Scrape TikTok search results by keyword. One row per video with views, likes, comments, shares, creator stats, music and hashtags. Real country and language targeting, server-side sort and date filters. No login, no cookies, no API key. Pay per result.

Pricing

from $0.20 / 1,000 videos

Rating

0.0

(0)

Developer

Stan Van Rooy

Stan Van Rooy

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

2

Monthly active users

10 hours ago

Last modified

Share

TikTok Search Scraper: Keyword Video Search by Region, No Login ๐Ÿ”

The TikTok Search Scraper turns any keyword search into a clean dataset of TikTok videos: one row per video with caption, creator, play and like counts, music, hashtags and direct links. It runs with no login, no cookies and no third-party API key, and it lets you pick the country and language the search is run as, with server-side sort and date filters, just like the TikTok app.

Type a few keywords, pick a region, click Start, and download JSON, CSV or Excel, or pull the results straight from the Apify API.

๐Ÿš€ How to search TikTok by keyword

  1. Enter one or more keywords (one per line).
  2. Choose the region (US, UK, Germany, France, Japan and 30 more) and optionally the app language.
  3. Set how many videos you want per keyword and any sort or date filter.
  4. Click Start.

That is it. No TikTok account, no browser extension, no proxy setup on your side.

Per video

  • Video ID, canonical URL and share link
  • Caption text, detected language, hashtags and mentioned accounts
  • Publish time (ISO 8601 and Unix timestamp)
  • Play, like, comment, share, save and repost counts
  • Creator: handle, nickname, user ID, follower and following counts, total likes, verified flag, avatar
  • Music: sound ID, title, artist, original sound flag, audio URL
  • Duration, width, height, static and animated cover URLs, direct video URL
  • Photo posts: image URLs
  • Promoted flag and the country TikTok attributes the video to

Every row also carries the keyword it matched, its rank in the results, the region the search ran as and which sort or date slice surfaced it, so you can join and audit results in your own pipeline.

๐Ÿ“ฅ Input

FieldTypeNotes
keywordsarraySearch queries, one per line. Required.
regionstringCountry the search is run as. Default US. See supported regions below.
languagestringApp language code such as en, de, fr, ja. Default auto (the region's main language).
maxResultsintegerUnique videos per keyword. Default 100, 0 for everything TikTok will serve.
sortstringrelevance (default), likes (most liked) or newest. Applied server side.
publishedWithinstringall (default), day, week, month, 3months, 6months. Applied server side.
deepSearchbooleanDefault true. After the main results end, also runs the other sort orders and narrower date windows and merges the unique videos.
includeAdsbooleanDefault false. Keep videos TikTok marks as promoted.

๐Ÿ“ค Output

{
"video_id": "7629854397274639646",
"url": "https://www.tiktok.com/@heysweetkay/video/7629854397274639646",
"type": "video",
"desc": "I reposted a classic, sue me #packmystanley #StanleyCup #amazonfinds",
"create_time": "2026-04-17T22:12:13Z",
"create_timestamp": 1776463933,
"author": {
"id": "7069110241456604206",
"sec_uid": "MS4wLjABAAAA0foe...",
"unique_id": "heysweetkay",
"nickname": "heysweetkay",
"follower_count": 303277,
"following_count": 42,
"total_favorited": 0,
"video_count": 0,
"verified": false,
"avatar_url": "https://p16-common-sign.tiktokcdn-us.com/..."
},
"stats": {
"play_count": 4346471,
"digg_count": 186313,
"comment_count": 602,
"share_count": 10976,
"collect_count": 12586,
"repost_count": 0
},
"music": {
"id": "7629854463947836191",
"title": "original sound - heysweetkay",
"author": "heysweetkay",
"is_original": true,
"play_url": "https://v19.tiktokcdn-us.com/..."
},
"hashtags": ["packmystanley", "StanleyCup", "amazonfinds"],
"mentions": [],
"duration_ms": 66202,
"duration_s": 66.2,
"width": 720,
"height": 1280,
"cover_url": "https://p16-common-sign.tiktokcdn-us.com/...",
"dynamic_cover_url": "https://p16-common-sign.tiktokcdn-us.com/...",
"play_url": "https://v16m.tiktokcdn-us.com/...",
"download_url": null,
"image_urls": [],
"share_url": "https://www.tiktok.com/@heysweetkay/video/7629854397274639646?...",
"is_ad": false,
"language": "en",
"region": "US",
"search_region": "US",
"keyword": "stanley cup",
"rank": 1,
"matched_by": "relevance:all",
"platform": "tiktok"
}

Field descriptions

FieldDescription
video_id, url, share_urlTikTok video ID, canonical /@user/video/<id> URL and share link.
typevideo or photo (image slideshow post).
desc, language, hashtags, mentionsCaption, detected caption language, hashtags without #, mentioned account IDs.
create_time, create_timestampPublish time, ISO 8601 UTC and Unix seconds.
authorCreator profile: unique_id is the handle, sec_uid the stable public ID, plus follower, following, total likes and video counts, verified flag and avatar.
statsplay_count, digg_count (likes), comment_count, share_count, collect_count (saves), repost_count.
musicSound ID, title, artist, whether it is an original sound, audio URL.
duration_ms, duration_s, width, heightVideo length and dimensions.
cover_url, dynamic_cover_url, play_url, download_urlStatic cover, animated cover, direct MP4 (expires after a few hours), watermarked download link when TikTok exposes one.
image_urlsImage URLs for photo posts.
is_adTrue when TikTok marks the video as promoted (excluded by default).
regionCountry TikTok attributes the video to.
search_region, keyword, rank, matched_byWhich search produced the row: region, keyword, 1-based position and the sort:window slice (for example newest:month).

โœจ Why this TikTok search scraper

  • No login, no cookies, no API key. The scraper creates its own anonymous session for every run. You never hand over a TikTok account and there is no separate API subscription to buy.
  • Real region targeting. Most TikTok search scrapers return whatever the proxy IP happens to see. This one runs the search as the TikTok app configured for your chosen country and language, which is what TikTok actually uses to rank results. In my tests, berlin searched as Germany returned 36 of 40 videos from German creators with German captions, versus 21 of 40 for the US default.
  • Server-side filters. Sort by relevance, most liked or newest and restrict to the last day, week, month, 3 or 6 months, the same filters as the TikTok app. No client-side sorting of a random sample.
  • More results per keyword. TikTok caps one search session at roughly 200 videos. Deep search runs the other sort orders and date windows for the same keyword and merges the unique videos, typically 250 to 300 per keyword.
  • Rich rows. Full creator profile numbers, engagement counters, music and direct media URLs in every row.
  • Clean exports. JSON, CSV or Excel from the Apify Console, or fetch results from the Apify API.
  • Pay per result. From $0.25 per 1,000 videos, no monthly plan, volume discounts on higher plans.

๐Ÿ’ก Use cases

  • Trend and hashtag research: See which videos and creators rank for a topic in a given country right now.
  • Influencer discovery: Find creators who rank for your niche, with follower counts and engagement in the same row.
  • Competitor and brand monitoring: Track how often a brand or product appears in search and who is posting about it.
  • Content strategy: Mine captions, hashtags and sounds that perform for a keyword.
  • Datasets for analysis and AI: Build labeled video datasets per keyword and region for NLP, LLM or BI workflows.

๐Ÿ”Œ TikTok search API alternative: run it from code

Every Apify Actor is also an API. If you need TikTok search results inside your own app or notebook and do not want to apply for TikTok's official Research API, call this scraper with the Apify client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("stanvanrooy6/tiktok-search-scraper").call(run_input={
"keywords": ["stanley cup", "air fryer recipes"],
"region": "US",
"maxResults": 200,
"sort": "likes",
"publishedWithin": "month",
})
for video in client.dataset(run["defaultDatasetId"]).iterate_items():
print(video["stats"]["play_count"], video["url"])

The same works from JavaScript, cURL or any HTTP client. See the API tab above for ready-made snippets and the dataset endpoints.

๐ŸŒ Supported regions

US, GB, DE, FR, ES, IT, NL, BE, AT, CH, IE, PT, PL, SE, NO, DK, CA, MX, BR, AU, NZ, JP, KR, ID, PH, TH, VN, MY, SG, IN, AE, SA, TR, ZA, NG

The region and language are sent to TikTok the way the app sends them, so results are localized server side. Set language explicitly if you want, for example, English captions ranked for a German audience.

โš ๏ธ Limits and good to know

  • TikTok serves roughly 200 videos per search session to anonymous clients. Deep search (on by default) adds the other sort orders and narrower date windows, which brings a typical keyword to 250 to 300 unique videos. Very niche keywords return fewer.
  • TikTok returns partial matches for unusual queries, the same way the app does, so a nonsense keyword still returns videos.
  • Direct video and audio URLs are signed by TikTok and expire after a few hours. Download what you need right after the run.
  • Promoted videos are excluded by default. Set includeAds to keep them.
  • Transient network errors are retried automatically and a blocked anonymous session is replaced by a fresh one, so long runs keep going.

๐Ÿ’ฐ Pricing

This Actor uses pay per event, so there is no monthly subscription and you only pay for what you scrape.

  • Videos: $0.25 per 1,000 videos on the Free and Starter plans, $0.22 on Scale and $0.20 on Business and above.
  • Run start: $0.002 per GB of memory, under one cent for a default run.

Pulling 1,000 videos costs about $0.25, the same base rate as the cheapest keyword search scrapers on the Store and a fraction of the $3 to $4 per 1,000 charged by the big general TikTok scrapers, with region targeting and server-side filters those do not offer. New Apify accounts include monthly free usage credit, which is enough to try the scraper at no cost.

๐ŸŽฏ Example inputs

Top 100 videos for two keywords in the US:

{
"keywords": ["stanley cup", "air fryer recipes"],
"region": "US",
"maxResults": 100
}

Everything TikTok will serve for a keyword, as seen in Germany:

{
"keywords": ["rezepte"],
"region": "DE",
"maxResults": 0
}

Most liked videos from the last week, fastest run:

{
"keywords": ["taylor swift"],
"region": "US",
"sort": "likes",
"publishedWithin": "week",
"maxResults": 50,
"deepSearch": false
}

๐Ÿ†š How this compares to other TikTok search scrapers

This scraperTypical keyword search scrapersGeneral TikTok scrapers
Region targetingServer side, by country and app languageDepends on the proxy IP, often US onlyDepends on the proxy IP
Sort and date filtersApplied by TikTok before rankingClient-side sorting of the returned sample, if at allClient-side
Results per keyword250 to 300 with deep search200 to 400Varies
Login, cookies, API keyNoneNone or a third-party keyNone
Price per 1,000 videosFrom $0.25$0.25 to $0.70$3 to $4

โ“ FAQ

Do I need a TikTok account or login?

No. The scraper runs fully anonymous and cookie free. You never share credentials.

Do I need a third-party API key?

No. Everything runs inside the Actor. Some competing TikTok scrapers require you to bring a separate paid API key. This one does not.

Is there a free TikTok search scraper?

You can run this one for free within the monthly free usage credit that comes with every new Apify account. After that it is $0.25 per 1,000 videos (less on higher plans) with no subscription.

How many videos can I get per keyword?

Set maxResults to any number, or 0 for everything available. TikTok caps a search session at about 200 videos; with deep search a keyword typically returns 250 to 300 unique videos. See the limits section above.

Does region targeting really work?

Yes. The search is sent as the TikTok app configured for the chosen country and language, which TikTok uses for ranking. Compare the region and language fields of the rows across two runs to see the difference yourself.

What format can I export?

JSON, CSV and Excel from the Apify Console, or straight from the Apify API and dataset endpoints.

The scraper only collects publicly visible data that any anonymous app user can see, and it does not log in or bypass access controls. Rows contain creator handles and names, so handle the data in line with GDPR, CCPA and your own use case. If you are unsure, consult a lawyer.

Can you add a field, a filter or a mode I need?

Yes. Open an issue on the Issues tab and describe what you need. Hashtag feeds and sound feeds are on the roadmap.

๐Ÿค Feedback and feature requests

I actively maintain this Actor. Found a bug or need a field? Open an issue on the Issues tab.

All four share the same no-login engine and output conventions.

  • TikTok Shop Scraper: TikTok Shop reviews, star ratings and product data from any product URL, up to 25,000 reviews per product.
  • TikTok Comments Scraper: export every comment and reply thread from any TikTok video, no login.
  • TikTok Profile Scraper: follower counts, bio, links and the full post history of any TikTok user.

Typical workflow: find videos with the TikTok Search Scraper, pull the audience conversation with the TikTok Comments Scraper, profile the creators behind them with the TikTok Profile Scraper, and check what their TikTok Shop products are really rated with the TikTok Shop Scraper.