# Kwai Scraper — Videos, Profiles, Search & MP4 Links (`hipersoft/kwai-scraper`) Actor

Scrape Kwai creator profiles, every video and keyword or hashtag search: views, likes, comments, shares, engagement rate, captions, hashtags, music and direct MP4 video links. Bulk profiles, date and view filters. Export JSON, CSV or Excel.

- **URL**: https://apify.com/hipersoft/kwai-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0015 / result

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Kwai Scraper — Videos, Profiles, Hashtag Search & MP4 Links

**Kwai Scraper** extracts public data from **Kwai creator profiles, their videos and keyword or hashtag searches**. For every video you get **views, likes, comments, shares, engagement rate, caption, hashtags, post date, music, cover image and a direct MP4 video link**. For every creator you get **followers, following, video count, total likes and verified status**. Scrape one profile or hundreds, then export the results to **JSON, CSV, Excel, XML or HTML**. It's fast and reliable, and you only pay for the results you get.

### What does Kwai Scraper do?

Kwai Scraper is a bulk Kwai data extractor for influencer marketing, social listening and short-video research in Brazil, Latin America, Indonesia and every other Kwai market. It has three input modes, and you can combine them in one run:

- 👤 **Profiles**: paste Kwai usernames or profile links to get each creator's stats plus their full video history, newest first.
- 🔎 **Search terms and hashtags**: get the top Kwai videos for any keyword or hashtag, such as `maquiagem`, `#receitas` or `futebol`.
- 🎬 **Video links**: get the stats of specific Kwai videos.

Every video row includes a **direct MP4 link**, so you can archive or analyze the video file itself.

### What data can you scrape from Kwai?

| Profile data | Video data |
|---|---|
| Kwai ID (username) and profile link | Video link and video ID |
| Display name | Caption |
| Bio | Hashtags |
| Followers | Views |
| Following | Likes |
| Number of public videos | Comments count |
| Total likes received | Shares count |
| Verified status | Engagement rate (%) |
| Creator level | Post date and time |
| Gender (if public) | Direct MP4 video link |
| Avatar image | Cover image, width and height |
| | Music name, artist and audio link |
| | Author name, ID, verified flag and follower count |

### Use cases for Kwai data

- **Influencer marketing**: find and vet Kwai creators by followers, total likes and real engagement rate before you reach out.
- **Campaign tracking**: monitor the views, likes, comments and shares of sponsored Kwai videos over time.
- **Trend and hashtag research**: see which videos rank for a hashtag or keyword and which sounds they use.
- **Competitor monitoring**: follow brand and competitor accounts and benchmark their content.
- **Content archiving**: save MP4 files and metadata of your own or your clients' Kwai videos.
- **Market research in Brazil and LATAM**: Kwai is one of the biggest short-video apps in Brazil, so its data is a direct window into local consumer trends.
- **Dashboards and BI**: feed Kwai stats into Google Sheets, Looker Studio, Power BI or your own database.

### How to scrape Kwai data

1. Click **Try for free** to open Kwai Scraper in Apify Console.
2. Add **Kwai profiles**, **search terms or hashtags**, or **video links**.
3. Set **Max videos per profile** and, optionally, the **posted after** date or **minimum views** filter.
4. Click **Start**. Profiles are scraped in parallel.
5. Download your Kwai dataset as **JSON, CSV or Excel**, or browse it in the **Overview** table.

### Input

#### Example input

```json
{
  "profiles": ["https://www.kwai.com/@dicademeikefacil"],
  "maxVideosPerProfile": 50,
  "includeProfileDetails": true,
  "searchTerms": ["#maquiagem", "receitas fáceis"],
  "videoUrls": ["https://www.kwai.com/@dicademeikefacil/video/5235584677280843903"],
  "postedAfter": "2026-09-01",
  "minViews": 500
}
```

| Field | Description |
|---|---|
| **Kwai profiles** | Profile links, `@username` or plain usernames. Each returns its profile details and newest videos. |
| **Max videos per profile** | How many of the newest videos to collect per profile. Set `0` for profile details only. |
| **Include profile details** | Adds one row per creator with followers, video count and total likes. |
| **Search terms or hashtags** | Keywords or hashtags. Each returns its top matching videos, up to about 20. |
| **Video links** | Specific videos, in the form `https://www.kwai.com/@username/video/<id>`. |
| **Only videos posted after** | Skips older videos. Ideal for daily or weekly scheduled runs. |
| **Minimum views** | Only returns videos with at least this many views. |
| **Proxy configuration** | Optional, not needed for normal use. |

#### Scrape a Kwai hashtag

Add the hashtag (with or without `#`) to **Search terms or hashtags**. You'll get the top Kwai videos for it, each with full stats and its MP4 link.

#### Track new Kwai videos on a schedule

Set **Only videos posted after** and create an Apify [schedule](https://docs.apify.com/platform/schedules). Each run collects only fresh videos with their latest numbers.

### Output

Each row has a `type` of `profile`, `video` or `error`.

#### Kwai profile example

```json
{
  "type": "profile",
  "kwaiId": "dicademeikefacil",
  "userId": "1000687319",
  "url": "https://www.kwai.com/@dicademeikefacil",
  "name": "criadora de conteúdo digital",
  "bio": "✨Aprenda a fazer maquiagem com truques de uma forma simples e fácil ✨",
  "followers": 39508,
  "following": 27,
  "videoCount": 5262,
  "totalLikes": 439243,
  "isVerified": false,
  "creatorLevel": 1,
  "gender": "F"
}
```

#### Kwai video example

```json
{
  "type": "video",
  "videoId": "5248251051565112827",
  "url": "https://www.kwai.com/@dicademeikefacil/video/5248251051565112827",
  "caption": "Conheça essas dicas de maquiagem Me segue pra mais dicas como essa 💄💄🥰 #tutorialdemake #maquiagemtop",
  "hashtags": ["tutorialdemake", "maquiagemtop"],
  "views": 362,
  "likes": 13,
  "comments": 0,
  "shares": 6,
  "engagementRate": 5.25,
  "postedAt": "2026-10-05T16:31:08.468Z",
  "width": 720,
  "height": 1280,
  "videoUrl": "https://aws-br-cdn.kwai.net/upic/2026/10/06/00/....mp4",
  "coverUrl": "https://aws-br-pic.kwai.net/upic/2026/10/06/00/....webp",
  "author": { "kwaiId": "dicademeikefacil", "userId": "1000687319", "name": "criadora de conteúdo digital", "isVerified": false },
  "authorFollowers": 39508
}
```

#### Output schema

| Field | Type | Description |
|---|---|---|
| `type` | string | `profile`, `video` or `error`. |
| `kwaiId` | string | Creator's Kwai username (profile rows). |
| `userId` | string | Creator's numeric Kwai ID. |
| `url` | string (URL) | Link to the profile or video. |
| `name` | string | Creator display name. |
| `bio` | string | Profile bio. |
| `followers` | integer | Follower count. |
| `following` | integer | Accounts the creator follows. |
| `videoCount` | integer | Number of public videos. |
| `totalLikes` | integer | Total likes received. |
| `likedVideos` | integer | Videos the creator has liked. |
| `isVerified` | boolean | Verified account. |
| `creatorLevel` | integer | Kwai creator level. |
| `gender` | string | Gender, if public. |
| `avatarUrl` | string (URL) | Profile picture. |
| `videoId` | string | Video ID (video rows). |
| `caption` | string | Video caption. |
| `hashtags` | array | Hashtags in the caption. |
| `views` | integer | Video views. |
| `likes` | integer | Video likes. |
| `comments` | integer | Comment count. |
| `shares` | integer | Share count. |
| `engagementRate` | number | (likes + comments + shares) ÷ views × 100. |
| `postedAt` | string (ISO date) | When the video was posted. |
| `durationSec` | integer | Audio length in seconds, when available. |
| `width`, `height` | integer | Video resolution. |
| `videoUrl` | string (URL) | Direct MP4 link (temporary, so download it soon after the run). |
| `coverUrl` | string (URL) | Cover image. |
| `music` | object | Sound `id`, `name`, `artist` and audio `url`. |
| `author` | object | Video author's `kwaiId`, `userId`, `name`, `isVerified`, `avatarUrl`. |
| `authorFollowers` | integer | Author follower count (profile mode). |
| `searchTerm` | string | The search term that found the video (search mode). |
| `scrapedAt` | string (ISO date) | When the row was collected. |
| `error` | string | Present only on `error` rows. |

### How much does it cost to scrape Kwai?

Kwai Scraper uses **pay-per-result** pricing: you pay a small fixed price per profile or video row, and error rows are free. Higher Apify subscription plans get an automatic discount. See the **Pricing** tab for the exact price per result.

### Need data from other short-video apps too?

- [Likee Scraper](https://apify.com/hipersoft/likee-scraper) — Likee profiles and video stats.
- [TikTok Downloader](https://apify.com/hipersoft/tiktok-downloader) — TikTok videos and their stats.
- [YouTube Shorts Scraper](https://apify.com/hipersoft/youtube-shorts-scraper) — YouTube Shorts with views, likes and channel info.
- [Instagram Downloader](https://apify.com/hipersoft/instagram-downloader) — Instagram reels, posts and media.
- [Kick Downloader](https://apify.com/hipersoft/kick-downloader) — Kick clips and VODs.

### FAQ

**How many Kwai videos can I scrape?**
As many as a profile has published. Set **Max videos per profile** as high as 10,000 and add as many profiles as you need.

**Do I need a Kwai account?**
No. There's no setup: add profiles, search terms or links and click Start.

**Can I download Kwai videos?**
Yes. Every video row has a `videoUrl` with a direct MP4 link. The link is temporary, so download the file soon after the run.

**How many results does a search term return?**
The top matching videos for that keyword or hashtag, up to about 20 per term. To go deeper, add more specific terms or scrape the creators you discover.

**How is the engagement rate calculated?**
`(likes + comments + shares) ÷ views × 100`, rounded to two decimals.

**Can I get only new videos?**
Yes. Use **Only videos posted after** together with an Apify schedule.

**What happens if a username doesn't exist?**
You get an `error` row for it so your list stays complete, and you aren't charged for it.

**Can I integrate Kwai Scraper with other apps?**
Kwai Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is it legal to scrape Kwai?**
Kwai Scraper only collects publicly visible data. You are responsible for using it in line with Kwai's terms and data protection laws such as LGPD and GDPR.

### Related Actors

- [YouTube Scraper](https://apify.com/hipersoft/youtube-scraper) — videos, channels and search results.
- [Pinterest Scraper](https://apify.com/hipersoft/pinterest-scraper) — pins, boards and profiles.
- [Dailymotion Scraper](https://apify.com/hipersoft/dailymotion-scraper) — Dailymotion videos and channels.
- [Bilibili Scraper](https://apify.com/hipersoft/bilibili-scraper) — Bilibili videos and creators.

### Notes

Original clean-room implementation. Returns only public data; you are responsible for compliance with Kwai's terms. Not affiliated with Kwai or Kuaishou.

# Actor input Schema

## `profiles` (type: `array`):

Kwai creator profiles to scrape. Accepts profile links (https://www.kwai.com/@username), @username or just the username. Each profile returns its details plus its videos.

## `maxVideosPerProfile` (type: `integer`):

How many of the newest videos to collect from each profile. Set to 0 to get profile details only.

## `includeProfileDetails` (type: `boolean`):

Add one row per profile with followers, following, video count, total likes and verified status.

## `searchTerms` (type: `array`):

Keywords or hashtags (e.g. maquiagem, #receitas). Each term returns its top matching Kwai videos (up to about 20).

## `videoUrls` (type: `array`):

Specific Kwai videos, e.g. https://www.kwai.com/@username/video/5235584677280843903.

## `postedAfter` (type: `string`):

Skip videos older than this date (YYYY-MM-DD). Great for scheduled runs that only collect new posts.

## `minViews` (type: `integer`):

Only return videos with at least this many views.

## `proxyConfiguration` (type: `object`):

Not required. Use a proxy only if you run into rate limits on very large jobs.

## Actor input object example

```json
{
  "profiles": [
    "https://www.kwai.com/@dicademeikefacil"
  ],
  "maxVideosPerProfile": 20,
  "includeProfileDetails": true,
  "minViews": 0,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

The results as dataset items.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profiles": [
        "https://www.kwai.com/@dicademeikefacil"
    ],
    "maxVideosPerProfile": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/kwai-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "profiles": ["https://www.kwai.com/@dicademeikefacil"],
    "maxVideosPerProfile": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/kwai-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profiles": [
    "https://www.kwai.com/@dicademeikefacil"
  ],
  "maxVideosPerProfile": 20
}' |
apify call hipersoft/kwai-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/kwai-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bcXHdbr5uAdajjp1G/builds/6ynvFHt2kJ8y4dERa/openapi.json
