Build an Instagram Reels Trend Tracker with the Audio API
On Reels, audio is the trend. A sound goes from a few hundred clips to hundreds of thousands in days, and the creators who jump on it early ride a wave of free reach. For social media managers, agencies, and creator tools, knowing which audio is accelerating — before it peaks — is genuinely valuable. That's a product.
This guide shows how to build the data layer for a Reels trend tracker with the Instagram Cheapest API on RapidAPI. The key endpoint is reels_audio?audio_id=, which returns Reels using a given audio track. By snapshotting that over time, you can measure a sound's growth rate and surface rising trends. Everything runs on real-time, uncached public data at as little as $0.10 per 1,000 requests.
How trend tracking works
You can't ask the API "what's trending right now" directly — there's no global trends endpoint. Instead you track a watchlist of audio IDs and measure each one's momentum over time. The workflow:
- Build a seed list of audio IDs to watch.
- On a schedule, snapshot how many (and which) Reels use each audio with
reels_audio. - Compare snapshots to compute growth rate — the sounds accelerating fastest are your trends.
- Expand the watchlist by harvesting new audio IDs from the Reels you collect.
Step 1: Find audio IDs to seed the watchlist
Every Reel carries an audio ID in its JSON. The easiest way to seed your watchlist is to pull Reels from accounts that set trends in your niche, using user_reels, and extract the audio IDs.
import requests
API_HOST = "instagram-cheapest.p.rapidapi.com"
BASE = f"https://{API_HOST}/api/v1/instagram"
API_KEY = "YOUR_RAPIDAPI_KEY"
HEADERS = {"x-rapidapi-host": API_HOST, "x-rapidapi-key": API_KEY}
def get_user_reels(user_id, after=None):
params = {"user_id": user_id}
if after:
params["after"] = after
r = requests.get(f"{BASE}/user_reels", headers=HEADERS, params=params)
r.raise_for_status()
return r.json()
# Inspect the raw JSON to find the audio identifier on each reel,
# then collect the unique audio IDs into your watchlist.
The exact field path to the audio ID depends on Instagram's raw JSON, so print one Reel and locate it once. The Reels & audio tutorial covers this extraction in detail.
Step 2: Snapshot each audio's usage
For every audio ID on the watchlist, call reels_audio?audio_id= and record how many Reels come back (and their engagement). This endpoint paginates with a max_id cursor, so you can page through to count usage or just sample the first page for a velocity proxy.
def get_reels_by_audio(audio_id, max_id=None):
params = {"audio_id": audio_id}
if max_id:
params["max_id"] = max_id
r = requests.get(f"{BASE}/reels_audio", headers=HEADERS, params=params)
r.raise_for_status()
return r.json()
def snapshot_audio(audio_id, max_pages=3):
count, total_plays, max_id = 0, 0, None
for _ in range(max_pages):
data = get_reels_by_audio(audio_id, max_id)
items = data.get("items", []) # confirm key from raw JSON
count += len(items)
for reel in items:
total_plays += reel.get("play_count", 0)
max_id = data.get("max_id") or data.get("next_max_id")
if not max_id or not items:
break
return {"audio_id": audio_id, "reels_sampled": count, "total_plays": total_plays}
Store one row per (audio_id, snapshot_date). The absolute count matters less than how it changes between snapshots.
Step 3: Compute momentum and rank trends
A trend is a sound whose usage is growing. Compare today's snapshot to a previous one and rank by growth rate:
def momentum(today, prior):
"""today, prior: dicts keyed by audio_id -> reels_sampled."""
trends = []
for audio_id, now in today.items():
before = prior.get(audio_id, 0)
if before == 0:
growth = float("inf") if now > 0 else 0 # brand-new sound
else:
growth = (now - before) / before
trends.append({"audio_id": audio_id, "now": now,
"before": before, "growth": growth})
# Rising fastest first
return sorted(trends, key=lambda t: t["growth"], reverse=True)
# rising = momentum(today_counts, last_week_counts)
# Alert on the top N where growth is high AND the absolute count is meaningful.
Filter out noise by requiring both a high growth rate and a minimum absolute usage — a sound going from 2 to 8 clips is +300% but not a trend. Send the top movers to Slack or a dashboard and your team gets early-trend alerts.
Step 4: Grow the watchlist automatically
Each Reel you collect in Step 2 carries its own audio ID and creator. Feed new audio IDs back into the watchlist and pull fresh Reels from creators who consistently catch trends early. Over time the tracker discovers rising sounds on its own instead of relying only on your seed list.
What you can build on top
- Trend-alert product — notify social managers the moment a sound starts accelerating in their niche.
- Creator strategy tool — recommend which trending audio to use next, with examples of Reels already winning with it.
- Agency reporting — show clients which trends they caught early vs late.
- Music/label analytics — track how a released track spreads across Reels over time.
What does it cost?
Tracking 200 audio IDs daily at ~2 pages each ≈ 200 × 2 × 30 = 12,000 requests/month — well inside the Pro tier. Add the Reels you pull to refresh the watchlist and you're still in single-digit dollars.
- Free Basic tier: 30 requests/month — enough to prototype the loop
- Pro tier ($59/mo): 150,000 requests included, then $0.13 per 1,000
- Ultra tier ($119/mo): 900,000 requests included, then $0.11 per 1,000
- Mega tier ($249/mo): 3,000,000 requests included, then $0.10 per 1,000
Because trend tracking can fetch many pages, lean on the optional fields parameter to return only the audio ID, play count, and timestamp you actually store — that keeps you inside the 10 GB/month bandwidth allowance.
A note on scope
This tracker measures momentum across a watchlist you maintain; there's no global "trending sounds" feed in the API, so the quality of your trends depends on how well your seed list and auto-expansion cover your niche. It's real-time data, not low-latency — design it as a scheduled job that fills a database the dashboard reads from.
Compliance and responsible use
This API returns public Instagram data only. You are responsible for complying with Instagram's terms of service and applicable privacy laws (GDPR, CCPA). The API is not affiliated with or endorsed by Meta or Instagram.
Conclusion
Trend tracking on Reels comes down to one repeated measurement: how fast is each sound being adopted? With reels_audio to count usage and user_reels to discover new audio IDs, you can build a tracker that surfaces rising trends days before they peak — and at $0.10–$0.13 per 1,000 requests, running it across hundreds of sounds daily costs only a few dollars a month.
Compliance note: this API returns public Instagram data only. You are responsible for complying with Instagram's terms and applicable privacy law (GDPR/CCPA). Not affiliated with or endorsed by Meta/Instagram.