TikTok Profile Scraper
Pricing
from $1.00 / 1,000 profiles
TikTok Profile Scraper
Extract TikTok profile data: followers, following, total likes, video count, bio, bio link, verified status and business category. One clean record per profile, fast and low-cost. No login needed. Built for influencer research and competitor tracking. Failed profiles are free.
Pricing
from $1.00 / 1,000 profiles
Rating
0.0
(0)
Developer
Arishma
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Extract public TikTok profile data: followers, following, total likes, video count, bio, bio link, verification, business category and more. One record per profile, fast and cheap. Pay only for the profiles you get.
No TikTok account or login required.
Need the profile's posts too (plays, likes, comments, music, hashtags)? Use the TikTok Post Scraper Actor.
How it works
- Every profile is fetched over plain HTTP: no browser, little proxy traffic, a few hundred milliseconds per profile. With Apify RESIDENTIAL proxy (the default), each profile is tried over Apify datacenter proxy first and only goes through residential if TikTok blocks it there.
- Profiles that still fail are retried in a stealth browser with a new session and proxy IP. The browser needs at least 1 GB of memory. On the default 256 MB, blocked profiles get extra HTTP retries instead, and any that still fail are returned as failed (not charged) with a note.
Each record says which method was used in scrapedWith: "http-datacenter", "http" or "browser".
Memory
The Actor runs on 256 MB by default, which is plenty for HTTP scraping. Choose 1 GB if you want the browser fallback for profiles that are blocked over HTTP.
Pricing
This Actor uses Pay Per Event (PPE) monetization.
| Event | Price |
|---|---|
profile-scraped: one profile saved to the dataset | $0.001 |
apify-actor-start: run start (per GB of memory) | $0.00005 |
- 1,000 profiles = $1.00
- Apart from a tiny start fee per run, you pay only for profiles saved to your dataset.
- Failed profiles (not found, blocked) are not charged.
- Set a maximum cost per run in the Apify Console. The Actor saves only as many profiles as your limit allows, then stops.
What it extracts
- Username, nickname, ID, secUid and profile URL
- Verified, private and organization flags
- Bio and bio link
- Avatar
- Followers, following, friends, total likes, video count and liked videos
- Account creation date and language
- Business account flag and category, TikTok Shop seller flag
- Live status
Counts are TikTok's exact numbers (e.g. 2019001), not the rounded ones shown on the page (2M).
Input
| Field | Default | Description |
|---|---|---|
profiles | Profile URLs or usernames (https://www.tiktok.com/@name, @name, name). Post URLs (https://www.tiktok.com/@name/video/123) work too: the author's profile is scraped. | |
proxy | Apify Proxy (RESIDENTIAL) | Proxy configuration. If no proxy is set, or Apify Proxy is off without custom proxy URLs, Apify RESIDENTIAL proxy is used automatically. |
Example
{"profiles": ["https://www.tiktok.com/@marksandspenceruk","@hyundaiuk"]}
Output
Results are written to the default Apify Dataset and can be exported as JSON, CSV, XLSX, XML, or retrieved through the Apify API.
The first fields match the authorMeta object of the TikTok Post Scraper, so profile and post data can be joined directly.
Example profile record:
{"id": "6762114897687020550","name": "marksandspenceruk","profileUrl": "https://www.tiktok.com/@marksandspenceruk","nickName": "Marks and Spencer","verified": true,"signature": "","bioLink": "https://www.marksandspencer.com/l/love-that","avatar": "https://p16-common-sign.tiktokcdn.com/...","privateAccount": false,"following": 81,"friends": 64,"fans": 210401,"heart": 2019001,"video": 606,"digg": 0,"secUid": "MS4wLjABAAAAeMN3Tw54UCIvc7rwrz123gxTLTs-ZcccxokgQnZwzxt8sMqIDGnZrZgaWo-autvu","createTime": 1574428258,"createTimeISO": "2019-11-22T13:10:58.000Z","language": "en","isOrganization": true,"commerceUser": true,"commerceCategory": "Shopping & Retail","ttSeller": false,"isLive": false,"roomId": null,"input": "https://www.tiktok.com/@marksandspenceruk","scrapedWith": "http"}
Notes:
- Private profiles are returned with
privateAccount: trueand their public counts. digg(liked videos) is0when the user hides their likes.- Media URLs (avatar) are signed by TikTok and expire after some time.
- Counts are as shown by TikTok at the time of the run.
Failed profiles are returned with status: "failed" and a note explaining why. They are not charged:
{"input": "@doesnotexist","status": "failed","note": "Profile not found.","isProxyUsed": true}
Important
This Actor collects only publicly available information. Users are responsible for complying with TikTok's terms, applicable laws, and privacy/data-protection requirements.
The Actor is not affiliated with, endorsed by, or sponsored by TikTok or ByteDance.