TikTok Metrics Scraper - Video & Profile Stats
Pricing
from $1.40 / 1,000 tiktok metric rows
TikTok Metrics Scraper - Video & Profile Stats
Scrape public TikTok video and profile metrics from video URLs, share links, profile URLs, and @handles. Collect views, likes, comments, shares, saves, reposts, profile stats, IDs, captions, hashtags, music, timestamps, precision labels, provenance, and clean CSV/API rows.
Pricing
from $1.40 / 1,000 tiktok metric rows
Rating
0.0
(0)
Developer
Chronometrica
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Metrics Scraper
๐ What does TikTok Metrics Scraper do?
TikTok Metrics Scraper collects public TikTok video metrics and profile metrics
from TikTok video URLs, share links, profile URLs, and @handles.
Use it when you need clean TikTok data for creator research, influencer reporting, campaign tracking, competitor monitoring, social analytics, dashboards, warehouse loads, and scheduled metric snapshots.
The Actor returns flat CSV/API-friendly rows with TikTok views, likes, comments, shares, saves, reposts, profile stats, IDs, captions, hashtags, music, thumbnails, timestamps, status fields, and metric quality labels.
This Actor does not log in, use cookies, scrape private TikTok content, collect comment text, or bypass TikTok access controls. It only returns data that is available from public TikTok surfaces at run time.
With TikTok Metrics Scraper, you can:
- ๐ Track TikTok video performance from known video URLs and share links.
- ๐ค Discover recent public videos from TikTok profile URLs and
@handles. - ๐ฌ Collect public views, likes, comments, shares, saves, and reposts when available.
- ๐งโ๐ค Add public profile metrics such as followers, following, total likes, and video counts.
- ๐ Extract useful IDs such as
profileIdandpostId. - ๐ต Save captions, hashtags, music metadata, thumbnails, duration, and created dates.
- ๐ฏ Check metric precision and availability instead of treating every count as equally exact.
- ๐ฆ Export results as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.
๐ฆ What TikTok metric data can I extract?
Each dataset row represents one TikTok video.
| Data group | Example fields |
|---|---|
| ๐ URL identity | inputUrl, postUrl, profileUrl |
| ๐ TikTok IDs | profileId, postId, postType |
| ๐งพ Content details | description, publishedAt, thumbnailUrl, videoDurationSeconds, hashtags, musicTitle |
| ๐ค Profile details | profileHandle, profileName, profileAvatarUrl, profileVerified |
| ๐ Video metrics | views, likes, comments, shares, saves, reposts |
| ๐ฅ Profile metrics | profileFollowersCount, profileFollowingCount, profileLikesCount, profileVideosCount |
| ๐ฏ Metric quality | postMetricStatus, profileMetricStatus |
| ๐ฆ Row status | status, statusReason, scrapedAt |
Metric availability depends on what TikTok exposes publicly for each video or profile. If a public source does not expose a metric, the Actor marks that metric as unavailable instead of filling it with a fake zero.
โ๏ธ Can I use this Actor through an API?
Yes. You can run TikTok Metrics Scraper manually in Apify Console or use it through:
- Apify API
- Python SDK
- Node.js SDK
- Webhooks
- Scheduled runs
- Apify integrations
This makes it useful for social media dashboards, influencer lists, competitive intelligence, creator databases, campaign reporting, data warehouses, and automated market research workflows.
๐ฏ Why scrape TikTok video and profile metrics?
TikTok public metrics help you understand which creators, videos, sounds, hashtags, campaigns, and competitors are gaining traction.
| Use case | How TikTok metric data helps |
|---|---|
| ๐ Track creator performance | Monitor public engagement across known creator video URLs. |
| ๐งโ๐ค Research influencers | Compare profile audience size, video volume, and recent video performance. |
| ๐ฃ Measure campaigns | Collect repeatable snapshots for campaign videos, branded posts, and promotions. |
| ๐ต๏ธ Monitor competitors | Track public video metrics for competing brands, products, or creators. |
| ๐ต Analyze content signals | Keep captions, hashtags, music, thumbnails, duration, and created dates together. |
| ๐ Build reporting workflows | Feed normalized TikTok metrics into dashboards, spreadsheets, and BI tools. |
| ๐ Audit metric availability | Separate available, partial, unavailable, and failed rows cleanly. |
๐ต How much does scraping TikTok metrics cost?
TikTok Metrics Scraper uses Pay Per Event pricing: $2.00 per 1,000 TikTok metric rows ($0.002 per row), with platform usage included. Higher Apify subscription tiers may receive lower per-row pricing on the Actor's Pricing tab.
Start with a small batch of 3 to 10 URLs when testing. The run summary and dataset statuses show which URLs resolved, which returned public metrics, which returned no public metrics, and whether any URLs failed.
๐ How do I use TikTok Metrics Scraper?
- Create or log in to your Apify account.
- Open TikTok Metrics Scraper.
- Choose Auto-detect URLs and handles, Video URLs only, or Profile discovery only.
- Paste TikTok video URLs, share links, profile URLs,
@handles, or a mix of them. - Set the maximum number of metric rows to collect.
- Leave the default settings for your first run.
- Click Start.
- Open the Output tab to inspect the dataset and run summary.
- Download your data in JSON, JSONL, CSV, Excel, XML, RSS, or HTML.
โฌ๏ธ Input
The main input is startUrls. Paste at least one TikTok video URL, share link,
profile URL, or @handle. https:// is optional for normal TikTok URLs.
For a quick test, run a known public MrBeast TikTok video:
{"mode": "auto","startUrls": ["https://www.tiktok.com/@mrbeast/video/7654638524729216287"],"maxItems": 25,"includeProfileMetrics": true}
In Auto-detect URLs and handles mode, you can paste direct video URLs and profile inputs into the same list. The Actor combines direct videos and profile-discovered videos, deduplicates them, and applies one shared metric row cap.
๐ TikTok URLs and handles
Supported input shapes include:
www.tiktok.com/@creator/video/1234567890123456789https://www.tiktok.com/@creator/video/1234567890123456789https://www.tiktok.com/t/ZTxxxxxxxx/https://vm.tiktok.com/ZMxxxxxxxx/https://vt.tiktok.com/ZSxxxxxxxx/https://www.tiktok.com/@creator@creatorcreatorcreator.name
Best results usually come from direct public video URLs and public profile URLs that open in a logged-out browser.
๐ค Profile discovery
Use profile discovery when you want the Actor to find recent public videos from a TikTok profile before collecting metrics.
{"mode": "profileUrls","startUrls": ["@mrbeast"],"maxItems": 25,"maxItemsPerProfile": 10,"includeProfileMetrics": true}
Use maxItemsPerProfile to control how many public video URLs are discovered
from each profile. The shared maxItems cap still limits total output rows for
the whole run.
๐๏ธ Settings
| Option | What it does |
|---|---|
mode | auto to detect mixed inputs, knownUrls for video URLs only, or profileUrls for profiles. |
startUrls | TikTok video URLs, share links, profile URLs, @handles, or raw handles such as mrbeast. |
maxItems | Maximum video metric rows to save across the whole run. |
maxItemsPerProfile | Maximum public video URLs to discover from each profile input. |
includeProfileMetrics | Adds best-effort public follower, following, total likes, and video counts. |
maxConcurrency | Controls how many TikTok URLs are resolved at the same time. |
requestTimeoutSecs | Maximum wait time for each public TikTok request. |
failOnNoMetrics | Fails the run if none of the input URLs expose public metrics. |
โฌ๏ธ Output sample
The results are stored in the default dataset. Each result is one TikTok video row.
{"platform": "tiktok","inputUrl": "www.tiktok.com/@examplecreator/video/7651772538292342046","postUrl": "https://www.tiktok.com/@examplecreator/video/7651772538292342046","postId": "7651772538292342046","postType": "video","description": "Example caption text #marketing #tiktok","publishedAt": "2026-06-22T12:00:00.000Z","thumbnailUrl": "https://p16-sign-va.tiktokcdn.com/example.jpg","videoDurationSeconds": 42,"hashtagNames": ["marketing", "tiktok"],"musicTitle": "Example sound","musicAuthorName": "Example Artist","profileId": "1234567890123456789","profileHandle": "examplecreator","profileName": "Example Creator","profileUrl": "https://www.tiktok.com/@examplecreator","profileVerified": true,"views": 1234567,"likes": 23456,"comments": 345,"shares": 456,"saves": 567,"reposts": 12,"postMetricStatus": [{"metric": "views","status": "present","precision": "exact"}],"profileFollowersCount": 1250000,"profileFollowingCount": 418,"profileLikesCount": 24800000,"profileVideosCount": 412,"profileMetricStatus": [{"metric": "profileFollowersCount","status": "present","precision": "exact"}],"status": "ok","statusReason": null,"scrapedAt": "2026-06-22T12:05:00.000Z"}
๐ฏ Metric precision and availability
TikTok public pages can expose full integers, compact display counts, or already rounded public counts. TikTok Metrics Scraper labels metric precision instead of pretending all numbers are equally exact.
| Precision | Meaning |
|---|---|
exact | TikTok public data exposed a full integer that does not look display-rounded. |
display_rounded | TikTok public data exposed a compact display value such as 1.2K, 3.4M, or 5B. |
likely_rounded | TikTok public data exposed a large bucketed integer that is probably already rounded. |
unavailable | The public source did not expose that metric. |
postMetricStatus and profileMetricStatus show metric-by-metric status and
precision. The top-level metric columns hold the counts.
When both a compact display count and a full integer are present, the Actor prefers the full integer. It does not emit derived engagement-rate columns. Calculate rates downstream from the returned counts and precision labels if you need them.
๐ฆ Output statuses
| Status | Meaning |
|---|---|
ok | At least one public engagement metric was collected. |
resolved_no_public_metrics | The URL resolved, but public sources did not expose engagement counts. |
blocked_or_challenged | TikTok returned a challenge, login wall, or access page before metrics loaded. |
invalid_url | The input is not a valid TikTok URL or @handle. |
unsupported_url | The input is a valid TikTok URL, but that TikTok surface is not supported. |
failed | A request, parser, or runtime error happened. |
๐งญ Practical notes
This Actor collects public TikTok data only. It does not use login, cookies, private accounts, or private content access.
Profile discovery is best effort. Some profiles expose profile metrics but not recent public video URLs in the public surfaces available at run time.
TikTok counts change continuously. Treat each run as a point-in-time snapshot.
For monitoring, schedule repeated runs and compare rows by postId and
scrapedAt.
For large TikTok URL lists, split work into smaller runs. This keeps retries, timeouts, and result inspection easier to manage.
โ Common questions
Can this scrape TikTok saves and reposts?
The dataset includes fields for saves and reposts. The Actor
collects them when TikTok exposes those metrics in public page data. If TikTok
does not expose them for a specific video, the fields are marked unavailable
with postMetricStatus.
Can this scrape TikTok comments?
This Actor collects the public comment count. It does not scrape comment text, comment authors, or comment threads.
Can this scrape TikTok followers?
Yes, when TikTok exposes public profile metrics. The Actor can return follower, following, total likes, and video counts for the creator profile.
Can I use it for TikTok competitor tracking?
Yes. Paste public competitor video URLs, profile URLs, or handles, then schedule the Actor to collect repeat metric snapshots over time.
Can I run it through the Apify API?
Yes. The Actor is designed for both Apify Console runs and API workflows. Use the flat output rows for dashboards, data warehouses, exports, and monitoring pipelines.
Why are some metrics unavailable?
TikTok does not expose every metric on every public surface. When a metric is missing, the Actor keeps the row, marks the metric unavailable, and includes status fields so your pipeline can handle the row cleanly.