{
  "openapi": "3.0.1",
  "info": {
    "title": "Douyin Xingtu 巨量星图 KOL Scraper - Rates, CPM & Rankings",
    "description": "Get Douyin KOL data from Xingtu (巨量星图) for influencer marketing: search creators by keyword, category, gender and followers; pull video quotes, expected CPM/CPE, MCN and audience breakdown; read Xingtu ranking lists. No login or cookies needed. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "BGy29IMcBdtVnknKF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clover_folktale~xingtu-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clover_folktale-xingtu-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/clover_folktale~xingtu-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clover_folktale-xingtu-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/clover_folktale~xingtu-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clover_folktale-xingtu-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "creator",
              "ranking",
              "creatorAnalytics",
              "creatorVideos",
              "similarCreators",
              "anchorSearch",
              "toutiaoSearch",
              "mcnSearch",
              "videoReport",
              "rateCard",
              "contentTrendGuide",
              "ipCalendar",
              "ipActivityDetail",
              "marketingCases"
            ],
            "type": "string",
            "description": "What to scrape: creators matching a search, full profiles or deep analytics of given creators, a creator's videos, similar creators, streamers, Toutiao creators, MCN agencies, a video report, or an official ranking list, a creator's rate card, Xingtu's content trend guide, the IP marketing calendar and the details of one IP activity, or Xingtu's marketing cases.",
            "default": "search"
          },
          "keyword": {
            "title": "Keyword (modes: search, anchorSearch, toutiaoSearch, mcnSearch)",
            "type": "string",
            "description": "Creator nickname or, with searchBy = content, a topic found in the creators' videos. Optional: leave empty to browse creators with the filters below only. For anchorSearch and toutiaoSearch the keyword is required; for mcnSearch it is an optional agency name (empty lists agencies)."
          },
          "searchBy": {
            "title": "Search by (mode: search)",
            "enum": [
              "nickname",
              "content"
            ],
            "type": "string",
            "description": "Match the keyword against creator nicknames or against the content of their videos.",
            "default": "nickname"
          },
          "category": {
            "title": "Category (mode: search)",
            "enum": [
              "any",
              "beauty",
              "fashion",
              "pets",
              "reviews",
              "games",
              "anime",
              "travel",
              "cars",
              "lifestyle",
              "music",
              "dance",
              "food",
              "parenting",
              "fitness",
              "tech",
              "education",
              "looks",
              "home",
              "talent",
              "film-tv",
              "art-culture",
              "finance",
              "rural",
              "comedy-drama",
              "relationships",
              "gardening",
              "real-estate",
              "street-snaps",
              "media"
            ],
            "type": "string",
            "description": "Only creators in this category.",
            "default": "any"
          },
          "gender": {
            "title": "Creator gender (mode: search)",
            "enum": [
              "any",
              "male",
              "female"
            ],
            "type": "string",
            "description": "Only male or female creators.",
            "default": "any"
          },
          "minFollowers": {
            "title": "Min followers (mode: search)",
            "minimum": 0,
            "type": "integer",
            "description": "Only creators with at least this many followers."
          },
          "maxFollowers": {
            "title": "Max followers (mode: search)",
            "minimum": 0,
            "type": "integer",
            "description": "Only creators with at most this many followers."
          },
          "province": {
            "title": "Creator province (mode: search)",
            "enum": [
              "any",
              "beijing",
              "tianjin",
              "hebei",
              "shanxi",
              "inner-mongolia",
              "liaoning",
              "jilin",
              "heilongjiang",
              "shanghai",
              "jiangsu",
              "zhejiang",
              "anhui",
              "fujian",
              "jiangxi",
              "shandong",
              "henan",
              "hubei",
              "hunan",
              "guangdong",
              "guangxi",
              "hainan",
              "chongqing",
              "sichuan",
              "guizhou",
              "yunnan",
              "tibet",
              "shaanxi",
              "gansu",
              "qinghai",
              "ningxia",
              "xinjiang",
              "hong-kong",
              "macau",
              "taiwan"
            ],
            "type": "string",
            "description": "Only creators based in this province, as shown on their profile.",
            "default": "any"
          },
          "city": {
            "title": "Creator city (mode: search)",
            "type": "string",
            "description": "Only creators based in this city, written as the Chinese city name, for example 杭州 or 杭州市. Can be combined with a province."
          },
          "audienceGender": {
            "title": "Audience gender (mode: search)",
            "enum": [
              "any",
              "male",
              "female"
            ],
            "type": "string",
            "description": "Only creators whose video audience is mostly male or mostly female. The share is set by Audience gender share.",
            "default": "any"
          },
          "audienceGenderShare": {
            "title": "Audience gender share, percent (mode: search)",
            "minimum": 50,
            "maximum": 100,
            "type": "integer",
            "description": "With Audience gender set: the least share of the audience that must be of that gender, 50 to 100.",
            "default": 60
          },
          "audienceAges": {
            "title": "Audience age (mode: search)",
            "type": "array",
            "description": "Only creators whose video audience is mostly in one of these age groups. Several groups match any of them.",
            "items": {
              "type": "string",
              "enum": [
                "under-18",
                "18-23",
                "24-30",
                "31-40",
                "41-50",
                "over-50"
              ],
              "enumTitles": [
                "Under 18",
                "18-23",
                "24-30",
                "31-40",
                "41-50",
                "Over 50"
              ]
            }
          },
          "audienceCrowds": {
            "title": "Audience crowds (mode: search)",
            "type": "array",
            "description": "Only creators whose video audience is mostly one of these crowds. Several crowds match any of them.",
            "items": {
              "type": "string",
              "enum": [
                "gen-z",
                "small-town-youth",
                "new-white-collar",
                "young-moms",
                "urban-blue-collar",
                "small-town-seniors",
                "senior-middle-class",
                "urban-silver-haired"
              ],
              "enumTitles": [
                "Gen Z",
                "Small-town youth",
                "New white-collar",
                "Young moms",
                "Urban blue-collar",
                "Small-town seniors",
                "Senior middle class",
                "Urban silver-haired"
              ]
            }
          },
          "fansCrowds": {
            "title": "Fan crowds (mode: search)",
            "type": "array",
            "description": "Only creators whose followers are mostly one of these crowds. Several crowds match any of them.",
            "items": {
              "type": "string",
              "enum": [
                "gen-z",
                "small-town-youth",
                "new-white-collar",
                "young-moms",
                "urban-blue-collar",
                "small-town-seniors",
                "senior-middle-class",
                "urban-silver-haired"
              ],
              "enumTitles": [
                "Gen Z",
                "Small-town youth",
                "New white-collar",
                "Young moms",
                "Urban blue-collar",
                "Small-town seniors",
                "Senior middle class",
                "Urban silver-haired"
              ]
            }
          },
          "sort": {
            "title": "Sort (mode: search)",
            "enum": [
              "relevance",
              "followers-desc",
              "followers-asc"
            ],
            "type": "string",
            "description": "Best match first, or by follower count.",
            "default": "relevance"
          },
          "creators": {
            "title": "Creators (modes: creator, creatorAnalytics, creatorVideos, similarCreators, rateCard)",
            "type": "array",
            "description": "Xingtu creator IDs (the long number returned as userId by the search), Xingtu creator page links, e.g. https://www.xingtu.cn/ad/creator/author-homepage/douyin-video/6839869628747874312, or Douyin profile links (https://www.douyin.com/user/...), which are looked up on Xingtu first. A Douyin account that is not on Xingtu returns nothing and costs nothing.",
            "items": {
              "type": "string"
            }
          },
          "douyinUids": {
            "title": "Douyin user IDs (same modes as creators)",
            "type": "array",
            "description": "Numeric Douyin user IDs (digits only, for example 95419543465). Each is looked up on Xingtu first and then handled like an entry of 'creators'. Use it together with or instead of 'creators'. A Douyin account that is not on Xingtu returns nothing; only the $0.00005 run start can be charged.",
            "items": {
              "type": "string"
            }
          },
          "douyinIds": {
            "title": "Douyin account names (same modes as creators)",
            "type": "array",
            "description": "Douyin account names (抖音号, for example 851097441 or an @name). Each is looked up on Xingtu first and then handled like an entry of 'creators'. Use it together with or instead of 'creators'. An account that is not on Xingtu returns nothing; only the $0.00005 run start can be charged.",
            "items": {
              "type": "string"
            }
          },
          "videoType": {
            "title": "Video list (mode: creatorVideos)",
            "enum": [
              "homepage",
              "spread",
              "masterpiece",
              "converting"
            ],
            "type": "string",
            "description": "Which videos of each creator: the homepage list (all videos, newest first), the creator's best spread-performance videos, masterpieces (ID, date and plays only) or e-commerce converting videos.",
            "default": "homepage"
          },
          "videos": {
            "title": "Videos (mode: videoReport)",
            "type": "array",
            "description": "Douyin video IDs or video links, e.g. https://www.douyin.com/video/7695225845299957035. Short links (v.douyin.com) are not supported.",
            "items": {
              "type": "string"
            }
          },
          "activities": {
            "title": "IP activity IDs (mode: ipActivityDetail)",
            "type": "array",
            "description": "IP activity IDs: the activityId of the records of the ipCalendar mode, e.g. 499.",
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "Calendar start date (mode: ipCalendar)",
            "type": "string",
            "description": "First day of the window as YYYY-MM-DD (UTC). Empty starts today."
          },
          "endDate": {
            "title": "Calendar end date (mode: ipCalendar)",
            "type": "string",
            "description": "Last day of the window as YYYY-MM-DD (UTC), included. Empty ends 90 days after the start."
          },
          "rankingList": {
            "title": "Ranking list (mode: ranking)",
            "enum": [
              "brand-preferred",
              "a3-seeding",
              "search-after-view",
              "ecommerce",
              "ad-traffic",
              "high-potential",
              "rising-stars",
              "top-picks",
              "playlet-actors"
            ],
            "type": "string",
            "description": "Which official ranking to read. The list ranks creators by their commercial results or growth; the short-drama actor ranking is monthly and takes no category.",
            "default": "brand-preferred"
          },
          "rankingPeriod": {
            "title": "Ranking period (mode: ranking)",
            "enum": [
              "weekly",
              "monthly"
            ],
            "type": "string",
            "description": "Weekly or monthly edition (the short-drama actor ranking is monthly only). The latest published edition is read unless you give a date.",
            "default": "monthly"
          },
          "rankingCategory": {
            "title": "Ranking category (mode: ranking)",
            "enum": [
              "electronics",
              "daily-chemicals",
              "apparel",
              "mom-baby-pet",
              "auto",
              "beauty",
              "food-beverage",
              "all",
              "drama",
              "anime",
              "parenting",
              "entertainment",
              "sports",
              "animals",
              "emotion",
              "photography",
              "education",
              "travel",
              "fashion",
              "games",
              "home-life",
              "life-records",
              "movies",
              "tv-series",
              "tech",
              "science",
              "variety",
              "food",
              "workplace",
              "dance",
              "art",
              "finance",
              "music",
              "looks",
              "rural",
              "cars",
              "law"
            ],
            "type": "string",
            "description": "Advertiser industry (lists brand-preferred, a3-seeding, search-after-view, ecommerce, ad-traffic, high-potential) or content category (rising-stars, top-picks). Leave unset for the default of the chosen list. A category a list does not publish returns no results."
          },
          "rankingDate": {
            "title": "Ranking date (mode: ranking)",
            "type": "string",
            "description": "Optional edition to read, as YYYYMMDD: the last day of the period, e.g. 20260930 for the September 2026 monthly edition. Empty reads the latest edition."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of items to return in total for this run. You are charged per item returned.",
            "default": 20
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}