InsightSocial API
How-to

Get Instagram reels that use a specific audio

List the reels that use one Instagram sound, with views, likes, comments and who posted each, by audio ID. 10 credits per page of 12 reels.

To list the reels that use one Instagram sound, call GET /v1/instagram/audio/reels with the track's audio_id. Each page returns 12 reels with their view, like and comment counts and the account that posted them, plus the track's title, artist and the total number of reels that use it. It costs 10 credits a page. Meta's Instagram Graph API has no way to list reels by audio, which is why this endpoint exists.

Cost

10 credits per page of 12 reels. Walking 10 pages (120 reels) costs 100 credits. Asking for the same page again within 6 hours is answered from the shared cache for 2 credits. Failed calls and empty results are free.

How do I find the audio ID?

The audio_id is the number in the sound's page URL: https://www.instagram.com/reels/audio/1392969992841787/ has the ID 1392969992841787. Open a reel, tap the sound name, and copy the URL.

If you only know the song's name, GET /v1/instagram/search/music (50 credits) looks it up by keyword. Every reel this endpoint returns also carries the ID in post.ext.audio_cluster_id, so you can hop from one reel to everything else that uses its sound.

Make the request

cURL
curl "https://api.insightsocial.app/v1/instagram/audio/reels?audio_id=1392969992841787" \
  -H "x-api-key: $INSIGHTSOCIAL_API_KEY"

What comes back

A real response from 2026-10-14, shortened: one reel instead of 12, long URLs cut, and the poster's account replaced with a placeholder.

Response (shortened)
{
  "success": true,
  "endpoint": "/v1/instagram/audio/reels",
  "schema_version": "2",
  "data": {
    "items": [
      {
        "post": {
          "id": "3916378119790708418",
          "url": "https://www.instagram.com/reel/DZZxSZsPMbC/",
          "kind": "short",
          "content": { "text": "O processo é um tanto delicado…", "duration_seconds": 16.415 },
          "author": { "id": null, "username": "example_creator", "display_name": "Example Creator", "verified": false },
          "engagement": { "views": 145694, "likes": 5733, "comments": 83, "shares": null, "saves": null },
          "published_at": "2026-06-10T10:52:09.000Z",
          "ext": { "media_type": "video", "audio_cluster_id": "1392969992841787", "coauthors": [] }
        }
      }
    ],
    "total": 280258,
    "ext": {
      "is_trending": true,
      "sound": {
        "track_title": "Freakin’ Out",
        "artist": "Dexter and The Moonrocks",
        "is_original": false,
        "duration_seconds": 217.897,
        "is_explicit": false,
        "spotify_track_id": "2LSltDwOzq2yoBliFUnY41"
      }
    }
  },
  "pagination": { "next_cursor": "v2c.tNvG_cl…", "has_more": true, "page_size": 12 },
  "unavailable": ["items[].post.author.id"],
  "credits_used": 10
}
FieldWhat it holds
data.items[].postOne reel in the shared post shape: caption, video and thumbnail URLs, duration, views, likes, comments, publish time.
data.items[].post.authorThe account that posted the reel: username, display name, avatar, verified badge.
data.totalHow many reels use the sound, as Instagram counts them. 280,258 here.
data.ext.soundThe track: title, artist, whether it is an original sound, length, and its Spotify track ID when Instagram links one.
data.ext.is_trendingWhether Instagram marks the sound as trending.
unavailableFields this response could not fill. Here author.id is always null; use the username.

How do I get more than 12 reels?

Send pagination.next_cursor back as cursor, with the same audio_id, and stop when pagination.has_more is false. Each page is 10 credits.

Python: walk the first 5 pages
import os
import requests

BASE = "https://api.insightsocial.app/v1"
HEADERS = {"x-api-key": os.environ["INSIGHTSOCIAL_API_KEY"]}

params = {"audio_id": "1392969992841787"}
reels = []
for _ in range(5):
    body = requests.get(f"{BASE}/instagram/audio/reels", params=params, headers=HEADERS, timeout=120).json()
    reels += body["data"]["items"]
    if not body["pagination"]["has_more"]:
        break
    params["cursor"] = body["pagination"]["next_cursor"]

A popular sound can have hundreds of thousands of reels, so set a page limit before you start. See Pagination for the full rules.

What are the limits?

  • Order. Reels are not sorted by date or by views: one page mixes reels from June and October. Sort in your own code if you need to.
  • Shares and saves. Instagram does not show them on this surface, so engagement.shares and engagement.saves are null, which means unknown, not zero.
  • Author ID. post.author.id is null on this endpoint. Pass the username to GET /v1/instagram/profile if you need the full profile.
  • Public reels only. Reels from private accounts never appear.

What can I build with it?

  • Sound trend tracking. Store data.total per sound each day; a fast-rising count is a sound taking off. The music trend detection recipe combines it with TikTok's sound pages.
  • Creator discovery. The authors of the top reels on a sound are creators already working in that niche.
  • Campaign tracking. If your brand launched a sound, the reel list and total show who used it and how far it spread.

On this page