TikTok Profile Scraper
Pricing
from $2.00 / 1,000 scraped results
TikTok Profile Scraper
Extract usernames, display names, bios, followers, following, likes, video counts, profile photos, verification status, and privacy status from profile URLs or usernames. Supports , Apify Proxy, and batch exports.
Pricing
from $2.00 / 1,000 scraped results
Rating
0.0
(0)
Developer
Data Pilot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
π΅ TikTok Profile Scraper is a powerful Apify Actor designed to discover, track, and collect public TikTok Profile data directly from TikTok's own profile pages using a full browser engine. This tool provides comprehensive TikTok Profile intelligence including nickname, bio, follower count, following count, likes, video count, verification status, and profile picture for any accessible TikTok Profile. Whether you're building a creator dashboard, tracking competitor accounts, or conducting social media research, the TikTok Profile Scraper delivers actionable TikTok Profile insights efficiently.
With direct browser automation, embedded JSON state extraction, HTML metadata fallback, and reliable Apify Dataset delivery, the TikTok Profile Scraper ensures comprehensive TikTok Profile coverage across any list of usernames or profile links. It focuses on key TikTok Profile signals including followers, following, likes, and video count, making it an essential tool for social media research and creator intelligence.
π Table of Contents
- Features
- Data Source
- How It Works
- Input
- Output
- Technical Stack
- Data Fields
- Use Cases
- Quick Start
- Configuration
- Performance
- Important Notes
- License & Legal
π₯ Features
- Real Browser Rendering β Uses with headless Chromium to load each TikTok Profile exactly as a real visitor would.
- Flexible Input Handling β Accepts plain usernames,
@handles, or full TikTok Profile URLs and normalizes them automatically. - Embedded JSON State Extraction β Reads TikTok's own
__UNIVERSAL_DATA_FOR_REHYDRATION__script tag for accurate, structured TikTok Profile data. - HTML Metadata Fallback β Falls back to OpenGraph meta tags when the embedded JSON state isn't available on a TikTok Profile page.
- Full Engagement Metrics β Captures followers, following, likes, and video count for each TikTok Profile.
- 404 Detection β Automatically detects and skips TikTok Profile pages that no longer exist.
- Residential Proxy Support β Apify residential proxy routed through for reliable TikTok Profile access.
- Realistic Browser Fingerprint β Custom user agent and viewport to reduce detection while loading each TikTok Profile.
- Batch Processing β Scrape any number of TikTok Profile entries in a single run.
- Human-Like Pacing β Built-in delay between TikTok Profile page loads to reduce blocking.
- Real-Time Dataset Push β Pushes all collected TikTok Profile records to Apify Dataset in a single batch.
- Graceful Error Handling β Skips a failing TikTok Profile without stopping the whole run.
π Data Source
TikTok Public Profile Pages
- Authority: TikTok's own public-facing profile pages
- Access Method: Headless Chromium browser via , rendering
tiktok.com/@{username} - Coverage: Any public TikTok Profile reachable without login
- Data: Embedded JSON user/stats state, with OpenGraph metadata as fallback
- Access: Public pages, no API key required
- Update Frequency: Reflects each TikTok Profile's current live state at time of run
βοΈ How It Works
The TikTok Profile Scraper accepts a list of usernames or profile URLs, normalizes each into a clean handle, and drives a real headless Chromium browser to each TikTok Profile page. Once the page loads, the Actor evaluates JavaScript in the browser context to read TikTok's __UNIVERSAL_DATA_FOR_REHYDRATION__ script tag, extracting the structured userInfo object with full user and stats details. If that embedded state isn't available, the Actor falls back to parsing OpenGraph meta tags with BeautifulSoup. Every successfully scraped TikTok Profile record is collected and pushed to the Apify Dataset in a single batch at the end of the run.
Key Processing Steps:
- Input Parsing β Accept a list of usernames, handles, or full TikTok Profile URLs
- Username Normalization β Strip
@symbols and extract the username from full URLs - Proxy Setup β Configure Apify residential proxy and pass credentials into
- Browser Launch β Start headless Chromium with a realistic user agent and viewport
- Profile Loop β Iterate through each normalized TikTok Profile username
- Page Navigation β Load
tiktok.com/@{username}and wait for DOM content - 404 Check β Detect and skip missing TikTok Profile pages
- JSON State Extraction β Read the embedded
userInfoobject via in-page JavaScript - HTML Fallback β Parse OpenGraph metadata if the JSON state is unavailable
- Timestamp Tagging β Record scrape time per entry
- Rate Limiting β Apply a short delay between TikTok Profile loads
- Dataset Push β Push all collected records from the run in a single batch
Key Benefits:
- Pull TikTok Profile data for any public account without manual visits
- Detect missing or deactivated TikTok Profile pages automatically
- Monitor creator and brand accounts' TikTok Profile metrics over time
- Feed social media dashboards, research pipelines, or influencer-tracking tools
- Automate recurring TikTok Profile checks as follower or like counts change
π₯ Input
The Actor accepts the following input parameters:
| Field | Type | Default | Description |
|---|---|---|---|
profiles | array | (required) | List of TikTok Profile usernames, @handles, or full profile URLs. |
useApifyProxy | boolean | true | Enable Apify residential proxies. |
apifyProxyGroups | array | ["RESIDENTIAL"] | Proxy group configuration. |
Example Input:
{"profiles": ["tiktok","@nasa","https://www.tiktok.com/@natgeo"],"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}
Scrape a Single TikTok Profile:
{"profiles": ["natgeo"]}
Scrape from Full Profile URLs:
{"profiles": ["https://www.tiktok.com/@nasa","https://www.tiktok.com/@natgeo"]}
π€ Output
The Actor pushes TikTok Profile records with the following structure:
| Field | Type | Description |
|---|---|---|
username | string | The normalized TikTok Profile username used for the request |
full_name | string | Nickname (or unique ID) extracted from the TikTok Profile |
profile_url | string | The full TikTok Profile URL |
description | string | Bio/signature text on the TikTok Profile |
followers | integer/null | Follower count for the TikTok Profile |
following | integer/null | Following count for the TikTok Profile |
likes | integer/null | Total likes (hearts) received on the TikTok Profile |
video_count | integer/null | Number of videos posted on the TikTok Profile |
profile_pic | string | URL of the TikTok Profile picture |
is_verified | boolean | Whether the TikTok Profile has a verified badge |
is_private | boolean | Whether the TikTok Profile is private |
scraped_at | string | ISO 8601 timestamp of when the record was scraped |
Example TikTok Profile Record:
{"username": "natgeo","full_name": "National Geographic","profile_url": "https://www.tiktok.com/@natgeo","description": "Experience the world through the eyes of National Geographic.","followers": 5200000,"following": 120,"likes": 48000000,"video_count": 1450,"profile_pic": "https://p16-sign-va.tiktokcdn.com/...","is_verified": true,"is_private": false,"scraped_at": "2026-08-05T09:00:00+00:00"}
π§° Technical Stack
- Browser Automation: Playwright with headless Chromium for real TikTok Profile rendering
- State Extraction: In-page JavaScript evaluation of TikTok's
__UNIVERSAL_DATA_FOR_REHYDRATION__state - HTML Parsing: BeautifulSoup for OpenGraph metadata fallback
- Date Handling:
datetimewith timezone-aware UTC timestamps - Async:
asynciofor non-blocking, multi-profile processing - Proxy: Apify Proxy with
RESIDENTIALconfiguration, wired into Playwright's proxy settings - Logging: Apify Actor logging system
- Platform: Apify Actor serverless environment
π Data Fields Explained
Identity
- username: The normalized handle used to build the TikTok Profile URL
- full_name: The nickname or unique ID shown on the TikTok Profile
Engagement Metrics
- followers / following / likes / video_count: Core TikTok Profile growth and activity metrics pulled from the embedded stats object
Profile Details
- description: The bio/signature text on the TikTok Profile
- profile_pic: Direct link to the TikTok Profile picture
- is_verified / is_private: Account verification and privacy status
π― Use Cases
- Creator Research β Evaluate follower and engagement metrics before an influencer partnership
- Competitor Tracking β Monitor a competitor's TikTok Profile growth over time
- Social Media Auditing β Verify account authenticity, verification, and privacy status
- Marketing Analytics β Feed TikTok Profile metrics into campaign dashboards
- Trend Research β Study public TikTok Profile activity across a niche
- Brand Monitoring β Track how partner or affiliate accounts present themselves
- OSINT Research β Gather publicly available TikTok Profile metadata for investigations
π Quick Start
1. Prepare Input
Go to Apify Console and enter:
{"profiles": ["nasa", "natgeo"]}
2. Run the Actor
Click Start. The Actor will:
- Normalize each username or URL into a clean TikTok Profile handle
- Launch a headless browser and visit each TikTok Profile page
- Extract embedded JSON state or fall back to OpenGraph metadata
- Push all results to the Dataset
3. Monitor Progress
Console shows:
Initializing TikTok Scraper for 2 account(s)...[TikTok Scraper] Navigating to profile: '@nasa'-> Successfully extracted JS state for @nasa[TikTok Scraper] Navigating to profile: '@natgeo'-> Successfully extracted JS state for @natgeoDone! Successfully saved 2 TikTok profile(s) to Dataset.
4. View & Download Results
- Results Tab: All TikTok Profile records
- Export: JSON, CSV, Excel, or HTML
- Filter: By follower count, verification, or privacy status
- API Access: Available via the Apify API
βοΈ Configuration
Single TikTok Profile:
{"profiles": ["natgeo"]}
Mixed usernames and URLs:
{"profiles": ["@nasa","https://www.tiktok.com/@natgeo"]}
Run without proxy:
{"profiles": ["natgeo"],"useApifyProxy": True}
π Performance
Processing Speed
- One full browser page load per TikTok Profile
- Fixed ~4 second settle time per page load plus a 2 second delay between profiles
- Scales linearly with the number of usernames/URLs submitted
Resource Usage
- Memory: Moderate, due to running a real Chromium browser instance
- Network: One page navigation per TikTok Profile, plus associated page assets
- Proxy: One residential proxy session shared across the browser context for the run
β οΈ Important Notes
Legal & Compliance
- Fair Use: Respects TikTok's public pages and applies pacing delays between requests
- Public Data Only: Retrieves only publicly visible TikTok Profile data exposed on the rendered page
- Privacy: Collecting profile data may be subject to privacy regulations and TikTok's Terms of Service β use only for legitimate purposes
- Legal: Not legal advice β consult qualified professionals before using this data for compliance-sensitive decisions
Data Quality
- Freshness: Reflects each TikTok Profile's live state at time of run
- Completeness: Follower/likes/video counts depend on the embedded JSON state being available; the HTML fallback returns fewer fields
- Accuracy: Sourced directly from TikTok's own rendered pages
- Verification: Cross-check high-stakes figures against the live TikTok app or website
Best Practices
- Always configure a residential proxy for the most reliable TikTok Profile access
- Use full profile URLs when a username alone is ambiguous
- Keep batch sizes reasonable, since each TikTok Profile requires a full browser page load
- Re-run periodically to track changes in engagement metrics
- Expect
followers,following, andlikesto benullwhen the run falls back to HTML parsing
π License & Legal
Terms of Use:
- Use for legitimate research, marketing, and analytics purposes
- Respect TikTok's Terms of Service
- Do not use for unsolicited contact, harassment, or unlawful surveillance
- Use TikTok Profile data responsibly and in compliance with applicable privacy laws
Disclaimer: TikTok Profile Scraper is provided as-is for research and analytics purposes. Users are responsible for compliance with TikTok's ToS and all applicable laws. This is not legal advice.
βοΈ TikTok Profile Excellence
This Actor is optimized for TikTok Profile research with:
- β Real browser rendering for accurate data
- β Flexible username/URL input handling
- β Embedded JSON state extraction with HTML fallback
- β 404 and missing-profile detection
- β Real-time Dataset push
- β Production-ready code