# Douyin Profile Scraper - Followers, Likes & Latest Posts (`parseforge/douyin-profile-scraper`) Actor

Scrape Douyin (抖音) creator profiles: exact followers, total likes, post count, bio, verification, IP region and the latest posts with engagement. No login. Export CSV, Excel, JSON, XML.

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

## Pricing

from $4.25 / 1,000 result items

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

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)

## 👤 Douyin Profile Scraper

> 🚀 **Export Douyin (抖音) creator profiles in seconds.** 28 fields per creator, exact follower counts, total likes, verification and the latest 20 posts with their engagement, no login needed.

Douyin is China's TikTok, with hundreds of millions of daily users and a creator economy of its own. This Actor opens each creator's public profile the way Douyin's own website does and turns it into one clean row: name, Douyin ID, bio, exact followers, following, total likes received, number of posts, verification label, business or personal account, shop and live flags, and the creator's latest posts with caption, date, likes, comments, shares and saves, plus the average engagement of those posts.

Coverage: any public Douyin profile, from a few hundred followers to tens of millions. In a 12 profile cloud test every row carried exact followers, total likes and post count, and 12 of 12 came back with their latest posts (13 to 20 each). Each extra profile takes about 3 seconds after a one-time warm-up.

| 🎯 Target Audience | 💡 Primary Use Cases |
| --- | --- |
| 🔍 Influencer marketing agencies | Vet KOLs with exact followers, likes and recent engagement |
| 🛍 Brands selling in China | Shortlist creators by region, size and engagement rate |
| 📈 Social media analysts | Track follower growth and posting cadence over time |
| 🌏 Cross-border sellers | Find Douyin creators with shops in your category |
| 🤖 Data teams | Enrich creator lists with clean, numeric profile data |
| 🎓 Researchers | Study the Chinese creator economy |

### 📋 What the Douyin Profile Scraper does

Give it creator profile links. It reads each profile and its latest posts and writes one row per creator.

- 🔗 **Any profile link.** www.douyin.com/user links, iesdouyin.com share links or v.douyin.com short links from the app.
- 👥 **Exact audience numbers.** Followers, following, total likes and post count as whole numbers.
- 🔒 **Privacy by default.** Emails, phone numbers, QQ/WeChat IDs and business contact handles are removed from bios and captions. IP region and location are only filled when you opt in.
- ✅ **Account signals.** Verification label, business or personal account, private flag, live-now flag and shop flag.
- 🎬 **Latest posts.** Up to 20 recent posts with caption, date, pinned flag, likes, comments, shares, saves and cover.
- 📈 **Engagement averages.** Average likes, comments and shares of the recent non-pinned posts, and the date of the last post.

> 💡 **Why it matters:** follower counts alone hide inactive or inflated accounts. Recent average likes and the last post date tell you whether a creator's audience is still watching.

### 🎬 Full Demo (🚧 Coming soon)

### 📊 Output

| Field | Description |
| --- | --- |
| 🖼 imageUrl | Creator avatar |
| 👤 nickname | Display name |
| 🔗 url | Profile page |
| 🔐 secUid | Creator sec\_uid |
| 🔢 uid | Numeric user ID |
| 🪪 douyinId | Douyin number (抖音号) |
| ✍️ signature | Bio, with contact details replaced by \[removed] |
| 👥 followerCount | Exact followers |
| ➡️ followingCount | Accounts followed |
| ❤️ totalLikes | Likes received across all posts |
| 🎞 postCount | Posts published |
| ✅ verification | Verification label, or None |
| 🏢 accountType | Business or Personal |
| 📍 ipLocation | IP region shown on the profile (opt-in, otherwise Not Requested) |
| 🗺 location | Country, province and city the creator chose to show (opt-in, otherwise Not Requested) |
| 🔒 isPrivate | Private account |
| 🔴 isLiveNow | Live at scrape time |
| 🛍 hasShop | Profile has a shop entry |
| 🖼 coverImageUrl | Profile header image |
| 🧮 latestPostsCount | Number of latest posts included |
| 📅 latestPostAt | Newest non-pinned post |
| 📈 avgLikesLatest | Average likes of the latest non-pinned posts |
| 💬 avgCommentsLatest | Average comments of the latest non-pinned posts |
| 🔁 avgSharesLatest | Average shares of the latest non-pinned posts |
| 🎬 latestPosts | Latest posts with caption, date, pinned flag and counts |
| 🧭 dataSource | Which Douyin route answered |
| 🕒 scrapedAt | Time the row was collected |
| ❌ error | Error message, null on success |

Three real rows from a test run with the default settings, all verified news-organisation accounts (latest posts shortened to two each):

```json
[
  {
    "imageUrl": "https://p3-pc.douyinpic.com/aweme/1080x1080/aweme-avatar/tos-cn-avt-0015_21b4383e542b8991bcd33d33eeda7d8d.jpeg?from=2956013662",
    "nickname": "人民日报",
    "url": "https://www.douyin.com/user/MS4wLjABAAAA8U_l6rBzmy7bcy6xOJel4v0RzoR_wfAubGPeJimN__4",
    "secUid": "MS4wLjABAAAA8U_l6rBzmy7bcy6xOJel4v0RzoR_wfAubGPeJimN__4",
    "uid": "104255897823",
    "douyinId": "rmrbxmt",
    "signature": "参与、沟通、记录时代。",
    "followerCount": 202926055,
    "followingCount": 34,
    "totalLikes": 18984989574,
    "postCount": 12184,
    "verification": "人民日报官方账号",
    "accountType": "Business",
    "ipLocation": "Not Requested",
    "location": "Not Requested",
    "isPrivate": "No",
    "isLiveNow": "No",
    "hasShop": "Yes",
    "coverImageUrl": "https://p3-pc-sign.douyinpic.com/obj/douyin-user-image-file/a0fed342d45f11ee57830326fa8bb1b1?lk3s=93de098e&x-expires=1790470800&x-signature=4UHvpfdpCXcPGni%2BXgpMRLKtYNI%3D&from=2480802190",
    "latestPostsCount": 18,
    "latestPostAt": "2026-09-18T13:56:39.000Z",
    "avgLikesLatest": 494764,
    "avgCommentsLatest": 74,
    "avgSharesLatest": 67001,
    "latestPosts": [
      {
        "id": "7686873843583012111",
        "url": "https://www.douyin.com/video/7686873843583012111",
        "type": "Video",
        "caption": "人民日报记者直击名古屋\"亚运村邮轮\"。近300米长、1500间客房，这艘邮轮将接待约4000名运动员和随队人员。关注#亚运第一排 ，带你看见赛场内外！#媒体原创",
        "createdAt": "2026-09-18T13:56:39.000Z",
        "isPinned": "No",
        "likes": 250709,
        "comments": 68,
        "shares": 6216,
        "saves": 8864,
        "coverUrl": "https://p3-pc-sign.douyinpic.com/tos-cn-i-dy/f3896803a49345b491ca12c62882e207~tplv-dy-cropcenter:323:430.jpeg?lk3s=138a59ce&x-expires=2105658000&x-signature=SiSDTL9IGHqrRUVloZPBRPQfyVw%3D&from=327834062&s=PackSourceEnum_PUBLISH&se=true&sh=323_430&sc=cover&biz_tag=pcweb_cover&l=20260925095627E82F1545169FA5956E22"
      },
      {
        "id": "7686868882593795380",
        "url": "https://www.douyin.com/video/7686868882593795380",
        "type": "Video",
        "caption": "住房城乡建设部：新建住宅层高标准从原来的2米8提高到3米，4楼及以上住宅都要加装电梯。",
        "createdAt": "2026-09-18T13:37:19.000Z",
        "isPinned": "No",
        "likes": 267108,
        "comments": 75,
        "shares": 66763,
        "saves": 23070,
        "coverUrl": "https://p3-pc-sign.douyinpic.com/tos-cn-i-dy/7c4ff6f916dd416b95543bba5bbc88e9~tplv-dy-cropcenter:323:430.jpeg?lk3s=138a59ce&x-expires=2105658000&x-signature=fO92sT5vzEy9OSSqpGUvEvqCS5o%3D&from=327834062&s=PackSourceEnum_PUBLISH&se=true&sh=323_430&sc=cover&biz_tag=pcweb_cover&l=20260925095627E82F1545169FA5956E22"
      }
    ],
    "dataSource": "Signed web API",
    "scrapedAt": "2026-09-25T01:56:28.107Z",
    "error": null
  },
  {
    "imageUrl": "https://p3-pc.douyinpic.com/aweme/1080x1080/aweme-avatar/douyin-user-private-image_lilanxin.369_d52b51cfd28cc8f1c29475433710b182405f5202bf22519b9d07b717065fcc32.jpeg?from=2956013662",
    "nickname": "新华社",
    "url": "https://www.douyin.com/user/MS4wLjABAAAAxA44mxJVod_Aq5wc0cZrbZHJ2S_DnoJctGpb_mOvsxs",
    "secUid": "MS4wLjABAAAAxA44mxJVod_Aq5wc0cZrbZHJ2S_DnoJctGpb_mOvsxs",
    "uid": "93288642596",
    "douyinId": "xinhuashe",
    "signature": "国社品质 温暖你我",
    "followerCount": 57146089,
    "followingCount": 105,
    "totalLikes": 3485857929,
    "postCount": 48264,
    "verification": "新华通讯社官方账号",
    "accountType": "Business",
    "ipLocation": "Not Requested",
    "location": "Not Requested",
    "isPrivate": "No",
    "isLiveNow": "No",
    "hasShop": "Yes",
    "coverImageUrl": "https://p3-pc-sign.douyinpic.com/obj/douyin-user-image-file/9dec1b0329e3dc03cd41bb554090ef09?lk3s=93de098e&x-expires=1790470800&x-signature=mN%2FtxWJ8r6P2fc3UylT6JxE12q8%3D&from=2480802190",
    "latestPostsCount": 18,
    "latestPostAt": "2026-09-18T14:17:13.000Z",
    "avgLikesLatest": 24953,
    "avgCommentsLatest": 61,
    "avgSharesLatest": 2893,
    "latestPosts": [
      {
        "id": "7686879142528257321",
        "url": "https://www.douyin.com/video/7686879142528257321",
        "type": "Video",
        "caption": "一年级男孩手写“空心”数字，老师直呼：太丝滑了。网友：黑板报界又来了位人才！#媒体原创",
        "createdAt": "2026-09-18T14:17:13.000Z",
        "isPinned": "No",
        "likes": 42739,
        "comments": 77,
        "shares": 7643,
        "saves": 2932,
        "coverUrl": "https://p3-pc-sign.douyinpic.com/tos-cn-i-dy/c4dbfc705ecd4c3cbbfbf99e4d3cb747~tplv-dy-cropcenter:323:430.jpeg?lk3s=138a59ce&x-expires=2105658000&x-signature=USgUt3CRjTghcvrMWyfZF%2Fi9zRs%3D&from=327834062&s=PackSourceEnum_PUBLISH&se=true&sh=323_430&sc=cover&biz_tag=pcweb_cover&l=20260925095631BFB728EDC9498CB8CE1F"
      },
      {
        "id": "7686864270604193070",
        "url": "https://www.douyin.com/video/7686864270604193070",
        "type": "Video",
        "caption": "民警科普防诈骗知识时，“新鲜的素材”刚好打了进来",
        "createdAt": "2026-09-18T13:19:23.000Z",
        "isPinned": "No",
        "likes": 136129,
        "comments": 67,
        "shares": 31083,
        "saves": 4267,
        "coverUrl": "https://p3-pc-sign.douyinpic.com/tos-cn-i-dy/ec97e6a909014cd79d931f973dcc6b39~tplv-dy-cropcenter:323:430.jpeg?lk3s=138a59ce&x-expires=2105658000&x-signature=Y2bU1xaMvXAcmO05HrOuD3MQZOk%3D&from=327834062&s=PackSourceEnum_PUBLISH&se=true&sh=323_430&sc=cover&biz_tag=pcweb_cover&l=20260925095631BFB728EDC9498CB8CE1F"
      }
    ],
    "dataSource": "Signed web API",
    "scrapedAt": "2026-09-25T01:56:31.800Z",
    "error": null
  },
  {
    "imageUrl": "https://p3-pc.douyinpic.com/aweme/1080x1080/aweme-avatar/tos-cn-avt-0015_edebaf080d30cc9b190f33c133a200dc.jpeg?from=2956013662",
    "nickname": "新华网",
    "url": "https://www.douyin.com/user/MS4wLjABAAAAukfxyGQmo3HK9N26B8v6SkhCwbtbjEqlThz1U_zxkcI",
    "secUid": "MS4wLjABAAAAukfxyGQmo3HK9N26B8v6SkhCwbtbjEqlThz1U_zxkcI",
    "uid": "98569634382",
    "douyinId": "xinhuawang",
    "signature": "让新闻离你更近\n新华网股份有限公司",
    "followerCount": 31555159,
    "followingCount": 251,
    "totalLikes": 1374610277,
    "postCount": 55725,
    "verification": "新华网官方账号",
    "accountType": "Business",
    "ipLocation": "Not Requested",
    "location": "Not Requested",
    "isPrivate": "No",
    "isLiveNow": "No",
    "hasShop": "Yes",
    "coverImageUrl": "https://p3-pc-sign.douyinpic.com/obj/douyin-user-image-file/b7268c044d73d8702977343f6655a938?lk3s=93de098e&x-expires=1790470800&x-signature=DoabKi%2Bq%2BzON2xQ%2B6kpciLsKmj4%3D&from=2480802190",
    "latestPostsCount": 18,
    "latestPostAt": "2026-09-18T13:17:22.000Z",
    "avgLikesLatest": 1898,
    "avgCommentsLatest": 26,
    "avgSharesLatest": 120,
    "latestPosts": [
      {
        "id": "7686863749768072457",
        "url": "https://www.douyin.com/video/7686863749768072457",
        "type": "Video",
        "caption": "“如果需要，我第一个报名参加战斗！”残历碑下，93岁老战士话语铿锵，热血依旧。#九一八事变爆发95周年 （来源：央视新闻）",
        "createdAt": "2026-09-18T13:17:22.000Z",
        "isPinned": "No",
        "likes": 4262,
        "comments": 79,
        "shares": 46,
        "saves": 110,
        "coverUrl": "https://p3-pc-sign.douyinpic.com/tos-cn-i-dy/ac494c51e9ec41998ca85dac90f8a3df~tplv-dy-cropcenter:323:430.jpeg?lk3s=138a59ce&x-expires=2105658000&x-signature=H7q4nA0tuJ7O8nHuU5wNHOX1OjA%3D&from=327834062&s=PackSourceEnum_PUBLISH&se=true&sh=323_430&sc=cover&biz_tag=pcweb_cover&l=20260925095634B0643D5CCB5C17260F1F"
      },
      {
        "id": "7686863339594534170",
        "url": "https://www.douyin.com/video/7686863339594534170",
        "type": "Video",
        "caption": "新华社消息｜长江武汉段驳船倾倒黑色泥状物调查结果公布（记者：龚联康）",
        "createdAt": "2026-09-18T13:15:45.000Z",
        "isPinned": "No",
        "likes": 1228,
        "comments": 13,
        "shares": 7,
        "saves": 29,
        "coverUrl": "https://p3-pc-sign.douyinpic.com/tos-cn-i-dy/0f4d5a7ebc5e49588db4264db6858109~tplv-dy-cropcenter:323:430.jpeg?lk3s=138a59ce&x-expires=2105658000&x-signature=%2B5OS2DwmJNHjzoBYao3pLR7hsN8%3D&from=327834062&s=PackSourceEnum_PUBLISH&se=true&sh=323_430&sc=cover&biz_tag=pcweb_cover&l=20260925095634B0643D5CCB5C17260F1F"
      }
    ],
    "dataSource": "Signed web API",
    "scrapedAt": "2026-09-25T01:56:34.627Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

- 🔓 **No login, no cookies.** It reads public profiles only, so no Douyin account of yours is ever at risk.
- 🎯 **Exact numbers.** Followers and likes as whole numbers, not "621.6w".
- ⚡ **One warm-up, then fast.** A single browser session serves the whole run: 12 profiles took 73 seconds in the cloud.
- 📈 **Engagement built in.** Averages from recent posts are computed for you, pinned posts excluded.
- 🧾 **One row per creator.** Profile and latest posts in one row, ready for a spreadsheet or CRM.

### 📈 How it compares to alternatives

| | This Actor | Logged-in scrapers | Manual browsing |
| --- | --- | --- | --- |
| Douyin account or cookies needed | ❌ No | ✅ Yes, and accounts get flagged | ❌ No for profiles |
| Exact followers and total likes | ✅ | ✅ | Rounded ("621.6w") |
| IP region | ✅ Opt-in | ✅ | ✅ |
| Latest posts per profile | About 20 | All posts | About 20, then a login prompt |
| Engagement averages | ✅ Computed | Varies | Manual |
| Follower lists | ❌ Not public | Varies | ❌ |

Douyin shows visitors who are not logged in only the first page of a creator's posts, about 20 including pinned ones, so that is what this Actor returns. It is enough for engagement checks and posting cadence. For keyword discovery, pair it with the Douyin Search & Videos Scraper and feed its `authorUrl` column into this Actor.

### 🚀 How to use

1. Create a free Apify account with $5 credit: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the Douyin Profile Scraper and paste creator profile links, one per line.
3. Keep "Include latest posts" on for engagement averages, or turn it off for profile-only rows.
4. Set Max Items and click Start. The first profile takes about 30 seconds, each next one about 3.
5. Download the dataset as CSV, Excel, JSON or XML, or read it through the API.

A minimal run looks like this:

```json
{ "profileUrls": [{ "url": "https://www.douyin.com/user/MS4wLjABAAAAePhr9XGmGokc2XGCYzRq7kQFv7JyzOlfZ8hThXYhBgE" }], "maxItems": 50 }
```

### 💼 Business use cases

#### 🔍 KOL vetting

Paste a shortlist of creators and compare followers with average recent likes. A big audience with low recent likes is a warning sign before you pay for a post.

#### 🗺 Regional targeting

Switch on **Include IP region and location** when you have a lawful reason to process it, then use `ipLocation` to keep creators in the provinces you sell to and rank them by engagement.

#### 📊 Competitor and brand accounts

Track brand accounts weekly: followers, post count and the last post date show who is growing and who has gone quiet.

#### 🛍 Shop discovery

Filter on `hasShop` and `accountType` to find creators and businesses that sell directly on Douyin.

### 🔌 Automating Douyin Profile Scraper

- ⏰ **Schedules.** Refresh a creator list daily or weekly.
- 🔗 **Make and Zapier.** Send rows to Google Sheets, Airtable or your CRM.
- 💬 **Slack.** Alert your team when a creator crosses a follower milestone.
- 🔄 **Airbyte.** Load profiles into your warehouse.
- 🐙 **GitHub Actions.** Trigger runs from your pipeline through the API.
- 📁 **Google Drive.** Export each run as a spreadsheet automatically.

### 🌟 Beyond business use cases

- 🎓 **Research.** Study how Chinese creators grow and how often they post.
- 🙋 **Personal.** Keep an eye on the creators you follow.
- 🤝 **Non-profit.** Map public voices on a social topic by region.
- 🧪 **Experimentation.** Build a creator dataset with bios and engagement for modelling.

### 🤖 Ask an AI assistant about this scraper

Paste this page into ChatGPT, Claude or Gemini and ask things like "Which creators have the best likes per follower?" or "How do I flatten the latestPosts column into its own sheet?".

### ❓ Frequently Asked Questions

#### 🔑 Do I need a Douyin account or cookies?

No. Profiles are public, and the Actor reads them the way Douyin's own website does for a visitor who is not logged in.

#### 🔗 Where do I find a profile link?

Open the creator on www.douyin.com and copy the address (www.douyin.com/user/MS4wLjABAAAA...). Share links from the app (v.douyin.com/...) work too. The Douyin Search & Videos Scraper also returns `authorUrl` for every post it finds.

#### 🎬 Why only about 20 latest posts?

Douyin shows visitors who are not logged in only the first page of a creator's posts. The row also carries `postCount`, the creator's true total.

#### 📈 How are the averages calculated?

From the latest posts in the row, leaving out pinned posts, because pinned posts are often old hits that would inflate the average.

#### 📍 What is the IP region?

The province or country Douyin shows under the creator's name (IP属地), based on where they post from. It is personal data, so `ipLocation` and `location` read `Not Requested` unless you switch on **Include IP region and location** and have a lawful reason to process them.

#### 🔒 Are contact details included?

No. Emails, phone numbers, QQ/WeChat IDs and labelled business handles (for example 商务合作：xxx) found in bios and post captions are always replaced by `[removed]`. The Actor never delivers contact details.

#### 🏷 Why does a product code in a bio show as \[removed]?

For privacy, a standalone ID made of letters and digits in a bio (for example a WeChat ID written on its own) is treated as a possible contact handle and removed. That means a product or model code such as `RTX4090` in a bio may also appear as `[removed]`. Only bios are affected: post captions keep such codes.

#### 🔢 Are follower counts exact?

Yes, whole numbers straight from Douyin. If Douyin's main route ever refuses a request, the row falls back to Douyin's older public route, where followers are rounded to the thousand; `dataSource` tells you which one answered.

#### 🔒 What about private accounts?

The profile numbers are still returned and `isPrivate` is Yes, but a private account has no public posts to list.

#### 🧾 Am I charged for errors?

No. An invalid or deleted profile is written as an error row for transparency and never charged.

#### 🛡️ Do I need a proxy?

No. The Actor runs without one by default, and if Douyin does not answer it retries once through a residential exit by itself.

#### 🆔 Can I search by Douyin ID or name?

Not in this Actor. Find creators with the Douyin Search & Videos Scraper, then pass its `authorUrl` here.

### 🔌 Integrate with any app

Use the Apify API, the JavaScript and Python clients, webhooks, or ready-made integrations for Make, Zapier, Slack, Google Sheets, Airbyte and more to send Douyin profile data wherever you need it.

### 🔗 Recommended Actors

- [TikTok Profile Scraper](https://apify.com/parseforge/tiktok-profile-scraper) for TikTok creators and their videos.
- [TikTok Comments Scraper](https://apify.com/parseforge/tiktok-comments-scraper) for every comment under a TikTok video.
- [RedNote Notes Scraper](https://apify.com/parseforge/rednote-notes-scraper) for Xiaohongshu posts.
- [Weibo Scraper](https://apify.com/parseforge/weibo-scraper) for Chinese microblog posts.
- [TikTok Shop Scraper](https://apify.com/parseforge/tiktok-shop-scraper) for TikTok Shop products.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more social media Actors.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** independent tool, not affiliated with Douyin or ByteDance; only publicly available data is collected.

# Actor input Schema

## `profileUrls` (type: `array`):

Douyin creator profiles: www.douyin.com/user/\<sec\_uid> links, iesdouyin.com share links or v.douyin.com short links from the app.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `includeLatestPosts` (type: `boolean`):

Add the creator's latest posts (caption, date, likes, comments, shares, saves, cover) and the average engagement of the non-pinned ones to every profile row.

## `maxLatestPosts` (type: `integer`):

How many of the latest posts to keep. Douyin shows visitors who are not logged in about 20 posts per profile, pinned posts included.

## `includeSensitiveProfileFields` (type: `boolean`):

Off (default): ipLocation and location read Not Requested. On: they are filled from the creator's public profile. These are personal data, so turn this on only when you have a lawful reason to process them.

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

Apify proxy settings for the browser session.

## Actor input object example

```json
{
  "profileUrls": [
    {
      "url": "https://www.douyin.com/user/MS4wLjABAAAA8U_l6rBzmy7bcy6xOJel4v0RzoR_wfAubGPeJimN__4"
    }
  ],
  "maxItems": 10,
  "includeLatestPosts": true,
  "maxLatestPosts": 20,
  "includeSensitiveProfileFields": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Key fields

## `fullData` (type: `string`):

Complete dataset with all 28 fields

# 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 = {
    "profileUrls": [
        {
            "url": "https://www.douyin.com/user/MS4wLjABAAAA8U_l6rBzmy7bcy6xOJel4v0RzoR_wfAubGPeJimN__4"
        }
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/douyin-profile-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 = {
    "profileUrls": [{ "url": "https://www.douyin.com/user/MS4wLjABAAAA8U_l6rBzmy7bcy6xOJel4v0RzoR_wfAubGPeJimN__4" }],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/douyin-profile-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 '{
  "profileUrls": [
    {
      "url": "https://www.douyin.com/user/MS4wLjABAAAA8U_l6rBzmy7bcy6xOJel4v0RzoR_wfAubGPeJimN__4"
    }
  ],
  "maxItems": 10
}' |
apify call parseforge/douyin-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/douyin-profile-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/H4VbthxdKcfxLoLHa/builds/yCoBNMxQiX9kamw7m/openapi.json
