TikTok generates massive amounts of analytics data: views, likes, shares, follower counts, engagement rates, trending hashtags. If you want to build dashboards, track campaigns, or benchmark creators, you need programmatic access to that data.
This guide covers everything you need to know about accessing TikTok analytics data through APIs, from what metrics are available to building a working analytics pipeline with real code.
What TikTok analytics data is available via API
TikTok surfaces several categories of analytics data that developers can access programmatically.
Profile analytics include follower counts, following counts, total likes received, bio information, verified status, and avatar URLs. These are the foundation for tracking creator growth over time.
Video performance analytics cover views, likes, comments, shares, play counts, and bookmark counts for individual videos. You can also pull video metadata like captions, hashtags, posting dates, and music used.
Engagement metrics are calculated from the raw numbers. Engagement rate (interactions divided by views), average views per video, posting frequency, and audience growth rate all come from combining profile and video data.
Hashtag analytics reveal usage counts, associated videos, and trending status. These help identify content themes and track campaign-specific hashtags.
Trending analytics surface what is popular right now: trending videos, rising creators, popular sounds, and viral content across categories.
Official vs third-party options
There are two paths to TikTok analytics data. Each comes with significant tradeoffs.
TikTok Research API
TikTok offers an official Research API, but the access requirements are restrictive:
- Only available to academic researchers at approved US and EU non-profit institutions
- Requires a formal application with a research proposal
- Approval takes weeks to months
- Limited to 1,000 requests per day
- No access to real-time data
- Restricted endpoint coverage
If you are building a commercial product, a marketing tool, or anything outside academic research, the official API is not an option.
TikTok Commercial Content API
TikTok also provides a Commercial Content API focused on advertising data. It requires a developer account, app review, and only exposes ad-related metrics. Not useful for general TikTok creator analytics.
Third-party TikTok analytics APIs
Third-party APIs like CreatorCrawl solve the access problem. They provide immediate access to TikTok analytics data with no approval process, broader endpoint coverage, and pay-per-use pricing.
The key advantages:
- Instant access: Get an API key in seconds, not weeks
- Full coverage: Profiles, videos, comments, trending, hashtags, search, sounds, and more
- No rate limits: Scale as needed without artificial caps
- Real-time data: Pull live data, never stale caches
The tradeoff is cost per request, though for most use cases the time saved and broader access make third-party APIs the practical choice.
Key TikTok analytics metrics you can extract
Let’s break down the specific TikTok analytics data available through the CreatorCrawl API and what you can do with it.
Profile analytics
The /tiktok/profile endpoint returns comprehensive creator data:
| Metric | Description |
|---|---|
| Followers | Total follower count |
| Following | Number of accounts followed |
| Total likes | Cumulative likes across all videos |
| Video count | Total number of posted videos |
| Bio | Profile description text |
| Verified | Whether the account has a verification badge |
| Nickname | Display name |
| Avatar | Profile image URL |
By polling this endpoint over time, you can track follower growth rate, identify viral moments that drive spikes, and monitor how a creator’s audience evolves.
Video analytics
The /tiktok/profile/videos endpoint returns video-level performance data:
| Metric | Description |
|---|---|
| Views (play count) | Total number of views |
| Likes (digg count) | Number of likes |
| Comments | Number of comments |
| Shares | Number of shares |
| Bookmarks (collect count) | Number of bookmarks/saves |
| Create time | Unix timestamp of posting |
| Duration | Video length in seconds |
| Caption | Video description text |
| Hashtags | Tags used in the video |
| Music | Song/sound information |
This is where the real TikTok analytics data lives. Video-level metrics let you calculate engagement rates, identify top-performing content, and understand what drives results for a given creator.
Hashtag analytics
Search and hashtag endpoints reveal how specific tags are performing: how many videos use a hashtag, what the view counts look like, and whether usage is growing or declining.
Trending analytics
The /tiktok/trending endpoint surfaces what is popular across TikTok right now. Filter by category to find trending videos, creators, and sounds in specific niches. This is essential for competitive intelligence and content strategy.
Building a TikTok analytics dashboard
Here is a practical Python example that pulls TikTok creator analytics data and calculates key metrics. This is the foundation for any analytics dashboard or monitoring tool.
Setup
import requests
from datetime import datetime
BASE_URL = "https://api.creatorcrawl.com/v1"
API_KEY = "your_api_key_here"
headers = {
"x-api-key": API_KEY,
"Content-Type": "application/json"
}
Pull profile analytics
def get_profile_analytics(handle):
response = requests.get(
f"{BASE_URL}/tiktok/profile",
params={"handle": handle},
headers=headers
)
data = response.json()
user = data["userInfo"]["user"]
stats = data["userInfo"]["stats"]
return {
"handle": user["uniqueId"],
"nickname": user["nickname"],
"verified": user.get("verified", False),
"followers": stats["followerCount"],
"following": stats["followingCount"],
"total_likes": stats["heartCount"],
"video_count": stats["videoCount"],
}
Pull video performance data
def get_video_analytics(handle, count=30):
response = requests.get(
f"{BASE_URL}/tiktok/profile/videos",
params={"handle": handle, "sort_by": "newest"},
headers=headers
)
videos = response.json().get("videos", [])[:count]
results = []
for video in videos:
stats = video.get("stats", {})
results.append({
"id": video["id"],
"caption": video.get("desc", ""),
"created": datetime.fromtimestamp(video["createTime"]),
"views": stats.get("playCount", 0),
"likes": stats.get("diggCount", 0),
"comments": stats.get("commentCount", 0),
"shares": stats.get("shareCount", 0),
"bookmarks": stats.get("collectCount", 0),
"duration": video.get("video", {}).get("duration", 0),
})
return results
Calculate engagement metrics
def calculate_engagement(profile, videos):
if not videos:
return {}
total_views = sum(v["views"] for v in videos)
total_interactions = sum(
v["likes"] + v["comments"] + v["shares"] + v["bookmarks"]
for v in videos
)
avg_views = total_views / len(videos)
avg_likes = sum(v["likes"] for v in videos) / len(videos)
avg_comments = sum(v["comments"] for v in videos) / len(videos)
engagement_rate = (total_interactions / total_views * 100) if total_views > 0 else 0
dates = sorted([v["created"] for v in videos])
if len(dates) >= 2:
span_days = (dates[-1] - dates[0]).days or 1
posting_frequency = len(videos) / (span_days / 7)
else:
posting_frequency = 0
return {
"engagement_rate": round(engagement_rate, 2),
"avg_views": round(avg_views),
"avg_likes": round(avg_likes),
"avg_comments": round(avg_comments),
"posting_frequency_per_week": round(posting_frequency, 1),
"total_views_last_n": total_views,
"videos_analyzed": len(videos),
}
Put it together
def analyze_creator(handle):
profile = get_profile_analytics(handle)
videos = get_video_analytics(handle, count=30)
engagement = calculate_engagement(profile, videos)
print(f"Creator: @{profile['handle']}")
print(f"Followers: {profile['followers']:,}")
print(f"Total Likes: {profile['total_likes']:,}")
print(f"Videos Posted: {profile['video_count']}")
print(f"Engagement Rate: {engagement['engagement_rate']}%")
print(f"Avg Views: {engagement['avg_views']:,}")
print(f"Avg Likes: {engagement['avg_likes']:,}")
print(f"Posts/Week: {engagement['posting_frequency_per_week']}")
return profile, videos, engagement
analyze_creator("charlidamelio")
This gives you a complete snapshot of any TikTok creator’s analytics. The engagement rate calculation uses views as the denominator, which is the standard approach for TikTok where not all followers see every video.
Tracking TikTok analytics over time
A single snapshot is useful, but the real value of TikTok analytics data comes from tracking changes over time. Here is how to build time-series tracking.
import json
from datetime import date
def store_snapshot(handle, profile, engagement, storage_path="snapshots.json"):
try:
with open(storage_path, "r") as f:
snapshots = json.load(f)
except FileNotFoundError:
snapshots = {}
if handle not in snapshots:
snapshots[handle] = []
snapshots[handle].append({
"date": str(date.today()),
"followers": profile["followers"],
"total_likes": profile["total_likes"],
"engagement_rate": engagement["engagement_rate"],
"avg_views": engagement["avg_views"],
"posting_frequency": engagement["posting_frequency_per_week"],
})
with open(storage_path, "w") as f:
json.dump(snapshots, f, indent=2)
def calculate_growth(snapshots):
if len(snapshots) < 2:
return None
latest = snapshots[-1]
previous = snapshots[-2]
follower_growth = latest["followers"] - previous["followers"]
growth_rate = (follower_growth / previous["followers"] * 100) if previous["followers"] > 0 else 0
return {
"follower_growth": follower_growth,
"growth_rate_pct": round(growth_rate, 2),
"engagement_change": round(
latest["engagement_rate"] - previous["engagement_rate"], 2
),
"period": f"{previous['date']} to {latest['date']}",
}
Run this daily or weekly with a cron job and you have a complete TikTok creator analytics history. This is the same approach used by professional social media monitoring tools.
Advanced analytics: Comparing creators
When evaluating multiple TikTok creators for partnerships or competitive analysis, you need side-by-side comparisons. The search endpoint makes it easy to find creators in a niche, then compare their analytics.
def compare_creators(handles):
results = []
for handle in handles:
profile = get_profile_analytics(handle)
videos = get_video_analytics(handle, count=30)
engagement = calculate_engagement(profile, videos)
results.append({
"handle": handle,
"followers": profile["followers"],
"engagement_rate": engagement["engagement_rate"],
"avg_views": engagement["avg_views"],
"posting_frequency": engagement["posting_frequency_per_week"],
})
results.sort(key=lambda x: x["engagement_rate"], reverse=True)
print(f"{'Handle':<20} {'Followers':>12} {'Eng Rate':>10} {'Avg Views':>12} {'Posts/Wk':>10}")
print("-" * 66)
for r in results:
print(
f"@{r['handle']:<19} {r['followers']:>12,} "
f"{r['engagement_rate']:>9.2f}% {r['avg_views']:>12,} "
f"{r['posting_frequency']:>10.1f}"
)
return results
compare_creators(["charlidamelio", "khaby.lame", "bellapoarch"])
This comparison reveals which creators drive the most engagement relative to their audience size. A creator with 500K followers and a 12% engagement rate often delivers better ROI than one with 5M followers and a 2% rate.
Benchmarking engagement rates
TikTok engagement rates vary significantly by niche and audience size. Here are typical benchmarks based on TikTok analytics data:
| Follower Range | Average Engagement Rate |
|---|---|
| Under 10K | 8-12% |
| 10K to 100K | 5-9% |
| 100K to 1M | 3-6% |
| 1M to 10M | 2-4% |
| Over 10M | 1-3% |
These benchmarks help contextualize the TikTok creator analytics data you pull. A 4% engagement rate for a creator with 2M followers is above average and signals strong audience loyalty.
Use cases for TikTok analytics APIs
Brand monitoring
Track mentions of your brand across TikTok by searching for relevant hashtags and monitoring video captions. Pull engagement data on videos that mention your brand to measure organic reach.
Competitor analysis
Monitor competitor accounts and their content performance. Identify which content formats and topics drive the most engagement in your space. Track their follower growth to benchmark against your own.
Campaign measurement
Before and after a campaign, snapshot the analytics for participating creators. Measure the lift in views, engagement, and follower growth that your campaign generated. Calculate cost-per-engagement and cost-per-view for each creator.
Influencer discovery
Use the /tiktok/search/users endpoint to find creators by keyword, then analyze their TikTok analytics data to identify the best partners. Filter by engagement rate, posting frequency, and audience size to find creators that match your criteria.
Content strategy
Analyze top-performing videos in your niche to understand what works. Track which video lengths, posting times, hashtags, and content themes drive the most engagement. Use the /tiktok/trending endpoint to stay ahead of trends.
Academic research
Researchers studying social media behavior, content virality, or platform dynamics can use TikTok analytics APIs to gather structured data at scale. The API approach is more reliable and reproducible than manual data collection.
Getting started
The fastest way to start pulling TikTok analytics data is through CreatorCrawl:
- Create a free account to get 250 API credits
- Grab your API key from the dashboard
- Use the code examples above to pull your first TikTok creator analytics
- Explore the full endpoint list at /endpoints/get-user-info
Every API call costs one credit. Credits never expire. No monthly subscriptions, no rate limits.
For a broader comparison of available TikTok data APIs, see our guide to the best TikTok APIs.
You can also try the free TikTok profile analyzer to see the kind of data available before writing any code.