Instagram hub

Instagram audio Reels API

Page the public Reels that use a song or original sound, as the same media object every v2 endpoint returns, with the audio itself on the first page.

GET /v2/instagram/audio/{audioId}/media

1 credit Failed requests are free

About this endpoint

GET /v2/instagram/audio/{audioId}/media takes an audio id, the id of an audio search result or the audio.id of a Reel. Read data.lookupStatus first (found or not_found), then data.media: each Reel is the shared v2 media object (id, shortcode, url, owner, metrics, videoUrl, audio, coauthors and more), in Instagram's ranking for the audio, not chronological. The first page also has data.audio: the song or sound itself, with title, artist, length, reelCount and isTrending. Later pages have audio null.

When data.page.hasMore is true, pass data.page.nextCursor as the cursor query param on the next call. A cursor works only for the audio that issued it. Each page holds up to 12 Reels and is billed once, so read meta.creditsCharged. Use it to see who is using a sound, to find creators posting to a trending track, or to sample the Reels behind a song. For the audio alone, call GET /v2/instagram/audio/{audioId}. meta.version is v2.

Instagram audio Reels API FAQ

How do I list the Reels that use an Instagram audio via API?

Call GET /v2/instagram/audio/{audioId}/media with your Social Fetch API key (x-api-key) and an audio id in the path. Read data.lookupStatus, then data.media, and keep following data.page.nextCursor while data.page.hasMore is true. See the API docs for parameters and examples.

How much does the Instagram audio Reels API cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

Where do I get an audio id?

From GET /v2/instagram/audio/search, where each result's id is the audio id, or from the audio.id on a Reel returned by any v2 media endpoint.

How many Reels come back per page?

Up to 12 Reels per page for licensed music and original audio alike. The last page can be shorter or empty, and data.page.hasMore is false on it. Instagram can report more pages than it has, so an empty page can end a list; like any served page, it costs 1 credit.

Why is `audio` null on later pages?

Instagram describes the audio on the first page only, so audio is filled there and null after it. Call GET /v2/instagram/audio/{audioId} for the audio at any time.

What does not_found mean?

Instagram doesn't know the id. The response is a normal 200 with audio null and an empty media list, billed as a page. Audio with no Reels is found with an empty list. An id from GET /v2/instagram/audio/search can occasionally resolve to not_found; then try that search result's assetId as the audioId.

Can I page the list with a cursor from another audio?

No. The cursor is tied to the audio that issued it, so pass back the exact value you received with the same audioId. A cursor from another audio, or one that isn't ours, is a 400 bad_request.