Kwai Scraper - Videos, Creators, Hashtags & Search
Pricing
from $1.50 / 1,000 kwai video delivereds
Kwai Scraper - Videos, Creators, Hashtags & Search
Scrape Kwai videos from URLs, creator profiles, playlists, hashtags and keyword search, or find creators in a niche. Schedule it daily with onlyNewVideos to get only new videos. No login. From US$ 2 per 1,000 videos; failed items are free.
Pricing
from $1.50 / 1,000 kwai video delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
5
Monthly active users
a day ago
Last modified
Categories
Share
Kwai Scraper
Kwai Scraper exports public Kwai videos to JSON, CSV or Excel. Start from video URLs, a creator profile, a playlist, a hashtag or a keyword search, and get one row per video or, in Creators mode, one row per creator. With onlyNewVideos a scheduled run returns only the videos posted since the previous run. Each video has views, likes, comments, shares, caption, hashtags, duration, publish date, cover, a direct MP4 link, music and the creator's follower count. Kwai's audience is mostly in Brazil and Latin America, so this is mainly a tool for agencies, brands and analysts working in that market.
At a glance
| Free plan | Gold plan and above | |
|---|---|---|
Video from a profile, playlist, hashtag or search (resultado-entregue) | US$ 2.00 / 1,000 | US$ 1.50 / 1,000 |
Video opened from its URL (video-detalhe), from 2026-10-25 | US$ 6.00 / 1,000 | US$ 4.50 / 1,000 |
Creator row in Creators mode (perfil-completo), from 2026-10-25 | US$ 6.00 / 1,000 | US$ 4.50 / 1,000 |
- No monthly fee. Until 2026-10-25 every row costs US$ 2.00 per 1,000. From 2026-11-01, each run also has an Actor start event of US$ 0.005.
- Error rows (removed videos, missing profiles, empty searches) are free, and duplicates inside a run are removed before charging.
- Creator stats, music and MP4 links are included on every video row. A default run of 30 videos costs US$ 0.06.
Schedule it: daily only-new mode
Turn on onlyNewVideos, save the input as a Task and add a daily Schedule. Each run returns only the videos that were not delivered before for that profile, hashtag or keyword, so you pay for new videos only, and a day with nothing new charges no video row. Details in "Only new videos" below.
What you can do with it
- Vet a creator before a campaign: the whole upload history with views, likes, comments and shares per video, plus followers and total likes, so you can compute real engagement.
- Monitor a hashtag or a brand keyword: schedule a daily run with
onlyNewVideosand each run brings only the videos that were not there yesterday. - Find creators in a niche: set
resultTypetocreators, search a keyword or hashtag, and get one row per creator with followers, totals and their best matching video. - Filter a profile by topic: profile videos carry
videoCategory/videoSubcategory, Kwai's own labels such as Food / Cooking or Sports / Soccer. - Read what the videos say:
includeTranscriptadds the spoken words when Kwai has generated them (about half of the videos in our tests) and Kwai's genres.
Switching from another Kwai actor? Your existing input works
| Field you already send | What it does here |
|---|---|
urls, startUrls | Profiles, videos, playlists, hashtags and share links |
searchTerms, keyword, operation + input | Keyword search |
userId | A creator profile |
maxItems, maxItemsPerQuery | Limit per profile, hashtag, playlist or keyword; 0 means no limit |
includeComments, maxCommentsPerVideo, maxRepliesPerComment | Accepted; see "Comments" below |
Output keeps the usual names: id, caption, createTime, thumb, playUrl, authorMeta, viewCount, likeCount, commentCount, shareCount.
Input
Every field is optional. An empty input scrapes 30 videos from the public profile @cnnbrasil. What each kind of URL returns:
| You paste | You get |
|---|---|
https://www.kwai.com/@Futecem or @Futecem | The creator's videos, newest first, up to maxItems |
https://www.kwai.com/@Futecem/video/5214755523601622914 or the bare id | That one video |
https://k.kwai.com/p/YUGeCnxG (app share link, even inside the share message) | The video behind the link |
https://www.kwai.com/@user/playlist/<albumId> | The videos of that playlist |
https://www.kwai.com/topic/halloween or #halloween | Videos from the hashtag feed |
https://www.kwai.com/discover/makeup-tutorial | Keyword search for "makeup tutorial" |
Hashtags and keyword search in one run:
{"hashtags": ["#halloween", "asmr"],"searchTerms": ["Lamine Yamal", "makeup tutorial"],"maxItems": 50}
Only new videos
{ "urls": ["https://www.kwai.com/@Futecem"], "hashtags": ["halloween"], "maxItems": 100, "onlyNewVideos": true }
Save this as a daily Schedule. The first run delivers up to 100 videos per input and stores their ids in the Key-Value Store kwai-scraper-only-new-videos in your account, one record per input. Later runs return only the videos not delivered before. Profiles are listed newest first, so a daily check costs one or two requests; hashtags, keywords and playlists are ordered by relevance, so the first runs work through the existing feed and then only fresh videos arrive. A run with nothing new ends with an empty dataset and costs nothing. Delete the record or the store to start over. Video URLs are always returned, and the option is not used in Creators mode.
Creators mode
{ "resultType": "creators", "searchTerms": ["makeup tutorial"], "hashtags": ["halloween"], "maxItems": 50 }
Each keyword or hashtag returns up to maxItems distinct creators, deduplicated across inputs. Profile URLs in this mode return that creator's row directly, which works as a follower lookup for a list of accounts. A real row from 2026-10-02:
{"type": "creator","username": "Keke_lima9","url": "https://www.kwai.com/@Keke_lima9","verified": false,"followersCount": 303678,"likesCount": 3696482,"videosCount": 1121,"category": "maquiagem de beleza","matchedVideos": 1,"matchedViews": 253044,"avgViewsMatched": 253044,"topVideoUrl": "https://www.kwai.com/@Keke_lima9/video/5243747448626648762","lastMatchedVideoAt": "2024-04-04T11:18:32.523000Z","sources": ["search:makeup tutorial"]}
matchedVideos, matchedViews and avgViewsMatched count only the videos found by your keywords and hashtags, so they measure the creator inside your niche. Even English keywords mostly return Portuguese and Spanish creators, because that is Kwai's audience.
Output
One row per video. A real row from a profile run on 2026-09-15 (some URLs shortened):
{"type": "video","id": "5202089153773005371","url": "https://www.kwai.com/@Futecem/video/5202089153773005371","caption": "Garoto de 16 anos ganhou a Eurocopa enquanto fazia a lição de casa😳 #Futebol #LamineYamal","hashtags": ["Futebol", "LamineYamal"],"createTime": "2026-05-21T18:31:00.714000Z","viewCount": 4748,"likeCount": 245,"commentCount": 4,"shareCount": 58,"duration": 32,"thumb": "https://aws-br-pic.kwai.net/upic/2026/05/22/02/BMjAyNjA1MjIwMjMwMDhf...webp","playUrl": "https://aws-br-cdn.kwai.net/upic/2026/05/22/02/BMjAyNjA1MjIwMjMwMDhf...mp4","musicMeta": { "id": "13289717457", "artist": "Futecem" },"authorMeta": { "username": "Futecem", "verified": false, "followersCount": 406575, "likesCount": 12678398, "videosCount": 2124, "category": "futebol" },"source": "profile:@Futecem","errorCode": null,"scrapedAt": "2026-09-15T18:11:44.034217+00:00"}
Main fields
| Field | Description |
|---|---|
id | Kwai video id, as a string (larger than a JavaScript safe integer) |
caption, hashtags | Full caption and its hashtags without #, in order |
createTime / timestamp | Publish time in ISO 8601 UTC and in milliseconds |
viewCount, likeCount, commentCount, shareCount | Public counters at the moment of the run |
duration / durationMs, width / height | Length and resolution |
thumb / firstFrame / playUrl | Cover, first frame and direct MP4 link (signed, expires after some hours) |
isImagePost, isAiGenerated | Picture post without MP4; Kwai's AI-content flag when present |
musicMeta | Sound id, name, artist, audio URL and cover when Kwai provides them |
videoCategory / videoSubcategory | Kwai's category in English; only on profile videos |
transcript, genres | With includeTranscript; null when Kwai has no transcript |
authorMeta | Creator id, username, name, avatar, verified, followers, following, total likes, video count, category |
source | Input that produced the row, for example profile:@Futecem or search:asmr |
error / errorCode | Filled only on rows that could not be delivered (not charged) |
Error codes (never charged)
| errorCode | Meaning |
|---|---|
VIDEO_NOT_FOUND | Removed, private or never existed. Kwai shows a different recommended video in that case; the Actor checks the id and does not return the wrong one. |
PROFILE_NOT_FOUND | No Kwai account with that handle |
PLAYLIST_NOT_FOUND | The playlist does not exist or is empty |
NO_RESULTS | The keyword, hashtag or profile has no public videos |
INVALID_URL | The line is not a Kwai video, profile, playlist, hashtag or share link |
BLOCKED | Kwai blocked every retry for that page. Run again. |
NOT_REACHED | The run was close to its timeout; it stopped 45 s early and kept everything already delivered |
ITEM_UNREADABLE / UNEXPECTED | One video or one input could not be read; the rest of the run continues |
Comments
Kwai's website returns comments only to logged-in accounts. On 2026-10-08 we tried its two comment endpoints from five countries, datacenter and residential IPs, desktop and mobile browsers, on 99 videos: every answer was empty. We checked again on 2026-10-14 (Brazil, United States, Mexico and Indonesia, residential and datacenter, 13 videos with 1 to 167 comments) with the same result. With includeComments or maxCommentsPerVideo each video gets comments and commentsStatus (today LOGIN_REQUIRED); after 3 such videos the Actor stops asking. Comments add nothing to the price, and if Kwai opens them to visitors again the same input starts returning them.
Limitations
- Kwai decides how deep a list goes. Most profiles paginate to hundreds of videos, but for some accounts the web profile lists far fewer than the app (one account with 861 videos returned 11).
- Search leans toward Brazil. Portuguese and broad English keywords return hundreds of videos; long Spanish phrases may return a handful. Try a shorter keyword or the hashtag.
- No trending mode. Kwai's "Hot" tab is a search for the word "Hot" and the For You feed is random. Use hashtags and keywords sorted by
viewCount. - MP4 links expire after a few hours; download soon after the run.
- Numbers are public counters at the moment of the run and can differ slightly from the app.
FAQ
Do I need a Kwai account, cookies or an API key? No. Only public pages and public web endpoints, through the Apify datacenter proxy.
Can I scrape every video of a creator?
Yes, set maxItems to 0 or a high number. A profile of 100 videos takes about 10 seconds.
Why VIDEO_NOT_FOUND when the link opens in my browser?
For a removed video Kwai quietly shows another one. If your browser shows the same id, open an issue with the URL.
Can I call it from the API, n8n, Make, Zapier or an AI agent?
Yes. Use scrapewise/kwai-scraper with the Apify API, the Apify app in those tools, or the Apify MCP server (https://mcp.apify.com).
curl -X POST "https://api.apify.com/v2/acts/scrapewise~kwai-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" -d '{"urls": ["https://www.kwai.com/@Futecem"], "maxItems": 50}'
Is scraping Kwai legal? The Actor collects only what Kwai shows to any visitor without login. How you use the data is your responsibility; follow Kwai's terms and laws such as LGPD and GDPR.
Changelog
- 2026-10-25: price by row type: listing videos stay at US$ 2.00 per 1,000; videos opened by URL and creator rows move to US$ 6.00 per 1,000 (Free plan).
- 2026-10-27: daily only-new mode on the page title and a "Schedule it" guide;
includeCommentsaccepted as an alias (comments are still login-only on Kwai, re-checked 2026-10-14). Same price, same output. - 2026-10-08:
maxCommentsPerVideoandmaxRepliesPerCommentaccepted, withcommentsStatus;maxItems: 0means no limit. - 2026-10-05:
videoCategoryandvideoSubcategoryon profile videos, same price.
Something broke? Open an issue on the Actor page; issues are answered within 12 hours.