All use cases

Competitor tracking with an API: a daily cross-platform feed

November 8, 2026

Short answer

Competitor tracking with an API takes a daily profile snapshot and the newest posts for each competitor on each platform, then reports follower growth, posting cadence, median views and outlier posts. Tracking 50 competitors on 3 platforms daily is 300 calls a day, 9,000 credits a month, or $16.92 on ScrapeIO's $47 pack.

Competitor tracking is the ongoing version of a competitor analysis. Instead of one deep audit a quarter, you collect a small, fixed set of numbers every day and let the changes tell you when to look closer. Two calls per competitor per platform per day are enough for most teams.

Who does this and why

  • Social and content teams want to know which competitor post took off this week and why.
  • Marketing leads report share of voice and growth against a fixed peer set.
  • Investors and analysts use follower and engagement trends as a signal on consumer brands.

For a one-time deep dive on a single platform, our step-by-step posts are better: TikTok, Instagram, YouTube, Facebook and LinkedIn. This page is the daily feed that runs between those audits.

The data you need

StepPlatformEndpointCredits
1. Daily profile snapshotTikTokTikTok profile1
1. Daily profile snapshotInstagramInstagram profile1
1. Daily profile snapshotYouTubeYouTube channel1
2. Newest postsTikTok, Instagram, YouTubeTikTok profile videos, Instagram user posts, YouTube channel videos1 per page
3. Weekly ad checkMeta, LinkedIn, TikTokMeta company ads, LinkedIn ads search, TikTok ad library search1
OptionalX, LinkedInX user posts, LinkedIn company posts1 per page

Worked example: 50 competitors, 3 platforms, daily

  • Per competitor, per platform, per day: 1 profile call + 1 page of newest posts = 2 calls.
  • 50 competitors x 3 platforms x 2 calls = 300 calls a day.
  • 300 x 30 days = 9,000 credits a month.
  • On the $47 pack ($1.88 per 1,000): $16.92 a month. One pack lasts about 2.8 months.
  • On the $497 pack ($0.99 per 1,000): about $8.95 a month.

Add a weekly ad check on Meta, LinkedIn and TikTok: 50 x 3 = 150 credits a week, about 650 a month. The whole tracker is then about 9,650 credits, or $18.14 a month on the $47 pack. The rate limit is 300 requests a minute per key, so you can run the 300 daily calls in parallel without hitting it.

Code: the daily job

import requests, sqlite3, datetime

KEY = "YOUR_KEY"
H = {"x-api-key": KEY}
B = "https://scrapeio.com"
ROUTES = {"tiktok": ("/v1/tiktok/profile", "/v3/tiktok/profile/videos"),
          "instagram": ("/v1/instagram/profile", "/v2/instagram/user/posts"),
          "youtube": ("/v1/youtube/channel", "/v1/youtube/channel-videos")}
COMPETITORS = {"brand_a": {"tiktok": "branda", "instagram": "branda", "youtube": "@branda"}}

db = sqlite3.connect("tracker.db")
db.execute("create table if not exists profiles (day, brand, platform, followers)")
db.execute("create table if not exists posts (platform, id primary key, brand, url, created_at, plays, likes, comments, day)")
day = datetime.date.today().isoformat()

for brand, handles in COMPETITORS.items():
    for platform, handle in handles.items():
        prof_path, posts_path = ROUTES[platform]
        p = requests.get(B + prof_path, params={"handle": handle}, headers=H, timeout=60).json()
        if p.get("success"):
            db.execute("insert into profiles values (?,?,?,?)", (day, brand, platform, p["data"]["followers"]))
        r = requests.get(B + posts_path, params={"handle": handle}, headers=H, timeout=60).json()
        for x in r.get("data", {}).get("items", []) if r.get("success") else []:
            db.execute("insert or replace into posts values (?,?,?,?,?,?,?,?,?)",
                       (platform, x["id"], brand, x["url"], x["created_at"],
                        x["plays"], x["likes"], x["comments"], day))
db.commit()

insert or replace keeps the latest numbers for each post, so a post's views keep updating while it stays on the first page.

The metrics that matter

  • Follower growth rate = (followers today - followers 7 days ago) / followers 7 days ago. Compare rates, not raw adds, across brands of different sizes.
  • Cadence = posts in the last 28 days / 4, per platform.
  • Median views per post, over the last 28 days. The median ignores one viral hit.
  • Outlier = a post whose views are at least 3x the brand's 28-day median. Outliers are the posts worth a human look.
  • Engagement share of voice = a brand's total engagements in the period / the total for the whole peer set.
  • Ad refresh rate = new ads started this week, from the weekly ad check.

Send only changes to people: new outliers, growth rate moves above a threshold, and new ad bursts. A dashboard nobody opens is the usual failure mode.

Pitfalls

  • Rounded counts. YouTube shows subscriber counts rounded down to three significant figures (YouTube Data API docs), so small daily changes on large channels read as zero. Use weekly deltas for YouTube.
  • Heavy posters. If a competitor posts more than one page of posts a day, take a second page for that account only.
  • Pinned posts sit at the top of TikTok and Instagram feeds. Filter them by date before computing cadence.
  • Handle changes. Brands rename accounts. Store the platform id from the profile call and alert when a handle stops resolving.
  • Regional accounts. Decide up front whether you track the global account only or regional ones too, and keep it fixed, or the trend breaks.

Run it from an AI agent

The competitor-social-audit skill and the MCP server let an agent read the tracker's raw data on demand. A useful weekly prompt:

For branda, brandb and brandc on TikTok and Instagram,
pull the last 30 days of posts. Give follower growth, cadence,
median views and every post above 3x the brand's median.
For each outlier, read the transcript and say what the hook was.

The agent calls tiktok_profile_videos, instagram_user_posts and tiktok_transcript. Keep the daily job for the history; agents are better at the "why" than at keeping a time series.

Doing it with ScrapeIO

The same two calls work on TikTok, Instagram and YouTube with the same field names, so adding a platform is one more row in ROUTES. 300 calls a day is $16.92 a month on the $47 pack, and credits never expire if you pause the tracker.

Sources

Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.

100 free credits, no card. Credits never expire.

Get API key