Instagram Reels Audio Scraper
Pricing
from $1.29 / 1,000 instagram audios
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
Maintained by CommunityActor 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_countandcomment_countcome 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_typeseparates theaudio_summaryrow for each sound from itsreelrows. 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?
| Field | Description |
|---|---|
record_type | audio_summary (one per sound) or reel (one per Reel) |
audio_id, audio_url | The sound's ID and its Instagram audio page |
audio_title, audio_artist, uses_original_audio | Song title and artist, or the creator's name and "Original audio" |
audio_reel_count, audio_reel_count_text | Instagram's total Reel count for the sound, e.g. 2000000 and 2M reels (summary rows) |
reels_found | How many Reels this run saved for the sound (summary rows) |
reel_id, shortcode, reel_url | The Reel's IDs and link |
caption, caption_hashtags, mentions | Caption text plus hashtags and @mentions parsed from it |
play_count, ig_play_count, fb_play_count | Total plays, and plays on Instagram and on Facebook |
like_count, comment_count, counts_hidden | Likes and comments; like_count is empty when the creator hid likes |
video_duration_secs, has_audio, width, height | Video details |
thumbnail_url, video_url | Cover 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_url | The creator who posted the Reel |
coauthors, is_paid_partnership, location_name | Collab co-authors, branded-content flag and tagged location |
posted_at, scraped_at, source_input | Post time, collection time and the input that produced the row |
How to scrape Reels by Instagram audio
- 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. - Open Instagram Reels Audio Scraper in Apify Console and click Try for free.
- Paste one or more audio IDs or links into Audio IDs or audio URLs.
- Set Max Reels per audio and Max results to the number of rows you need.
- 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}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
audioInputs | array | Yes | ā | Instagram audio IDs or audio page URLs |
includeReelsUsingAudio | boolean | No | true | Save the Reels using each sound; false saves only the summary row |
maxReelsPerAudio | integer | No | 50 | Reels to save per sound |
maxResults | integer | No | 250 | Total rows to save in the run (summary rows included) |
maxAudioPages | integer | No | no cap | Feed pages to read per sound (about 12 Reels each) |
includeRaw | boolean | No | false | Add the full Instagram media object as raw |
proxyConfiguration | object | No | Apify Proxy | Proxy 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.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| 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 ApifyClientclient = 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.
Is it legal to scrape Instagram audio pages?
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
- Spotify Play Count Scraper & API: play counts for Spotify tracks and albums, useful next to Instagram sound data
- SoundCloud Scraper: tracks, plays and artists from SoundCloud
- Threads Scraper: profiles, posts and search results from Meta's Threads
- Threads Search Scraper: Threads posts for any keyword or tag
- TikTok Live Search Scraper: live TikTok streams for any keyword
- TikTok Slideshow Downloader: photos and music from TikTok slideshow posts
- Bio-Link Scraper: contact links from Linktree, Beacons and similar pages, useful for creator outreach
- Social Handle Checker: check whether a handle exists on TikTok, X, Snapchat, Twitch and GitHub