Kwai Scraper - Videos, Creators, Hashtags & API avatar

Kwai Scraper - Videos, Creators, Hashtags & API

Pricing

from $1.49 / 1,000 list / search results

Go to Apify Store
Kwai Scraper - Videos, Creators, Hashtags & API

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

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

36

Total users

7

Monthly active users

4.9 hours

Issues response

6 days ago

Last modified

Share

Kwai Scraper

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

FieldTypeDescription
searchTermsarrayKeywords to search. Each returns matching videos.
expandSearchWithHashtagbooleanTop up each search term with the videos of the hashtag of the same word, without repeats, until maxItems is reached. Default off.
hashtagsarrayHashtags with or without #. Each returns the videos posted under it.
startUrlsarrayAny 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.
profileHandlesarrayCreator handles without the full URL, e.g. jadebelchior905.
includeProfileVideosbooleanAlso return each creator's videos, newest first. Default off: profile record only.
videoIdsarrayRaw numeric video IDs (photo_id). Alternative to full URLs.
maxItemsintegerMax videos per search term, hashtag or creator. 0 for no limit. Default 20.
postedAfterdateOnly videos posted on or after this date, e.g. 2026-09-01.
minViewsintegerOnly videos with at least this many views.
onlyNewVideosbooleanReturn 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

FieldDescription
recordTypeAlways video.
videoIdKwai video ID as a string (precision-safe).
urlCanonical video URL.
captionVideo caption.
hashtagsHashtags parsed from the caption.
transcriptTranscript when Kwai provides one, else null.
createTimeUpload time, ISO 8601.
durationLength in seconds.
width, heightVideo dimensions.
viewCountView count.
likeCountLike count.
commentCountComment count.
shareCountShare / forward count.
videoUrlPlayable MP4 URL.
videoUrlVariantsAll available stream URLs.
coverUrlCover thumbnail.
firstFrameUrlFirst-frame image.
musicNameTrack name.
musicArtistTrack artist.
musicIdTrack ID.
musicUrlAudio URL.
authorIdCreator ID.
authorNameCreator display name.
authorDisplayNameCreator display name (detail records from older pages).
authorKwaiIdCreator handle, as used in kwai.com/@handle.
authorBioCreator bio.
authorAvatarCreator avatar URL.
authorVerifiedVerification flag.
authorFollowersFollower count (detail mode).
authorFollowerLikesTotal likes across the creator's videos (detail mode).
authorUrlCreator profile URL.
tagsContent tags.
sourceKeywordThe search term that produced the row (search only).
sourceHashtagThe hashtag that produced the row (hashtag feeds, and search rows topped up from a hashtag).
sourceProfileThe creator handle whose catalogue produced the row (creator videos only).

Profile fields

FieldDescription
recordTypeAlways profile.
handleCreator handle.
urlProfile URL.
profileIdCreator ID.
displayNameCreator display name.
bioCreator bio.
avatarAvatar URL.
followersFollower count.
totalLikesTotal likes across all the creator's videos.
videoCountNumber 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.

EndpointReturnsBilled as
GET /search?query=dance&maxItems=20Videos matching a keyword (up to 100)One list result per video
GET /hashtag?tag=futebol&maxItems=20Videos under a hashtag (up to 100)One list result per video
GET /creator-videos?handle=cnnbrasil&maxItems=20A creator's videos, newest first (up to 100)One list result per video
GET /video?id=5226577472377672739Full detail for one video (id, url or share link)One video detail result
GET /profile?handle=jadebelchior905One 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.

EventPrice (per 1,000)
List / search resultfrom $1.49
Video detail resultfrom $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 expandSearchWithHashtag to 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 postedAfter for recent posts only.
  • transcript is 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