TikTok Profile Scraper – Bio, Stats & Playlists avatar

TikTok Profile Scraper – Bio, Stats & Playlists

Pricing

$1.00 / 1,000 tiktok profile snapshots

Go to Apify Store
TikTok Profile Scraper – Bio, Stats & Playlists

TikTok Profile Scraper – Bio, Stats & Playlists

Collect public TikTok profile snapshots in bulk from usernames or public profile URLs, including bio, avatars, verification, follower and video stats, public playlists, and contact hints from the visible profile.

Pricing

$1.00 / 1,000 tiktok profile snapshots

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Get structured snapshots of public TikTok profiles from usernames or profile URLs. The Actor is designed for single profiles as well as large lists, and saves one clear result per profile in your Apify Dataset.

Price

$0.001 per successfully saved profile — $1 for 1,000 successful profiles.

The price includes the platform usage for this Actor. Unsuccessful profiles are kept in the results for review and are not charged.

What this Actor does

Use it to collect the public information shown on TikTok profile pages in a consistent, exportable format.

Typical uses include:

  • Creator and influencer research.
  • Lead qualification and public business-contact discovery.
  • Competitor and audience benchmarking.
  • Enriching creator, agency or marketing databases.
  • Finding profiles by username or by a list of public profile URLs.
  • Periodic snapshots for monitoring changes in public profile information.

This Actor collects profile information only. It does not collect a user's complete video library, followers, following list, comments, likes, reposts or private content.

Information returned

Each successful result contains the following groups of information when TikTok makes the value available publicly:

GroupMain fieldsWhat they mean
Identityusername, nickname, profileUrl, userId, secUid, shortIdPublic identifiers and the canonical profile URL.
Biographysignature, bioLinkThe public bio and the normalized link shown in the profile.
Imagesavatars.larger, avatars.medium, avatars.thumbPublic avatar URLs in the available sizes.
VerificationverifiedWhether the profile is publicly marked as verified.
Location and languageregion, languagePublic values when exposed by TikTok.
Audience metricsstats.followers, stats.following, stats.friends, stats.likes, stats.videosPublic profile counters. TikTok may return rounded or empty values.
Derived metricstats.likesPerFollowerLikes divided by followers when both counters are available.
Account informationaccount.*Public account and visibility flags, including private-account, organization and profile-change information.
Profile permissionspermissions.*Public comment, download, duet, stitch and profile-tab settings when available.
Business and commercecommerce.*Public seller, commerce and playlist-related flags when available.
Live profilelive.*Public live-room information when available.
Playlistsplaylists[]Public playlists exposed by the profile, including name, description, video count, cover and identifier.
Public contact hintscontact.*Email, phone, Instagram, YouTube and public-link hints found only in the bio or bio link.
Processing resultsuccess, status, retrievedAt, errorCode, errorMessageWhether the profile was collected and, if not, the reason shown for that profile.

Contact hints are not external enrichment and are not verified. They are simple signals extracted from the public bio and the public bio link, so treat them as leads to review rather than confirmed business contacts.

How to use it in Apify

  1. Open the Actor and go to the Input tab.
  2. Add one or more TikTok usernames or public profile URLs in TikTok profiles.
  3. Choose the optional fields you want to include.
  4. Click Start.
  5. Open the Dataset tab to review, filter or export the results as JSON, CSV, Excel or other available formats.

The input accepts:

  • @username, for example @tiktok.
  • username, for example tiktok.
  • A public profile URL, for example https://www.tiktok.com/@tiktok.

Video URLs, empty values and URLs from other websites are not valid profile inputs. Duplicate usernames are removed without charging a second time for the duplicate.

Example input

{
"profiles": [
"@tiktok",
"https://www.tiktok.com/@scout2015"
],
"includePlaylists": true,
"extractPublicContactHints": true
}

Input options

OptionDefaultDescription
profilesRequiredList of TikTok usernames or public profile URLs. At least one value is required.
startIndex0Position at which to continue in a large, deduplicated list. Use the nextStartIndex shown in the previous run's status message.
maxProfilesPerRun1000Maximum profiles processed in one run. The Actor has no 100-profile limit. For lists larger than 1,000, continue with startIndex in additional runs.
includePlayliststrueIncludes public playlists when TikTok exposes them. A missing playlist does not invalidate the profile result.
extractPublicContactHintstrueIncludes public-only email, phone, Instagram, YouTube and link hints from the bio and bio link.

Processing large lists

There is no artificial 100-profile limit. A single run can process up to 1,000 profiles. To process a larger list:

  1. Run the first batch with the full list and maxProfilesPerRun: 1000.
  2. Check the run status for nextStartIndex.
  3. Run the same list again with that value in startIndex.
  4. Repeat until the status no longer reports a next index.

Already saved results remain available if a run stops early because of a temporary TikTok restriction, a timeout or the configured spending limit.

Example successful result

{
"success": true,
"status": "ok",
"retrievedAt": "2026-08-17T12:00:00Z",
"input": "@example_creator",
"sourceType": "username",
"profileUrl": "https://www.tiktok.com/@example_creator",
"username": "example_creator",
"userId": "123456789",
"nickname": "Example Creator",
"signature": "Travel, food and daily ideas | hola@example.com",
"bioLink": "https://example.com/contact",
"avatars": {
"larger": "https://example.com/avatar-large.jpg",
"medium": "https://example.com/avatar-medium.jpg",
"thumb": "https://example.com/avatar-thumb.jpg"
},
"verified": false,
"stats": {
"followers": 100000,
"following": 250,
"friends": 80,
"likes": 2500000,
"diggCount": 0,
"videos": 120,
"likesPerFollower": 25.0
},
"contact": {
"emails": ["hola@example.com"],
"phones": [],
"instagramHandle": "example_creator",
"youtubeChannel": null,
"normalizedBioLink": "https://example.com/contact",
"bioLinkDomain": "example.com",
"bioLinkType": "contact",
"contactChannel": "email",
"hasPublicContactHint": true,
"isBusinessLike": true
},
"playlists": [
{
"id": "12345",
"name": "Travel ideas",
"description": "Public travel videos",
"videoCount": 12,
"cover": "https://example.com/playlist-cover.jpg"
}
]
}

The exact values and optional fields depend on what TikTok exposes for the profile at the time of the run. Empty values are normal and do not necessarily indicate a problem.

Errors and incomplete profiles

The Actor writes a result row for every profile that it starts processing. A failed row has success: false, status: "error", an errorCode and an errorMessage.

Common situations include:

  • PROFILE_NOT_FOUND: the profile does not exist or is no longer available.
  • PROFILE_PAYLOAD_MISSING: the page did not expose usable public profile data.
  • CHALLENGE_OR_BLOCK or RATE_LIMITED: TikTok temporarily asked the Actor to stop.
  • REQUEST_TIMEOUT: the profile took longer than the selected timeout.
  • HTTP_ERROR or REQUEST_FAILED: the profile could not be retrieved at that moment.

Error rows are useful for auditing and are not charged. A playlist-specific problem appears in playlistFetch while the main profile can still be a successful result.

Data limitations

  • Only information visible through public profile pages is returned.
  • Private videos, private contact details and restricted account data are not collected.
  • TikTok counters can be rounded, delayed, region-dependent or unavailable.
  • Playlists are returned only when they are public and exposed for that profile.
  • Contact hints come only from the visible bio and bio link; the Actor does not verify ownership or enrich contacts from external sources.
  • The result is a snapshot taken at run time, not a historical guarantee of how the profile looked previously.

Frequently asked questions

Can I use a username instead of a URL?

Yes. Both @username and username are supported, as well as a public TikTok profile URL.

Can I process more than 100 profiles?

Yes. The per-run limit is 1,000 profiles, and larger lists can be continued in batches using startIndex and nextStartIndex.

Does it scrape TikTok videos?

No. It captures profile-level information and public playlist summaries. Use a video-focused Actor when you need individual videos or post-level data.

Why is a playlist empty even though the profile exists?

The profile may not have public playlists, or TikTok may not have exposed them at the time of the run. The profile result can still be valid.

Are the email and phone values guaranteed to work?

No. They are public hints found in the bio, not verified contacts. Review them and use them in accordance with applicable law and platform rules.

Do I need to provide a TikTok login?

No. The Actor is intended for publicly available profile information and does not require you to provide a TikTok account.

Responsible use

Use the Actor only with public information and for lawful purposes. Respect TikTok's terms, applicable privacy and marketing laws, and the rights of the people represented in the data. Do not use public contact hints for unsolicited messages or campaigns without the required permission.