Kwai Scraper - Videos, Creators, Hashtags & API
Pricing
from $1.49 / 1,000 list / search results
Kwai Scraper - Videos, Creators, Hashtags & API
Scrape Kwai videos by keyword, hashtag or creator catalogue, plus full video detail and creator profiles. 40+ fields per video: views, likes, shares, MP4 links, music, creator stats. Date and view filters, only-new mode for schedules, and a REST API with instant JSON. No login. Pay per result.
Pricing
from $1.49 / 1,000 list / search results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
36
Total users
7
Monthly active users
4.9 hours
Issues response
6 days ago
Last modified
Categories
Share
Kwai Scraper

Scrape Kwai (kwai.com) into clean, structured data: keyword search, hashtag feeds, a creator's full video catalogue, full video detail and creator profiles, in one run or over a REST API. No login, no cookies, no API key. You pay only for the results you get.
Why this scraper
Most Kwai and Kuaishou scrapers either return a thin field set or run on residential proxies and charge accordingly. This one extracts the full public payload Kwai's own website ships, including engagement counts, every video stream variant, music metadata, cover images, dimensions, and creator branding. Because it runs on plain HTTP, the price is among the lowest on the platform.
It targets kwai.com, the international app used across Latin America, the Middle East, and Asia. Handles like @jadebelchior905 work directly; you do not need internal numeric IDs.
What you can scrape
- Search any keyword and get matching videos with full engagement metrics.
- Hashtags: every video posted under a hashtag, far deeper than keyword search.
- Creator catalogues: a creator's videos, newest first, plus their profile.
- Video detail from a URL, ID or app share link: the complete record for a single video.
- Profiles from a creator handle or URL.
- Filters: only videos posted after a date, or with a minimum number of views. Filtered-out videos are not charged.
- Only new videos for scheduled runs: each run returns just what you have not received before.
- Instant answers over HTTP: call the actor as a REST API and get JSON back per request, without starting a run.
Input
| Field | Type | Description |
|---|---|---|
searchTerms | array | Keywords to search. Each returns matching videos. |
expandSearchWithHashtag | boolean | Top up each search term with the videos of the hashtag of the same word, without repeats, until maxItems is reached. Default off. |
hashtags | array | Hashtags with or without #. Each returns the videos posted under it. |
startUrls | array | Any Kwai link: video URLs return full detail, profile URLs the creator, /topic/ URLs a hashtag feed, and app share links (k.kwai.com/p/...) whatever they point to. |
profileHandles | array | Creator handles without the full URL, e.g. jadebelchior905. |
includeProfileVideos | boolean | Also return each creator's videos, newest first. Default off: profile record only. |
videoIds | array | Raw numeric video IDs (photo_id). Alternative to full URLs. |
maxItems | integer | Max videos per search term, hashtag or creator. 0 for no limit. Default 20. |
postedAfter | date | Only videos posted on or after this date, e.g. 2026-09-01. |
minViews | integer | Only videos with at least this many views. |
onlyNewVideos | boolean | Return only videos not delivered in an earlier run. Default off. |
Filters and onlyNewVideos apply to search, hashtag and creator videos. Video URLs and IDs are always returned in full.
Output
Every record has a recordType of video or profile.
Video fields
| Field | Description |
|---|---|
recordType | Always video. |
videoId | Kwai video ID as a string (precision-safe). |
url | Canonical video URL. |
caption | Video caption. |
hashtags | Hashtags parsed from the caption. |
transcript | Transcript when Kwai provides one, else null. |
createTime | Upload time, ISO 8601. |
duration | Length in seconds. |
width, height | Video dimensions. |
viewCount | View count. |
likeCount | Like count. |
commentCount | Comment count. |
shareCount | Share / forward count. |
videoUrl | Playable MP4 URL. |
videoUrlVariants | All available stream URLs. |
coverUrl | Cover thumbnail. |
firstFrameUrl | First-frame image. |
musicName | Track name. |
musicArtist | Track artist. |
musicId | Track ID. |
musicUrl | Audio URL. |
authorId | Creator ID. |
authorName | Creator display name. |
authorDisplayName | Creator display name (detail records from older pages). |
authorKwaiId | Creator handle, as used in kwai.com/@handle. |
authorBio | Creator bio. |
authorAvatar | Creator avatar URL. |
authorVerified | Verification flag. |
authorFollowers | Follower count (detail mode). |
authorFollowerLikes | Total likes across the creator's videos (detail mode). |
authorUrl | Creator profile URL. |
tags | Content tags. |
sourceKeyword | The search term that produced the row (search only). |
sourceHashtag | The hashtag that produced the row (hashtag feeds, and search rows topped up from a hashtag). |
sourceProfile | The creator handle whose catalogue produced the row (creator videos only). |
Profile fields
| Field | Description |
|---|---|
recordType | Always profile. |
handle | Creator handle. |
url | Profile URL. |
profileId | Creator ID. |
displayName | Creator display name. |
bio | Creator bio. |
avatar | Avatar URL. |
followers | Follower count. |
totalLikes | Total likes across all the creator's videos. |
videoCount | Number of videos posted. |
Example record
{"recordType": "video","videoId": "5226577472377672739","url": "https://www.kwai.com/@jadebelchior905/video/5226577472377672739","caption": "# tatuagem","hashtags": ["tatuagem"],"createTime": "2024-07-31T07:24:42.000Z","duration": 21,"width": 720,"height": 1280,"viewCount": 1284903,"likeCount": 41017,"commentCount": 94,"shareCount": 2640,"videoUrl": "https://ak-br-cdn.kwai.net/upic/.../video.mp4","musicName": "Áudio original","authorName": "jadebelchior905","authorVerified": false}
Examples
Search for videos
{ "searchTerms": ["dance", "receita", "comedia"], "maxItems": 20 }
Full detail for specific videos
{ "startUrls": [{ "url": "https://www.kwai.com/@jadebelchior905/video/5213629630362183094" }] }
A creator's profile
{ "profileHandles": ["jadebelchior905"] }
A creator's 100 latest videos
{ "profileHandles": ["cnnbrasil"], "includeProfileVideos": true, "maxItems": 100 }
More than 20 videos per keyword
{ "searchTerms": ["futebol"], "expandSearchWithHashtag": true, "maxItems": 150 }
Popular videos under a hashtag since a date
{ "hashtags": ["futebol"], "maxItems": 200, "postedAfter": "2026-01-01", "minViews": 10000 }
App share links
{ "startUrls": ["https://k.kwai.com/p/CCzy11ul"] }
Scheduled daily run: only what is new
{"profileHandles": ["cnnbrasil"],"includeProfileVideos": true,"hashtags": ["futebol"],"maxItems": 50,"onlyNewVideos": true}
Schedule this input in the Apify Scheduler (for example daily at 07:00). The first run delivers up to maxItems per entry; later runs return only videos you have not received before, and a run with nothing new costs nothing. For creators that means newly posted videos. Hashtag and search feeds are ordered by relevance, not date, so there "new" means "not delivered before"; add postedAfter to limit them to recent posts.
Call this actor over HTTP
Besides normal runs, this actor exposes a REST API that answers each request in a few seconds with JSON. There is no run to start and no dataset to fetch afterwards, which suits apps, automations and AI agents that need one answer at a time. The full interactive reference is on the Endpoints tab.
| Endpoint | Returns | Billed as |
|---|---|---|
GET /search?query=dance&maxItems=20 | Videos matching a keyword (up to 100) | One list result per video |
GET /hashtag?tag=futebol&maxItems=20 | Videos under a hashtag (up to 100) | One list result per video |
GET /creator-videos?handle=cnnbrasil&maxItems=20 | A creator's videos, newest first (up to 100) | One list result per video |
GET /video?id=5226577472377672739 | Full detail for one video (id, url or share link) | One video detail result |
GET /profile?handle=jadebelchior905 | One creator profile (handle or url) | One list result |
Authenticate with your Apify API token in the Authorization header:
curl -H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \"https://unfenced-group--kwai-scraper.apify.actor/search?query=dance&maxItems=5"
Every response has the shape { "count": N, "items": [...] }, with the same fields as the dataset records above. Errors, unknown videos or profiles, and empty searches return no data and are never billed. POST with a JSON body (for example {"query": "dance"}) works the same as GET. The search, hashtag and creator endpoints also take postedAfter and minViews, and /search takes expandWithHashtag=true to go past Kwai's ~20-video search limit.
Pricing
You pay per result. Compute and any proxy cost are absorbed by us.
| Event | Price (per 1,000) |
|---|---|
| List / search result | from $1.49 |
| Video detail result | from $1.99 |
Higher volume tiers reduce these rates automatically.
Performance
Runs on plain HTTP, so it is fast and light. A typical run uses well under 100 MB of memory. Every feed is paginated to its end, or to your maxItems cap, whichever comes first. Creator catalogues stop as soon as they pass your postedAfter date. Runs also stop collecting shortly before the run timeout so results are always written out.
Limitations
- Kwai's keyword search ends at roughly 20 videos per keyword. Turn on
expandSearchWithHashtagto top it up from the hashtag of the same word, which goes hundreds of videos deep, or use several search terms. - Hashtag feeds are ordered by Kwai's relevance, not by date. Use
postedAfterfor recent posts only. transcriptis only present when Kwai itself provides one.- Search returns videos, not users.
- Creator records cover public branding only; individual personal data is not collected.
Technical details
The scraper reads the server-rendered data Kwai embeds in its own pages and the public web endpoints its site calls. Video IDs are returned as strings to avoid the precision loss that affects large numeric IDs in JSON.
Rate this actor
If this actor did what you needed, a rating on the Reviews tab helps other people find it. If something did not work, please open an Issue instead — we fix those, and it keeps the rating about the actor rather than the bug.
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl