tiktokhashtag-analyticsapi

TikTok Hashtag Analytics via API: Trends, Volume, and Videos

Track TikTok hashtag performance with API: view counts, video counts, trending velocity, and top videos per hashtag. No browser scraping required.

6 min read

Scavio returns TikTok hashtag stats (video count, total views) and paginated video feeds for any hashtag at 1 credit per request. Track hashtag growth, discover trending topics, and benchmark campaign performance without scraping.

Two Hashtag Endpoints

The hashtag info endpoint returns metadata: hashtag ID, title, description, video count, and total view count. The hashtag videos endpoint returns the paginated video feed for that hashtag with full video statistics. Together they give you both the macro picture and the individual content performance.

Getting Hashtag Stats

Python
import requests, os

API_KEY = os.environ["SCAVIO_API_KEY"]
BASE = "https://api.scavio.dev"
HEADERS = {"Authorization": f"Bearer {API_KEY}",
           "Content-Type": "application/json"}

def hashtag_info(name):
    resp = requests.post(f"{BASE}/api/v1/tiktok/hashtag",
        headers=HEADERS, json={"hashtag_name": name})
    info = resp.json()["data"]["challengeInfo"]
    return {
        "id": info["challenge"]["id"],
        "title": info["challenge"]["title"],
        "videos": info["stats"]["videoCount"],
        "views": info["stats"]["viewCount"],
    }

tags = ["skincare", "dropshipping", "aitools", "productivity"]
for tag in tags:
    stats = hashtag_info(tag)
    print(f"#{stats['title']}: {stats['views']:,} views, "
          f"{stats['videos']:,} videos")

Browsing Hashtag Videos

Python
def hashtag_videos(hashtag_id, pages=3):
    all_videos = []
    cursor = "0"
    for _ in range(pages):
        resp = requests.post(f"{BASE}/api/v1/tiktok/hashtag/videos",
            headers=HEADERS,
            json={"hashtag_id": hashtag_id, "cursor": cursor, "count": 20})
        data = resp.json()["data"]
        for v in data.get("aweme_list", []):
            all_videos.append({
                "desc": v["desc"][:80],
                "views": v["statistics"]["play_count"],
                "likes": v["statistics"]["digg_count"],
                "author": v["author"]["unique_id"],
            })
        if not data.get("has_more"):
            break
        cursor = str(data["cursor"])
    return all_videos

info = hashtag_info("dropshipping")
videos = hashtag_videos(info["id"])
for v in sorted(videos, key=lambda x: x["views"], reverse=True)[:10]:
    print(f"{v['views']:>12,} views | @{v['author']} | {v['desc']}")

Tracking Hashtag Growth Over Time

Python
import json
from datetime import date

def track_hashtag(name, history_file="hashtag_history.json"):
    try:
        with open(history_file) as f:
            history = json.load(f)
    except FileNotFoundError:
        history = {}

    stats = hashtag_info(name)
    today = str(date.today())

    if name not in history:
        history[name] = []
    history[name].append({"date": today, **stats})

    with open(history_file, "w") as f:
        json.dump(history, f, indent=2)

    if len(history[name]) >= 2:
        prev = history[name][-2]
        delta_views = stats["views"] - prev["views"]
        delta_videos = stats["videos"] - prev["videos"]
        print(f"#{name}: +{delta_views:,} views, +{delta_videos:,} videos "
              f"since {prev['date']}")
    return stats

Campaign Benchmarking

For branded hashtag campaigns, track your campaign hashtag alongside competitor campaign hashtags. Compare video counts, view counts, and average engagement per video. Run the tracking script daily via cron to build a growth curve. This replaces manual TikTok Creative Center checks and gives you historical data that TikTok does not expose natively.

Cost

Tracking 20 hashtags daily costs $0.10/day ($3/month). Adding video feed pulls for the top 5 hashtags (3 pages each) adds $0.075/day. Total monthly cost for a comprehensive hashtag monitoring setup: under $6. EnsembleData charges $100+/month for similar coverage.