Answers

How do I check Douyin Xingtu creator rates in bulk?

Short answer

Search each creator on Xingtu by name, which already returns their integrated and custom video rates in yuan, for $0.004 a search, then pull the full rate card of the ones you shortlist for $0.04 each. Pricing 60 creators both ways costs $2.64.

An agency gets a brief on Monday: the client's team picked 60 Douyin creators by hand and wants their prices by Wednesday. Opening 60 Xingtu pages and copying numbers into a sheet eats most of a day, and the sheet is stale a week later. With two calls per creator the same rate cards land in a spreadsheet in a few minutes, and you can run it again the morning the client signs.

Two steps per creator

  1. Find the creator on Xingtu. Douyin Xingtu creator search with search_by=name matches the nickname you have. Each result already carries followers, the 30-day engagement rate, median views and the integrated and custom video prices. For a first budget check that is often all you need.
  2. Pull the full rate card for the creators you will actually pitch. Douyin Xingtu creator rate card takes the Xingtu creator ID from step 1 and returns every kind of sponsored work the creator lists, its price in yuan, whether it is open for orders right now and how it is settled.

The Xingtu creator ID is not the Douyin account ID or sec_uid, so you go through the search first unless you saved the IDs from an earlier run.

What it costs

Step Calls Cost
Name search for 60 creators 60 $0.24
Full rate cards for 60 60 $2.40
Total 120 {{cost:douyin.xingtu.creators.search60+douyin.xingtu.creators.rates.get60}}

If you are browsing a niche rather than pricing a fixed list, a content search returns 20 creators with their headline prices for $0.004, so 1,000 creators cost $0.20. Most teams search wide, then buy full rate cards only for the final 20.

Code

import csv, os, requests

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def get(path, **params):
    body = requests.get(API + path, headers=H, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']}")
    return body["data"]

rows = []
for name in ["creator nickname A", "creator nickname B"]:   # your list
    hits = get("/v1/douyin/xingtu/creators/search", query=name, search_by="name")["items"]
    if not hits:
        rows.append({"name": name, "status": "not found on Xingtu"})
        continue
    c = hits[0]                     # compare followers if two creators share a name
    card = get("/v1/douyin/xingtu/creators/rates/get", id=c["id"])["item"]
    for r in card["rates"]:
        rows.append({"name": c["name"], "followers": c["followers"], "work": r["name"],
                     "price_cny": r["price"], "open": r["available"]})

with open("xingtu_rates.csv", "w", newline="", encoding="utf-8-sig") as f:
    w = csv.DictWriter(f, fieldnames=["name", "followers", "work", "price_cny", "open", "status"])
    w.writeheader()
    w.writerows(rows)

What to watch for

  • The listed price is where talks start. Xingtu shows what the creator lists; platform fees, discounts and package deals are settled inside Xingtu when you place the order.
  • Not every creator is on Xingtu. Someone who never joined, or has not opened brand deals, will not turn up. Mark them and reach them another way.
  • Closed order types. available: false means the creator lists that kind of work but is not taking it now.
  • Shared nicknames. Check followers and avatar before trusting the first hit.
  • No audience profile. Follower age, gender and city split, and past brand orders, stay in the Xingtu console.
  • Failed calls are not charged; see error codes.

Other ways

If you have a Xingtu advertiser account, the console's own filters and list export are the official route, and they include the audience profile you will want before signing. MCN agencies quote directly and often go below list for packages. Tools such as 蝉妈妈 or 飞瓜 rank creators by category without any code. The API route pays off when you price long lists again and again, or feed rates into your own sheet or agent. To find new creators instead of pricing known ones, see creator discovery.

Updated