Douyin Profile Scraper avatar

Douyin Profile Scraper

Pricing

from $4.99 / 1,000 profiles

Go to Apify Store
Douyin Profile Scraper

Douyin Profile Scraper

Extract Douyin profile data with exact follower, following, video, and like counts, verification, stable IDs, and public profile links. Optionally collect public posts with engagement, media, music, and hashtags in a separate typed dataset.

Pricing

from $4.99 / 1,000 profiles

Rating

0.0

(0)

Developer

Happy B

Happy B

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

What is Douyin Profile Scraper?

Douyin Profile Scraper extracts public Douyin (抖音 / Chinese TikTok) profile data from profile URLs, share links, or stable sec_user_id values. It can also collect each account's public post history with engagement, media, music, hashtag, and embedded creator fields.

Every successful account is written to a typed Profiles dataset. When Include posts is enabled, posts are written to a separate typed Posts dataset, so exports never mix unrelated row shapes.

No Douyin login, cookie, browser, or proxy configuration is required from you.

Why use this Douyin profile scraper?

  • A profile is valuable on its own. Get up to 32 typed public profile fields without paying for or waiting on post history.
  • Posts are strictly optional. Enable them only when you need the 54-field content, engagement, media, music, hashtag, and creator context contract.
  • Get exact numbers. Followers, likes, posts, plays, comments, shares, collections, and downloads are integers—not shortened values such as 1.2M.
  • Keep large IDs intact. Account and post IDs are strings, preventing precision loss in JavaScript and spreadsheet pipelines.
  • Use clean output tabs. Profiles and Posts are separate typed datasets, while each post embeds flat profile context so it works independently downstream.
  • Paste what Douyin gives you. Use a profile URL, a share URL, a bare sec_user_id, or mobile share text containing one Douyin link.

How to scrape a Douyin profile

  1. Add one or more Douyin profile URLs, share links, or sec_user_id values.
  2. Leave Include posts off for profile-only research.
  3. Turn it on to collect public posts and choose a maximum per profile.
  4. Run the Actor and open the Profiles or Posts output.

Input example

{
"profileUrls": [
"https://www.douyin.com/user/MS4wLjABAAAA..."
],
"includePosts": true,
"maxPostsPerProfile": 100
}

Duplicate inputs are removed before scraping.

Accepted profile inputs

  • Full profile URL: https://www.douyin.com/user/MS4wLjAB...
  • Profile share URL: https://v.douyin.com/...
  • Bare sec_user_id: MS4wLjAB...
  • Douyin mobile share text containing exactly one supported HTTPS profile/share URL

Only HTTPS links on Douyin and iesdouyin domains are accepted. Unrelated links fail before any paid profile request.

What profile data can I extract?

FieldDescription
sourceProfileInputNormalized input that produced the row
uid, secUid, shortIdNumeric, stable encoded, and short account IDs
uniqueIdPublic Douyin ID or handle
nickname, signatureDisplay name and public biography
avatarThumbUrl, avatarMediumUrl, avatarLargerUrlObserved avatar variants
avatarUrl, profileUrlDerived preferred avatar and canonical profile link
followerCount, followingCountCounts reported by Douyin
awemeCount, totalFavoritedPublished posts and total likes received
verified, enterpriseVerifyReason, customVerify, verificationTypeObserved verification values
privateAccount, commerceUserNormalized account flags
gender, region, location, languageObserved profile attributes when available
insId, twitterId, youtubeChannelIdLinked account identifiers when published
liveStatusPublic live-broadcast state when available
scrapeTimestampUTC time when the row was produced

Fields Douyin does not publish for an account are omitted.

The output follows the published Profiles dataset schema. The example below is illustrative and does not represent a specific person or captured live row.

Profile output example

{
"sourceProfileInput": "MS4wLjABAAAA...",
"uid": "68141954464",
"secUid": "MS4wLjABAAAA...",
"uniqueId": "example_creator",
"nickname": "示例用户",
"signature": "公开简介",
"followerCount": 125430,
"followingCount": 318,
"awemeCount": 242,
"totalFavorited": 3870000,
"verified": false,
"profileUrl": "https://www.douyin.com/user/MS4wLjABAAAA...",
"scrapeTimestamp": "2026-08-26T12:00:00.000Z"
}

Optional public post history

Each post row can include:

  • Post ID, caption, canonical link, and publication time
  • Play, like, comment, share, collection, and download counters as reported by Douyin
  • Video, cover, or slideshow image URLs when available
  • Media type, dimensions, and duration
  • Music ID, title, author, URL, and hashtags when available
  • The profile's IDs, name, bio, counters, verification, region, location, and language embedded as flat profile... fields
  • sourceProfileInput and scrapeTimestamp

Embedding creator fields makes every post row usable on its own in a warehouse or spreadsheet.

Post output example

{
"awemeId": "7530000000000000000",
"description": "示例作品",
"createTimeIso": "2026-08-20T09:30:00.000Z",
"playCount": 928430,
"likeCount": 52800,
"commentCount": 1640,
"shareCount": 3900,
"collectCount": 7200,
"downloadCount": 120,
"mediaTypeName": "video",
"videoUrl": "https://example.com/video.mp4",
"profileUniqueId": "example_creator",
"profileFollowerCount": 125430,
"sourceProfileInput": "MS4wLjABAAAA...",
"scrapeTimestamp": "2026-08-26T12:00:00.000Z"
}

Media URLs can be signed or temporary. Download media you are entitled to retain soon after the run.

Douyin can report zero when a counter is unavailable. The Actor preserves the reported value and does not estimate a replacement.

Input reference

ParameterTypeDefaultLimitsDescription
profileUrlsstring[]required1–100Profile URLs, share links, or sec_user_id values
includePostsbooleanfalseCollect public posts in the Posts dataset
maxPostsPerProfileinteger501–5,000Maximum posts per profile

Reliable results and billing

Interrupted runs can continue without duplicating profiles or posts already delivered. Charges track rows visible in the Profiles and Posts datasets. If a result cannot be validated, the run reports a clear sanitized error instead of returning questionable data.

How much does scraping Douyin profiles cost?

Profiles and posts are priced separately. You pay once for each returned profile and once for each returned post. Enabling posts does not change the profile price, and interrupted runs do not charge the same delivered row twice.

Profile result

Apify tierPer profilePer 1,000 profiles
Free$0.00799$7.99
Bronze$0.00599$5.99
Silver$0.00549$5.49
Gold$0.00499$4.99

Post result

Apify tierPer postPer 1,000 posts
Free$0.00799$7.99
Bronze$0.00599$5.99
Silver$0.00549$5.49
Gold$0.00499$4.99

An additional $0.001 run-start charge applies.

Platinum and Diamond users receive the listed Gold price.

Example on the Free tierEstimated cost
10 profiles only$0.081
1 profile + 50 posts$0.408
10 profiles + 50 posts each$4.076

Examples include the run-start charge. You are charged only for returned rows, and the Actor respects the run's maximum charge.

Common use cases

  • Influencer and competitor profile audits
  • Exact audience and publishing snapshots
  • Public creator-content catalogs
  • Engagement benchmarking
  • Scheduled monitoring and archival workflows
  • Enriching creator IDs returned by the Douyin Creator Scraper

Integrations

Use Apify Schedules and Webhooks for monitoring, or send Profiles and Posts to Make, Zapier, Google Sheets, Slack, a warehouse, or your own API client. Export formats include JSON, CSV, Excel, XML, HTML, and JSONL.

FAQ

Are private profiles supported?

Publicly visible profile fields may still be available. Private posts are not returned.

Why do I always get a profile row when posts are enabled?

The profile lookup is a useful, separately priced result and lives in the Profiles dataset. Posts are optional add-on results in the Posts dataset.

What happens when a profile has no public posts?

The profile row is still returned. The Posts dataset contains no row for that account, so there is no post charge.

Can I schedule profile monitoring?

Yes. Save an Actor task, attach a schedule, and compare the reported counters and scrapeTimestamp values across datasets.

ActorBest for
Douyin Creator ScraperFind creators when you do not yet know their profile URL or ID
Douyin Trend ScraperExport current topics or compare keyword popularity over time

This Actor extracts publicly available data, some of which can be personal data. You are responsible for your lawful basis, notices, retention, security, outreach, profiling, copyright handling, and data-subject rights. Review Douyin's User Service Agreement, Privacy Policy, and all laws applicable to your use case.

Support

For a bug or feature request, open an Apify issue. Include the run ID, affected profile input, expected behavior, and input with sensitive values removed.