Tiktok Profile Scraper
Pricing
$19.99/month + usage
Tiktok Profile Scraper
Scrape TikTok profile data in seconds π΅π€ Extract usernames, bios, followers, following, likes, profile links, videos, and more from public profiles. Perfect for influencer research, competitor analysis, audience insights, and creator discovery. Get valuable TikTok data fast π
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapAPI
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Tiktok Profile Scraper
Tiktok Profile Scraper is a fast, reliable Apify actor that extracts public TikTok profile posts and engagement data at scale. It solves the manual, error-prone task of collecting post-level insights by automating profile parsing, pagination, sorting, and filtering β ideal for marketers, developers, data analysts, and researchers. With configurable sorting, time windows, and engagement thresholds, it enables large-scale influencer research, competitive monitoring, and audience analysis β all saved to your Apify dataset in real time.
What data / output can you get?
Below are examples of the structured fields this actor saves for each post it collects. Fields use real keys exactly as they appear in the output.
| Data type | Description | Example value |
|---|---|---|
| id | Unique post identifier | "7330123456789012345" |
| text | Post caption/description | "New video just dropped! π" |
| createTimeISO | Post creation time in ISO format | "2026-03-01T12:34:56Z" |
| webVideoUrl | Public URL to the post | "https://www.tiktok.com/@mrbeast/video/7330123456789012345" |
| authorMeta.name | Authorβs username | "mrbeast" |
| authorMeta.avatar | Medium avatar URL | "https://p16-sign-va.tiktokcdn.com/.../avatar-200x200.jpeg" |
| videoMeta.duration | Video duration in seconds | 21 |
| diggCount | Number of likes/hearts | 152340 |
| playCount | Number of views | 4821930 |
| commentCount | Number of comments | 1287 |
| musicMeta.musicName | Music title (or βoriginal soundβ) | "original sound" |
| hashtags | Extracted hashtags (array of objects) | [{"name":"giveaway"}] |
Bonus metadata includes nested authorMeta (e.g., verified, follower counts), musicMeta (author, original, playUrl), videoMeta (dimensions, cover URLs, subtitleLinks), locationMeta, mentions, effectStickers, and flags such as isPinned, isSlideshow, and isSponsored. Results are stored in your Apify dataset and mirrored to an actor.json file for convenient consumption.
Key features
- β‘ Robust proxy fallback & resilience β Automatic proxy handling escalates from direct to datacenter to residential on 403/429 or empty/blocked responses, with residential retries for tough pages.
- π Flexible video sorting β Choose profileSorting: latest, oldest, or popular to organize posts by chronology or engagement signal.
- π§° Precise filters β Limit by date range (oldestPostDateUnified, newestPostDate), engagement thresholds (mostDiggs, leastDiggs), and excludePinnedPosts to avoid pinned content.
- π¦ Real-time dataset streaming β Posts are pushed to the Apify dataset as theyβre scraped, plus an actor.json file is saved at the end of the run.
- π₯ Multi-profile input β Supply multiple usernames in profiles to process accounts in one run.
- π‘οΈ Controlled access β Configure proxyConfiguration to fit your environment; the actor starts with no proxy by default and escalates only when needed.
- π§βπ» Developer-friendly β Clear JSON inputs/outputs, deterministic field names, and predictable sorting/filtering behavior for pipeline integration.
How to use Tiktok Profile Scraper - step by step
- Sign in to Apify and open the Tiktok Profile Scraper actor.
- Add input data:
- In profiles, enter TikTok usernames (one per line). β@β is optional; the actor normalizes it.
- Optionally adjust profileSorting (latest, popular, oldest) and resultsPerPage.
- Optionally set date filters (oldestPostDateUnified, newestPostDate) and engagement filters (mostDiggs, leastDiggs).
- Toggle excludePinnedPosts if you want to skip pinned videos.
- Configure proxyConfiguration if needed; by default, the actor starts without a proxy and escalates automatically only when blocked.
- Start the run. The actor fetches each profile page, extracts initial posts, and uses TikTokβs item_list API for additional pagination when available.
- During the run, items are streamed into your Apify dataset.
- After completion, the actor saves a consolidated actor.json file with all unique posts collected.
- Download results from the Apify dataset or retrieve the actor.json file from the runβs storage for your workflows.
Pro tip: Popular sorting combined with date filters may produce limited results due to how TikTok returns popularity-based pages. Consider using latest or oldest when applying time windows.
Use cases
| Use case name | Description |
|---|---|
| Influencer discovery & vetting | Identify creators by scraping recent posts and engagement (likes, views, comments) to qualify partners quickly. |
| Competitor content tracking | Monitor competitor profiles with consistent sorting and filters to analyze cadence and performance over time. |
| Trend & sound analysis | Collect musicMeta and hashtags to study content themes and sound usage across posts from target creators. |
| Campaign performance snapshots | Pull a filtered set of posts within a date window to measure impact before and after campaigns. |
| Audience insights for research | Aggregate post-level engagement metrics across multiple profiles for academic or market research. |
| Data pipeline ingestion (API/ETL) | Feed deterministic JSON into downstream systems; results are pushed to datasets and actor.json for ingestion. |
Why choose Tiktok Profile Scraper?
- π― Precision-first scraping: Extracts structured, post-level data with stable field names and nested metadata.
- π Sorting & filtering control: Apply time windows and engagement thresholds; choose latest, oldest, or popular ordering.
- π Scales to many profiles: Accepts multiple usernames and streams results as theyβre found.
- π§βπ» Built for developers: Clean JSON I/O and predictable behavior make it easy to integrate into pipelines and analytics.
- π Safe & reliable: Starts direct and escalates to datacenter/residential proxies on blocks for maximum success.
- πΎ Storage flexibility: Writes to the Apify dataset in real time and produces a final actor.json file for convenience.
- π§© Better than manual/browser tools: No unstable extensions; production-grade network handling and dataset storage.
Is it legal / ethical to use Tiktok Profile Scraper?
Yes β when done responsibly. This actor extracts publicly available profile content and does not log in or access private profiles. Users should:
- Scrape only public data and respect platform terms.
- Avoid collecting sensitive or non-public information.
- Ensure compliance with applicable regulations (e.g., GDPR/CCPA) and internal policies.
- Consult legal counsel for edge cases in your jurisdiction or use case.
The tool does not access private profiles or authenticated data and operates without login.
Input parameters & output format
Example input (JSON)
{"profiles": ["mrbeast", "charlidamelio"],"profileScrapeSections": ["videos"],"profileSorting": "latest","resultsPerPage": 20,"oldestPostDateUnified": "2026-03-01","newestPostDate": "0","mostDiggs": 500000,"leastDiggs": 10000,"excludePinnedPosts": false,"proxyConfiguration": {"useApifyProxy": false}}
Parameters
| Field | Type | Description | Default | Required |
|---|---|---|---|---|
| profiles | array | Add TikTok usernames you want to scrape (one per line). Examples: mrbeast, khaby.lame, charlidamelio | Not set | Yes |
| profileScrapeSections | array | Choose which content to scrape: Videos (original posts) or Reposts. | ["videos"] | No |
| profileSorting | string | Choose how videos are sorted: Latest | Popular | Oldest. Note: Date filters work only with Latest and Oldest. |
| resultsPerPage | integer | Maximum number of posts to scrape from each profile. | 20 | No |
| oldestPostDateUnified | string | Start date filter (videos published after). Accepts YYYY-MM-DD or relative days (e.g., "7"). | Not set | No |
| newestPostDate | string | End date filter (videos published before). Accepts YYYY-MM-DD or relative days (e.g., "0"). | Not set | No |
| mostDiggs | integer | Maximum hearts filter (<). Disabled when date filters are enabled. | Not set | No |
| leastDiggs | integer | Minimum hearts filter (β₯). Disabled when date filters are enabled. | Not set | No |
| excludePinnedPosts | boolean | Skip pinned posts. | false | No |
| proxyConfiguration | object | Configure proxies for secure scraping. Falls back automatically when blocked. | Not set | No |
Notes:
- The actor normalizes usernames with or without β@β.
- Internally, date inputs are parsed into Unix timestamps for filtering.
- Sorting applies to videos; the actor sets fromProfileSection to "videos" in outputs.
Example output (JSON)
[{"id": "7330123456789012345","text": "New video just dropped! π","textLanguage": "en","createTime": 1740832496,"createTimeISO": "2026-03-01T12:34:56Z","isAd": false,"authorMeta": {"id": "1234567890","name": "mrbeast","profileUrl": "https://www.tiktok.com/@mrbeast","nickName": "MrBeast","verified": true,"signature": "","bioLink": null,"originalAvatarUrl": "https://p16-sign-va.tiktokcdn.com/.../avatar-720x720.jpeg","avatar": "https://p16-sign-va.tiktokcdn.com/.../avatar-200x200.jpeg","commerceUserInfo": { "commerceUser": false },"privateAccount": false,"roomId": "","ttSeller": false,"followDatasetUrl": null,"following": 0,"friends": 0,"fans": 0,"heart": 0,"video": 0,"digg": 0},"musicMeta": {"musicName": "original sound","musicAuthor": "MrBeast","musicOriginal": true,"playUrl": "https://sf16-ies-music-sg.tiktokcdn.com/obj/...mp3","coverMediumUrl": "https://p16.tiktokcdn.com/.../cover.jpg","originalCoverMediumUrl": "https://p16.tiktokcdn.com/.../cover.jpg","musicId": "7123456789012345678"},"locationMeta": {"address": "","city": "","cityCode": "","countryCode": "","locationName": "","locationId": ""},"webVideoUrl": "https://www.tiktok.com/@mrbeast/video/7330123456789012345","mediaUrls": [],"commentsDatasetUrl": null,"videoMeta": {"height": 1920,"width": 1080,"duration": 21,"coverUrl": "https://p16-sign.tiktokcdn.com/obj/...jpeg","originalCoverUrl": "https://p16-sign.tiktokcdn.com/obj/...jpeg","definition": "high","format": "mp4","subtitleLinks": []},"diggCount": 152340,"shareCount": 4200,"playCount": 4821930,"collectCount": 800,"commentCount": 1287,"repostCount": 0,"mentions": [],"detailedMentions": [],"hashtags": [{ "name": "giveaway" }],"effectStickers": [],"isSlideshow": false,"isPinned": false,"isSponsored": false,"input": "mrbeast","fromProfileSection": "videos"}]
Field notes:
- hashtags is an array of objects with βnameβ.
- mentions and detailedMentions include user identifiers when present.
- subtitleLinks may contain language, downloadLink, tiktokLink, source, sourceUnabbreviated, and version.
- createTimeISO is null if createTime is missing.
Related tools
| Tool | Description |
|---|---|
| TikTok Hashtag Scraper | Collects posts by hashtag for trend tracking and content research. |
| TikTok Comments Scraper | Gathers comments from public posts for sentiment and engagement analysis. |
| TikTok Video Scraper | Focuses on post-level extraction across various discovery surfaces. |
FAQ
Do I need to log in to use this scraper?
No. The actor does not require login and targets publicly available profile content only.
Can I sort by popularity instead of time?
Yes. Set profileSorting to "popular". Note that combining popularity sorting with date filters may limit results due to how TikTok serves popularity-ordered pages.
How many posts can I collect per profile?
Use resultsPerPage to set the maximum number of posts to collect per profile. The actor also removes duplicates and stops when pagination yields no progress.
Can I filter by date range or hearts?
Yes. Use oldestPostDateUnified and newestPostDate for time windows, and mostDiggs or leastDiggs for hearts thresholds. Hearts filters are disabled when date filters are enabled.
Does it handle pinned posts?
Yes. Set excludePinnedPosts to true to skip pinned videos at the top of a profile.
What about proxies β are they required?
Not initially. The actor starts with a direct connection and automatically escalates to datacenter and then residential proxies if it encounters blocks (403/429) or empty/blocked responses.
What formats can I use to consume results?
Data is pushed to your Apify dataset during the run, and a final actor.json file is written on completion. You can integrate these into your pipelines or download from the runβs storage.
Does it scrape reposts?
The input supports selecting content sections, but outputs include fromProfileSection: "videos" to reflect collected items. Sorting applies to the Videos section.
Final thoughts
Tiktok Profile Scraper is built to extract structured, post-level TikTok data quickly and reliably. With configurable sorting, robust filtering, resilient proxy fallback, and real-time dataset streaming, itβs ideal for marketers, developers, analysts, and researchers. Automate runs, consume actor.json or datasets in your pipelines, and start turning public TikTok profile posts into actionable insights today.