Answers

How do I find Bilibili creators (UP主) in a niche for sponsorships?

Short answer

Search Bilibili for your niche's keywords, collect a few hundred videos, group them by uploader and rank uploaders by their typical views and how recently they posted. Ten pages for each of five keywords is $0.10 at $0.002 a page. Follower counts are not available here, so confirm the shortlist on the creator's page or on Bilibili's official sponsorship platform.

A mechanical keyboard brand wants ten mid-sized tech creators for a launch: big enough to move sales, small enough to answer a DM and fit the budget. The fastest honest way to a shortlist is to let the content point to the creators. Search the topics your buyers watch, see who keeps showing up with videos that get watched, and only then look at the people.

The method

  1. Search the niche. Run Bilibili video search for five to ten keywords your buyers would type (客制化键盘, 键盘测评, 轴体推荐...). Use sort=most_viewed to see who wins the topic and sort=latest to see who is active now.
  2. Group by uploader. Every result has author.id (the creator's mid) and author.name. Count each creator's videos in your results and take the median views.
  3. Rank. Favour creators with several videos in the niche, a steady median rather than one viral hit, and a recent published_at.
  4. Check engagement. For the top 30 videos, Bilibili video detail with view=full adds coins and danmaku count. A video with many views but very few coins or comments deserves a second look.

Cost

Step Calls Cost
5 keywords × 10 pages 50 $0.10
Same, both sorts 100 $0.20
Plus detail on 30 top videos 100 + 30 {{cost:bilibili.videos.search100+bilibili.videos.get30}}

Script

import os, statistics, collections, requests

URL = "https://api.okdata.online/v1/bilibili/videos/search"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
KEYWORDS = ["客制化键盘", "键盘测评", "轴体推荐"]

by_up = collections.defaultdict(list)
for kw in KEYWORDS:
    for sort in ("most_viewed", "latest"):
        cursor = None
        for _ in range(5):
            params = {"query": kw, "sort": sort, **({"cursor": cursor} if cursor else {})}
            body = requests.get(URL, headers=H, params=params, timeout=60).json()
            if body["code"] != "ok":
                break
            for v in body["data"]["items"]:
                by_up[(v["author"]["id"], v["author"]["name"])].append(v)
            if not body["page"]["has_more"]:
                break
            cursor = body["page"]["next_cursor"]

rows = []
for (mid, name), vids in by_up.items():
    unique = {v["id"]: v for v in vids}.values()
    views = [v["metrics"]["views"] or 0 for v in unique]
    rows.append((len(views), statistics.median(views), max(v["published_at"] for v in unique), name, mid))

for n, med, last, name, mid in sorted(rows, reverse=True)[:30]:
    print(f"{name}  videos={n}  median_views={med:,.0f}  last={last[:10]}  https://space.bilibili.com/{mid}")

What this cannot tell you

  • There is no creator profile endpoint for Bilibili in the catalog, so follower counts are missing; author.followers is null and meta.unavailable says so.
  • There is no endpoint that lists one creator's videos. You only see the videos that matched your keywords, which is a sample of their work.
  • Views in search results are lifetime totals. A two-year-old video will look stronger than last week's; compare creators on recent videos.

The official route

Bilibili's own creator marketplace, 花火 (huahuo.bilibili.com), shows verified follower counts, audience profiles and quoted prices, and brand deals on Bilibili are expected to go through it anyway. Use the search method above to decide who to look up there. Agencies and MCNs can also hand you a list, at a fee. For the same workflow on Douyin, Xiaohongshu and TikTok, see the creator discovery guide.

Updated