Instagram Reels Audio Scraper avatar

Instagram Reels Audio Scraper

Pricing

from $1.29 / 1,000 instagram audios

Go to Apify Store
Instagram Reels Audio Scraper

Instagram Reels Audio Scraper

Find the Reels using any Instagram sound or song. Get plays, likes, comments, captions, hashtags and creators for each Reel, plus the audio title, artist and total Reel count.

Pricing

from $1.29 / 1,000 instagram audios

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

3

Monthly active users

a day ago

Last modified

Categories

Share

Instagram Reels Audio Scraper

Instagram Reels Audio Scraper finds the Reels that use any Instagram sound or song. For each Reel it returns plays, likes, comments, caption, hashtags and creator. For each sound it adds the title, artist and the total number of Reels using it.

Paste an audio ID or an Instagram audio link and get up to about 200 Reels per sound, with play counts ready to rank, creator usernames for outreach and a summary row per sound. No Instagram login needed.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Use the Apify actor "parsebird/instagram-reels-audio-scraper" (actor ID: parsebird~instagram-reels-audio-scraper) to find Instagram Reels that use a sound, via the ApifyClient: client.actor("parsebird/instagram-reels-audio-scraper").call(run_input={"audioInputs": ["579408562507956"], "maxReelsPerAudio": 100, "maxResults": 500}). Inputs: audioInputs (array of strings, required: Instagram audio IDs such as "579408562507956" or audio URLs such as "https://www.instagram.com/reels/audio/579408562507956/"); includeReelsUsingAudio (boolean, default true; false = only one audio_summary row per sound); maxReelsPerAudio (integer, default 50; Instagram shows logged-out visitors about 200 Reels per sound); maxAudioPages (integer, optional, about 12 Reels per page); maxResults (integer, default 250, total rows); includeRaw (boolean, default false, adds the full Instagram media object as raw); proxyConfiguration (object, default Apify Proxy). Output: one dataset row per item with record_type "audio_summary" (audio_id, audio_url, audio_title, audio_artist, uses_original_audio, audio_reel_count, audio_reel_count_text, audio_cover_url, reels_found) or "reel" (reel_id, shortcode, reel_url, caption, caption_hashtags, mentions, play_count, ig_play_count, fb_play_count, like_count, comment_count, counts_hidden, video_duration_secs, has_audio, thumbnail_url, video_url, width, height, is_paid_partnership, coauthors, location_name, author_id, author_username, author_full_name, author_is_verified, author_profile_pic_url, posted_at, plus the audio fields). Every row has the same keys; source_input and scraped_at are always set. A RUN_SUMMARY record in the default key-value store holds savedCount, chargedCount, stopReason (finished | max-results-reached | charge-limit-reached | blocked | no-input) and per-audio stats. Pricing: pay per row saved. Full API spec: https://apify.com/parsebird/instagram-reels-audio-scraper/api. Get your token: https://console.apify.com/account/integrations.

What is Instagram Reels Audio Scraper?

Instagram Reels Audio Scraper is an Instagram audio scraper and unofficial Instagram audio API. It reads the public "Reels using this audio" feed on Instagram for any sound and turns it into clean data you can sort, chart and export.

Use it to answer questions like:

  • Which Reels are using this trending sound, and which ones got the most plays?
  • Who are the creators getting the most views with our song?
  • How many Reels use our campaign audio this week compared with last week?
  • Which captions and hashtags do creators pair with this sound?

The easiest way to try it: click Start with the example input. It returns the song Believer by Imagine Dragons plus 50 Reels that use it.

What can Instagram Reels Audio Scraper do?

  • šŸŽµ Sound to Reels: turn one audio ID into a list of the Reels using it, about 12 per page, up to roughly 200 per sound for logged-out visitors.
  • šŸ“Š Engagement per Reel: play_count, like_count and comment_count come back as numbers, ready to rank. Play counts are also split into Instagram and Facebook plays.
  • šŸ·ļø Sound details: title, artist, whether it is someone's original audio, cover image and Instagram's total Reel count for the sound (for example 2M reels).
  • šŸ‘¤ Creators: username, full name, verified badge, profile picture and user ID for every Reel, plus co-authors and paid-partnership flags.
  • šŸ”— Flexible input: paste audio IDs or any form of audio link, including https://www.instagram.com/reels/audio/<id>/<song-name>/ share links.
  • 🧾 Two clear record types: record_type separates the audio_summary row for each sound from its reel rows. Every row has the same keys, so the dataset loads cleanly into Excel, Google Sheets or a database.
  • ā±ļø Runs on Apify: schedule weekly runs to track how fast a sound spreads, call it through the Apify API or Apify MCP from an AI agent, and send results to Google Sheets, Slack, Make, Zapier or webhooks with integrations. Export as JSON, CSV, Excel, HTML or XML.

What data can you extract from Instagram audio?

FieldDescription
record_typeaudio_summary (one per sound) or reel (one per Reel)
audio_id, audio_urlThe sound's ID and its Instagram audio page
audio_title, audio_artist, uses_original_audioSong title and artist, or the creator's name and "Original audio"
audio_reel_count, audio_reel_count_textInstagram's total Reel count for the sound, e.g. 2000000 and 2M reels (summary rows)
reels_foundHow many Reels this run saved for the sound (summary rows)
reel_id, shortcode, reel_urlThe Reel's IDs and link
caption, caption_hashtags, mentionsCaption text plus hashtags and @mentions parsed from it
play_count, ig_play_count, fb_play_countTotal plays, and plays on Instagram and on Facebook
like_count, comment_count, counts_hiddenLikes and comments; like_count is empty when the creator hid likes
video_duration_secs, has_audio, width, heightVideo details
thumbnail_url, video_urlCover image and video file links (Instagram media links expire after a while)
author_username, author_full_name, author_is_verified, author_id, author_profile_pic_urlThe creator who posted the Reel
coauthors, is_paid_partnership, location_nameCollab co-authors, branded-content flag and tagged location
posted_at, scraped_at, source_inputPost time, collection time and the input that produced the row

How to scrape Reels by Instagram audio

  1. Find the sound on Instagram: open a Reel, tap the sound name at the bottom to open its audio page, then copy the link. The number in the link (/reels/audio/579408562507956/) is the audio ID.
  2. Open Instagram Reels Audio Scraper in Apify Console and click Try for free.
  3. Paste one or more audio IDs or links into Audio IDs or audio URLs.
  4. Set Max Reels per audio and Max results to the number of rows you need.
  5. Click Start. Download the dataset as JSON, CSV or Excel, or read it through the API. Open the Reels view to rank by plays, or the Audio summaries view for one row per sound.

Input examples

Reels that use a sound:

{
"audioInputs": ["579408562507956"],
"maxReelsPerAudio": 50
}

A deep pull on several sounds, links and IDs mixed:

{
"audioInputs": [
"https://www.instagram.com/reels/audio/579408562507956/believer/",
"237374766849855"
],
"maxReelsPerAudio": 500,
"maxResults": 1000
}

Weekly count check without the Reels (one row per sound):

{
"audioInputs": ["579408562507956", "237374766849855"],
"includeReelsUsingAudio": false
}
ParameterTypeRequiredDefaultDescription
audioInputsarrayYes—Instagram audio IDs or audio page URLs
includeReelsUsingAudiobooleanNotrueSave the Reels using each sound; false saves only the summary row
maxReelsPerAudiointegerNo50Reels to save per sound
maxResultsintegerNo250Total rows to save in the run (summary rows included)
maxAudioPagesintegerNono capFeed pages to read per sound (about 12 Reels each)
includeRawbooleanNofalseAdd the full Instagram media object as raw
proxyConfigurationobjectNoApify ProxyProxy settings (see FAQ)

Output example

A reel row:

{
"record_type": "reel",
"source_input": "579408562507956",
"audio_id": "579408562507956",
"audio_url": "https://www.instagram.com/reels/audio/579408562507956/",
"audio_title": "Believer",
"audio_artist": "Imagine Dragons",
"uses_original_audio": false,
"reel_id": "3977288709674031466",
"shortcode": "DcyKwJFStlq",
"reel_url": "https://www.instagram.com/reel/DcyKwJFStlq/",
"caption": "šŸŽµ Song: Believer\nšŸŽ¤ Artist: Imagine Dragons\nšŸ’æ Album: Evolve\n\nFollow for more songs @inklyricsdaily \n.\n.\n.\n.\n#lyrics #beliver #inklyricsdaily",
"caption_hashtags": ["lyrics", "beliver", "inklyricsdaily"],
"mentions": ["inklyricsdaily"],
"play_count": 7519,
"ig_play_count": 7182,
"fb_play_count": 337,
"like_count": 201,
"comment_count": 5,
"counts_hidden": false,
"video_duration_secs": 23.707,
"has_audio": true,
"thumbnail_url": "https://instagram.fkul10-2.fna.fbcdn.net/v/t51.82787-15/791143430_...",
"video_url": "https://instagram.fkul15-1.fna.fbcdn.net/o1/v/t2/f2/m86/AQNMzBZ...",
"width": 540,
"height": 960,
"is_paid_partnership": false,
"coauthors": [],
"location_name": null,
"author_id": "16754751770",
"author_username": "inklyricsdaily",
"author_full_name": "Ink Lyrics Daily",
"author_is_verified": false,
"posted_at": "2026-09-02T11:50:02.000Z",
"scraped_at": "2026-09-30T13:19:04.900Z"
}

The audio_summary row for the same sound (empty Reel fields left out here):

{
"record_type": "audio_summary",
"source_input": "579408562507956",
"audio_id": "579408562507956",
"audio_url": "https://www.instagram.com/reels/audio/579408562507956/",
"audio_title": "Believer",
"audio_artist": "Imagine Dragons",
"uses_original_audio": false,
"audio_reel_count": 2000000,
"audio_reel_count_text": "2M reels",
"audio_cover_url": "https://scontent.fkul15-1.fna.fbcdn.net/v/t39.30808-6/426851752_...",
"reels_found": 50,
"scraped_at": "2026-09-30T13:19:04.897Z"
}

Each run also writes a RUN_SUMMARY record to the default key-value store with savedCount, chargedCount, stopReason and per-sound stats (reels_saved, pages_read, more_available). stopReason is one of finished, max-results-reached, charge-limit-reached, blocked or no-input, so code and AI agents can branch on it.

How much does it cost to scrape Instagram audio?

Instagram Reels Audio Scraper uses pay-per-event pricing. You pay for each row saved to the dataset: each Reel, and each sound's summary row. Sounds that return nothing are not saved and not charged.

EventFreeBronzeSilverGold
Result scraped (per 1,000)$2.49$1.99$1.49$1.29

The example run (1 sound + 50 Reels = 51 rows) costs about $0.13 on the Free plan. A full pull of about 200 Reels for one sound costs about $0.50 on the Free plan. You can set a maximum cost per run in the run options, and the actor stops when it is reached.

Python and JavaScript API examples

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/instagram-reels-audio-scraper").call(run_input={
"audioInputs": ["579408562507956"],
"maxReelsPerAudio": 200,
})
reels = [r for r in client.dataset(run["defaultDatasetId"]).iterate_items() if r["record_type"] == "reel"]
for reel in sorted(reels, key=lambda r: r["play_count"] or 0, reverse=True)[:10]:
print(reel["play_count"], reel["author_username"], reel["reel_url"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/instagram-reels-audio-scraper').call({
audioInputs: ['https://www.instagram.com/reels/audio/237374766849855/'],
maxReelsPerAudio: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const summary = items.find((i) => i.record_type === 'audio_summary');
console.log(summary.audio_artist, summary.audio_title, summary.audio_reel_count_text);
items.filter((i) => i.record_type === 'reel').forEach((r) => console.log(r.author_username, r.play_count));

See the API tab for more clients and endpoints.

FAQ

How many Reels can I get per sound? Instagram shows logged-out visitors roughly 200 Reels per sound; in our tests we got between 196 and 251 for popular songs. Instagram's own total (for example "2M reels") is returned in audio_reel_count on the summary row. Smaller or newer sounds return fewer Reels.

Can it tell me which sound a Reel uses, or scan a profile or a keyword? No. Instagram hides the audio of a Reel from logged-out visitors, including on Reel pages, profiles and embeds. This actor does not log in to Instagram, so it works from the sound's side only: give it a sound and it finds the Reels using it. To get a sound's ID, open its audio page from the Instagram app or website.

Why is audio_title empty for some sounds? For some sounds Instagram shows a generic "Audio on Instagram" page to logged-out visitors and hides the name. The actor still returns the Reels using the sound, and logs a note for that sound.

Why did a sound return nothing? The ID may be wrong, the sound may have been removed or restricted, or the song may not be licensed in the country of the IP address Instagram sees. The run log names each sound that returned nothing, and it is not charged.

Why is like_count empty for some Reels? The creator hid the like count. counts_hidden is true for those Reels. Plays and comments are still returned.

Do I need a proxy? Keep the default. The actor uses the direct connection first and switches to Apify Proxy automatically if Instagram starts refusing requests.

How fast is it? In our tests, 10 sounds with up to 400 Reels each (440 rows in total) took about 90 seconds.

Do the video and image links last? Instagram media links expire after some time. Download the files soon after the run, or store reel_url and look the Reel up again later.

Can I schedule runs and connect other tools? Yes. Use Apify Schedules for recurring runs and integrations for Google Sheets, Zapier, Make, n8n, Slack or webhooks.

Something is missing or broken? Open an issue in the Issues tab. We read every report and fix problems quickly.

Instagram Reels Audio Scraper only collects information that Instagram shows to anyone without logging in: public Reels, their public engagement numbers and the public profile names of their creators. It does not log in, and it does not collect private accounts or private messages. Creator usernames and names can still be personal data under laws such as the EU GDPR and the California CCPA, so make sure you have a lawful reason to store and use them. Videos, images and music are protected by copyright; use the links for analysis, not for republishing. You should also check Instagram's terms of use. If you are unsure, ask a lawyer. Read more in Apify's blog post Is web scraping legal?.

Other social media and music scrapers