Operated by Sourcelane✓ verified
Get total views and video counts for TikTok hashtags in bulk, plus engagement, top creators, top sounds and related hashtags from each tag's top videos.
A TikTok hashtag analysis tool that measures hashtag reach and top-video performance by collecting lifetime views and video counts and by sampling a hashtag’s top-ranked videos to compute engagement and format signals. The connector aggregates lifetime totals and per-hashtag statistics, produces average and median view metrics, computes engagement-related metrics (likes, comments, shares, saves, engagement rate), derives format and production signals (average video length, share of videos using original sound), reports freshness indicators (newest top-video date and count of recent top videos), identifies top creators and most-used sounds, extracts related/co-occurring hashtags from top-video metadata, and can optionally include a list of top videos with per-video metadata (URL, caption, creator, date, duration, stats, engagement rate, sound). It bases sample metrics on TikTok’s own “top videos” ranking (ads excluded) and supports batch analysis and side-by-side hashtag comparison for trend monitoring.
Verified Oct 25, 10:11 PM
$0.005
per hashtag
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Hashtag research to assess real reach and video volume for candidate tags
Content strategy to learn effective video length, sounds, and engagement benchmarks in a niche
Influencer discovery by identifying creators that dominate a hashtag’s top videos
Trend tracking by running repeated analyses to chart hashtag views and video counts over time
Campaign reporting and measurement for branded hashtag challenges
Hashtags to analyze, one per line, with or without #.
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"tiktok-hashtag-analytics","params":{"hashtags":["booktok","skincare","fyp"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
hashtags | array | required | Hashtags to analyze, one per line (up to 500 per run), with or without #. Hashtag page URLs (tiktok.com/tag/...) work too. |
topVideos | integer | optional | How many of the hashtag's top videos to analyze for engagement, creators, sounds and related hashtags (0-120). 0 = lifetime views and video count only. |
includeVideoList | boolean | optional | Add a topVideos array to each row with every analyzed video's URL, caption, creator, date, duration, views, likes, comments, shares, saves, engagement rate and sound. Same price. |
Each result contains
| Field | Type | Description |
|---|---|---|
hashtag | string | Hashtag |
status | string | Status |
message | null | — |
hashtagId | string | — |
title | string | — |
url | string | — |
description | string | — |
totalViews | integer | Total views |
totalVideos | integer | Videos |
avgViewsPerVideo | integer | Avg views / video |
isBrandedHashtag | boolean | — |
coverUrl | string | — |
sampleSize | integer | — |
sampleAvgViews | integer | — |
sampleMedianViews | integer | Median views (top) |
sampleAvgLikes | integer | — |
sampleAvgComments | integer | — |
sampleAvgShares | integer | — |
sampleAvgSaves | integer | — |
sampleEngagementRate | number | ER (%) |
sampleAvgDurationSeconds | number | — |
sampleOriginalSoundShare | number | — |
sampleNewestVideoAt | string | — |
sampleVideosLast30Days | integer | Top videos last 30d |
topCreators | array | — |
relatedHashtags | array | — |
topSounds | array | — |
analyzedAt | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “What are the top 25 TikTok videos for 'protein coffee' this week, and what hooks do they use?”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"tiktok-hashtag-analytics","params":{"hashtags":["booktok","skincare","fyp"]},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "tiktok-hashtag-analytics",
"params": {"hashtags":["booktok","skincare","fyp"]},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…