# Bilibili KOL Scraper - 花火 Creator Rates & Audience (`vulnv/bilibili-kol-scraper`) Actor

Find and vet Bilibili (哔哩哔哩 / B站) creators on the 花火 (Huahuo) creator marketplace: search UP主 by keyword or filters, read creator rankings, and export quoted collaboration rates, CPM, audience portraits, follower growth and similar creators to JSON/CSV/Excel. No advertiser account needed.

- **URL**: https://apify.com/vulnv/bilibili-kol-scraper.md
- **Developed by:** [VulnV](https://apify.com/vulnv) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 creators

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Bilibili KOL Scraper - 花火 Creator Rates & Audience

**Find and vet Bilibili (哔哩哔哩 / B站) creators for brand campaigns, and export their quoted rates, audience portraits and performance to JSON, CSV or Excel.** This Actor reads Bilibili's official creator marketplace, 花火 (Huahuo): search UP主 by keyword or by filters (followers, price, median views, category), read the marketplace's creator rankings, and pull any listed creator's commercial profile with quoted collaboration rates, CPM, follower and viewer demographics, follower growth, content performance and similar creators.

No 花火 advertiser account, login, cookies, proxies or China IP to configure. Just pick an operation, add your input and press **Start**.

> **Unofficial notice:** This is an independent tool and is **not** affiliated with, endorsed by, or connected to Bilibili, 哔哩哔哩, 花火 (Huahuo) or Bilibili Inc. "Bilibili", "哔哩哔哩", "B站" and "花火" are trademarks of their respective owners, used here only to describe what the Actor scrapes.

### What is Bilibili 花火 (Huahuo)?

Bilibili is China's leading video community for Gen Z, with over 100 million daily users and creators known as UP主. 花火 (Huahuo) is Bilibili's official marketplace where brands and agencies hire those creators for sponsored videos, feed posts, podcasts and live streams. Every listed creator publishes quoted rates per collaboration format, and the marketplace adds audience portraits, campaign efficiency metrics (CPM, CPC) and growth data. This Actor turns that marketplace into clean, flat rows so you can shortlist KOLs, compare rates and plan budgets at scale.

### Operations

Pick one **Operation** and fill in the matching field:

| Operation | Input field | What you get |
|-----------|-------------|--------------|
| **Search creators by keyword** | `keywords` | Marketplace creators whose videos match each keyword (or whose name / UID matches), with followers, median views, interaction rate, quoted rates, CPM, commerce data and a follower age/gender snapshot. |
| **Browse creators by filters** | filters only | The same creator rows for every listed creator that matches your filters (category, followers, price, median views), sorted as you choose. |
| **Creator rankings** | `rankingType` | The marketplace's top, best-value or breakout creator ranking, optionally per category, with rank, score, growth and quoted rates. |
| **Creator commercial profile** | `creatorUrls` | The full commercial profile: every quoted rate, average and median engagement, CPM, follower and viewer demographics (gender, age, region, city tier, device, interests), content mix and top videos. |
| **Creator growth & performance** | `creatorUrls` | Follower growth over 7/30/90/180/365 days with a daily follower history for the last year, plus videos, brand deals, hot videos, content mix and traffic sources for the chosen period. |
| **Similar creators** | `creatorUrls` | Creators the marketplace lists as making similar content, with followers and quoted rates, for lookalike discovery. |

`creatorUrls` accept `space.bilibili.com/<uid>` URLs or bare numeric **UIDs** (e.g. `403884151`) - one per line. Only creators listed on the 花火 marketplace return data.

For videos, comments and general creator profiles of any Bilibili account, use our [Bilibili Scraper](https://apify.com/vulnv/bilibili-scraper).

### How to use it (step by step)

1. Choose an **Operation**.
2. Fill in the matching input:
   - Search creators -> add one or more **Search keywords** (Chinese works best, e.g. 咖啡, 数码测评, 美妆) and choose **Search by** video content or creator name.
   - Browse creators -> set any of the **Creator filters**.
   - Creator rankings -> choose a **Ranking type** and optionally a **Content category**.
   - Profile / Performance / Similar creators -> paste **Creator URLs / UIDs**.
3. Optionally narrow Search and Browse with **Content category**, **Minimum / Maximum followers**, **Minimum / Maximum quoted price (CNY)** and **Minimum / Maximum median views**, and pick a **Sort by** order.
4. Set **Maximum results per input** (default 100, or 0 for all available).
5. Press **Start**. Export the dataset as JSON, CSV, Excel, XML or via the API.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `operation` | string | **Required.** `search_creators`, `browse_creators`, `creator_rankings`, `creator_profile`, `creator_performance`, or `similar_creators`. |
| `keywords` | array | Search keywords (for `search_creators`). |
| `searchMode` | string | `content` (videos match the keyword) or `name` (creator nickname or UID). Search only. |
| `creatorUrls` | array | Creator URLs or UIDs (for `creator_profile`, `creator_performance`, `similar_creators`). |
| `maxItems` | integer | Max results per keyword (search), per run (browse, rankings) or per creator (similar creators). `0` = all available. Default `100`. |
| `category` | string | Content category, e.g. `tech`, `gaming`, `food`, `fashion`, `cars` (search, browse, rankings). |
| `minFollowers`, `maxFollowers` | integer | Follower range (search, browse). |
| `minPrice`, `maxPrice` | integer | Quoted price range in CNY (search, browse). |
| `minMedianViews`, `maxMedianViews` | integer | Median views per video range (search, browse). |
| `sortBy` | string | `relevance`, `followers`, `median_views` or `interaction_rate` (search, browse). |
| `rankingType` | string | `top`, `value` or `breakout` (rankings). |
| `performancePeriod` | string | `30d`, `90d` or `180d` (growth & performance). |

### Output

Every row carries a `record_type` of `creator`, `ranked_creator`, `creator_profile`, `creator_performance` or `similar_creator`. All prices are in Chinese yuan (CNY).

| Field | Description |
|-------|-------------|
| `creator_id`, `nickname`, `profile_url`, `avatar_url` | Creator identity. |
| `gender`, `region`, `city`, `category`, `subcategory`, `tags` | Who the creator is and what they make. |
| `creator_type`, `mcn_id`, `mcn_name` | Individual or agency-signed, and the MCN agency. |
| `followers_count`, `avg_views`, `median_views`, `interaction_rate` | Reach and engagement (interaction rate as a fraction, 0.08 = 8%). |
| `price_embedded_video`, `price_custom_video`, `price_deep_custom_video`, `price_dynamic_post`, `price_dynamic_repost`, `price_podcast_custom`, `price_podcast_embedded`, `price_live_online`, `price_live_offline` | Quoted rate per collaboration format, `null` when not offered. |
| `min_quoted_price`, `price_list` | Cheapest quote and the full list of quotes. |
| `cpm`, `cpc`, `quoted_cpm_embedded`, `quoted_cpm_custom`, `entry_cost` | Campaign cost efficiency. |
| `follower_male_pct`, `follower_female_pct`, `follower_age_*_pct`, `viewer_age_*_pct` | Audience gender and age split, in percent. |
| `can_sell_goods`, `goods_level`, `goods_categories`, `goods_gpm`, `goods_click_rate` | Product-selling (带货) ability. |

Creator rows also add `follower_growth_30d`, `videos_30d` / `videos_90d` / `videos_180d`, `hot_videos_180d`, `commercial_video_count`, `main_video_length`, `cooperation_modes` and, for content search, `matched_video_bvids`. Ranked rows add `rank`, `ranking_type`, `ranking_category`, `ranking_date`, `ranking_score` and `follower_growth`. Profile rows add `signature`, `brand_categories`, `likes_total`, `video_count`, average likes / comments / favorites / danmaku, percentile tags, viewer gender, `follower_top_regions`, `follower_city_tiers`, `follower_devices`, `follower_interests`, the matching `viewer_*` fields, `content_category_mix`, `video_length_mix` and the top videos. Performance rows add `follower_growth_7d` to `follower_growth_365d` with rates, `follower_history`, `videos_in_period`, `brand_deals_in_period`, `hot_videos_in_period` and `traffic_sources`. Similar-creator rows add `source_creator_id`.

Example creator row:

```json
{
  "record_type": "creator",
  "operation": "search_creators",
  "input": "咖啡",
  "creator_id": "403884151",
  "nickname": "阿拓测评",
  "profile_url": "https://space.bilibili.com/403884151",
  "gender": "male",
  "region": "浙江",
  "city": "杭州",
  "category": "科技",
  "subcategory": "数码",
  "creator_type": "individual",
  "tags": ["数码测评", "家电测评"],
  "followers_count": 24451,
  "follower_growth_30d": 24,
  "avg_views": 12163,
  "median_views": 11839,
  "interaction_rate": 0.0845,
  "cpm": 681.68,
  "price_embedded_video": 2000.0,
  "price_custom_video": 7000.0,
  "price_dynamic_post": null,
  "min_quoted_price": 2000.0,
  "follower_male_pct": 95.0,
  "follower_age_18_24_pct": 19.94,
  "can_sell_goods": true,
  "matched_video_bvids": ["BV1Dgad6RE26"]
}
```

### Common use cases

- **KOL shortlisting** - search a product keyword, filter by followers, price and median views, and export a ranked shortlist with quoted rates.
- **Budget planning** - compare embedded and custom video rates and CPM across a category before you brief an agency.
- **Audience fit checks** - pull commercial profiles to confirm a creator's follower and viewer gender, age, region and interests match your target customer.
- **Creator vetting** - check follower growth history, brand-deal volume and hot videos to spot inflated or stalled accounts.
- **Lookalike discovery** - start from a creator who performed well and expand with similar creators and category rankings.

### Notes on reliability

- Only creators listed on the 花火 marketplace have commercial data. Profile, performance and similar-creator inputs for other accounts are skipped and the run continues.
- The marketplace re-ranks results on every page, so neighbouring pages overlap a little. Duplicates are removed automatically; sort by a metric (followers, median views or interaction rate) for the most stable paging.
- Rankings are single lists of 30-50 creators; `ranking_date` shows which period a list covers. Rankings cover 15 content categories; for the others the full ranking is returned.
- Quoted rates are list prices published by the creator or their agency; final deal prices can differ.
- Some marketplace statistics (CPM, CPC, entry cost, commerce data) only exist for creators with campaign history and are `0` otherwise. A few growth windows can read `0` when the marketplace has no data for that window.
- Counts reflect what the marketplace returns at scrape time.

### FAQ

**Do I need a 花火 advertiser account, cookies or a proxy?** No. Just add your input and press Start.

**Which creator links work?** `space.bilibili.com/<uid>` links and bare numeric UIDs. The UID is also in the `creator_id` field of every row.

**What currency are prices in?** Chinese yuan (CNY), as published on the marketplace.

**How is this different from the Bilibili Scraper?** The [Bilibili Scraper](https://apify.com/vulnv/bilibili-scraper) covers public videos, comments and creator profiles. This Actor covers the commercial side: quoted rates, campaign metrics and audience portraits from the creator marketplace.

**Can I run several keywords or creators at once?** Yes - add multiple lines. Cross-input duplicate creators are removed automatically.

**Can I try it for free?** Yes. Users on the free Apify plan can fetch up to 10 results in total to try the Actor. Upgrade to a paid Apify plan to run it without that limit.

**What export formats are supported?** JSON, CSV, Excel, XML and HTML, plus the Apify API and integrations such as Google Sheets, Zapier, Make and webhooks.

### Pricing

This Actor is **pay per result**: you are charged for each record it returns (creators from search, browse and rankings, commercial profiles, performance reports and similar creators), plus standard Apify platform usage. Different record types have different prices; see the **Pricing** tab for current rates. You are never charged for inputs that return nothing.

### Related scrapers

- **[Bilibili Scraper](https://apify.com/vulnv/bilibili-scraper)** - 哔哩哔哩 videos, creators and comments.
- **[Xiaohongshu Scraper](https://apify.com/vulnv/xiaohongshu-scraper)** - 小红书 / RedNote notes, users and comments.
- **[Douyin Scraper](https://apify.com/vulnv/douyin-search-scraper)** - 抖音 videos by keyword, with creators and downloads.

# Actor input Schema

## `operation` (type: `string`):

What to scrape. Each operation uses a different input field below:

• Search creators → Keywords (+ optional filters)
• Browse creators by filters → filters only
• Creator rankings → Ranking type (+ optional category)
• Creator commercial profile → Creator URLs / UIDs
• Creator growth & performance → Creator URLs / UIDs
• Similar creators → Creator URLs / UIDs

## `keywords` (type: `array`):

For the "Search creators" operation. Add one or more keywords - Chinese works best (e.g. 咖啡, 数码测评, 美妆). Each keyword is searched independently and cross-keyword duplicates are removed. See "Search by" to match on video content or on creator names / UIDs.

## `searchMode` (type: `string`):

For "Search creators" only. Content finds creators whose videos match the keyword (matched videos are listed in each row). Creator name finds creators by nickname or UID.

## `creatorUrls` (type: `array`):

For the "Creator commercial profile", "Creator growth & performance" and "Similar creators" operations. Paste space.bilibili.com URLs or bare numeric UIDs (e.g. 403884151) - one per line. Only creators listed on the 花火 marketplace return data.

## `maxItems` (type: `integer`):

Upper bound on results per keyword (search), per run (browse, rankings) or per creator (similar creators). Cost scales linearly. Set 0 to fetch all available.

## `category` (type: `string`):

Optional. Limits Search, Browse and Rankings to creators whose main content category matches. Rankings cover 15 of these categories; for the others the full ranking is returned.

## `minFollowers` (type: `integer`):

Only creators with at least this many followers.

## `maxFollowers` (type: `integer`):

Only creators with at most this many followers.

## `minPrice` (type: `integer`):

Only creators whose standard quoted rate is at least this much, in Chinese yuan.

## `maxPrice` (type: `integer`):

Only creators whose standard quoted rate is at most this much, in Chinese yuan.

## `minMedianViews` (type: `integer`):

Only creators whose median views per video are at least this many.

## `maxMedianViews` (type: `integer`):

Only creators whose median views per video are at most this many.

## `sortBy` (type: `string`):

Order of Search and Browse results. Sorting by a metric gives the most stable paging.

## `rankingType` (type: `string`):

For "Creator rankings" only. Top creators (头部必选), best value creators (超值优选) or breakout creators with the fastest follower growth (成长黑马).

## `performancePeriod` (type: `string`):

For "Creator growth & performance" only. Window for the content statistics (videos, brand deals, hot videos, content and traffic mix). Follower growth is always reported for 7, 30, 90, 180 and 365 days.

## Actor input object example

```json
{
  "operation": "search_creators",
  "keywords": [
    "咖啡"
  ],
  "searchMode": "content",
  "maxItems": 100,
  "category": "any",
  "sortBy": "relevance",
  "rankingType": "top",
  "performancePeriod": "180d"
}
```

# Actor output Schema

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

All scraped Bilibili creator marketplace results in the default dataset.

## `overview` (type: `string`):

Overview table of the scraped results.

# 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 = {
    "keywords": [
        "咖啡"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vulnv/bilibili-kol-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 = { "keywords": ["咖啡"] }

# Run the Actor and wait for it to finish
run = client.actor("vulnv/bilibili-kol-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 '{
  "keywords": [
    "咖啡"
  ]
}' |
apify call vulnv/bilibili-kol-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vulnv/bilibili-kol-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/a4TTS12UJ8vtcvyTJ/builds/NzOo5k4BkvaXpo4Qq/openapi.json
