Instagram Music & Audio Scraper – Reels by Sound
Pricing
from $1.50 / 1,000 reel results
Instagram Music & Audio Scraper – Reels by Sound
Find public Instagram Reels using a specific song, sound, or Original Audio. Extract Reel URLs, videos, creators, plays, likes, comments, and music metadata from Instagram Audio URLs or numeric Audio IDs.
Pricing
from $1.50 / 1,000 reel results
Rating
0.0
(0)
Developer
LanceAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Instagram Music & Audio Scraper API
Turn an Instagram Audio URL or numeric Audio ID into structured records for the public Reels using that sound. Each result can include Reel media, creator details, engagement signals, and music metadata—ready for export or downstream analysis.
One Audio → many Reels. Duplicate-safe discovery. Result-based billing.
- Discover multiple public Reels from one song, sound, or Original Audio.
- Batch up to 200 Audio URLs or IDs in one run.
- Process repeated Audio inputs once.
- Deliver the same Reel once per run, even when it appears across pages or Audio inputs.
- Keep the Dataset cleaner while avoiding duplicate Reel result charges.
Instagram Audio URL or ID↓Public Reels using that sound↓Reel + creator + engagement + music metadata
Key features
- One Audio discovers many Reels: Start from a single Instagram Audio URL or ID and collect individual public Reel records instead of opening each usage manually.
- Licensed music and Original Audio: Work with released tracks, catalog music, creator sounds, and Original Audio when public data is available.
- Useful structured output: Receive Reel links and media together with creator, engagement, and music information in one Dataset.
- Batch processing: Submit multiple Audio URLs or IDs in one run for repeatable research and automation workflows.
- Duplicate-safe results: Repeated Audio inputs are processed once, and the same Reel is delivered once per run.
- Result-volume controls: Limit exploration per sound and across the complete run to keep Dataset size and result-fee exposure predictable.
Use Instagram Reels Downloader instead when you already know the exact Reel URLs and want to extract those specific Reels.
What data can you extract?
Each successful Dataset item represents one unique public Reel using the requested Instagram audio. Available fields can include:
- Audio ID, audio asset ID, audio cluster ID, and canonical music ID
- Licensed music or Original Audio classification
- Track title, artist, artist username, duration, cover, and audio URL
- Reel ID, shortcode, canonical URL, caption, publication time, and duration
- Download-ready Reel video and thumbnail URLs
- Creator ID, username, full name, and verification status
- Play, like, comment, and share counts when available
Instagram may not expose every optional field for every sound or Reel. Missing metadata is omitted or returned as null without failing an otherwise usable result.
How to scrape Instagram Reels by music or audio
- Open an Instagram Audio page and copy its URL, or copy its numeric Audio ID.
- Add the value to
audioInputs. - Choose how many Reels to explore for each Audio.
- Set a run-wide
maxResultsguardrail. - Start the Actor and open the Dataset.
You do not need to determine whether a number is an audio asset ID, audio cluster ID, or canonical music ID before running the Actor.
Supported Instagram audio types
- Licensed music: Released tracks and licensed catalog music used in public Reels.
- Original Audio: Creator sounds and original audio attached to public Reels.
This version starts from an Instagram Reels Audio URL or numeric Audio ID. It does not search by keyword, artist name, song title, or trending status.
Input
{"audioInputs": ["https://www.instagram.com/reels/audio/1005688403740006/"],"maxReelsPerAudio": 50,"maxResults": 500}
| Field | Type | Default | Description |
|---|---|---|---|
audioInputs | array of strings | Required | Instagram Reels Audio URLs or numeric Audio IDs. Submit up to 200 unique inputs in one run; repeated inputs are normalized and processed once. |
maxReelsPerAudio | integer | 50 | Controls how deeply each sound is explored, from 1 to 100 unique Reels. This prevents one high-volume Audio from consuming the complete run allowance. |
maxResults | integer | 500 | Run-wide output guardrail, from 1 to 10,000 successful unique Reels. Use it to control Dataset size and result-fee exposure across a batch. It is not a total cost cap. |
Supported input formats:
https://www.instagram.com/reels/audio/1005688403740006/1005688403740006
Output
Successful results are stored as one Dataset row per unique Reel. If an Audio input is invalid, unavailable, not found, or has no public Reel results, it can instead produce a non-billable status row explaining what happened. Unavailable inputs do not silently disappear.
This example illustrates the Dataset structure. Values are sample data and are not presented as a live Instagram result.
{"success": true,"status": "success","inputAudio": "https://www.instagram.com/reels/audio/1005688403740006/","audio": {"id": "1005688403740006","type": "licensed_music","title": "Sample track","artist": "Sample artist","durationSeconds": 97.74},"reel": {"id": "1234567890123456789_123456789","shortcode": "SampleCode1","url": "https://www.instagram.com/reel/SampleCode1/","caption": "Sample caption","publishedAt": "2026-01-15T10:30:00.000Z","durationSeconds": 18.5,"videoUrl": "https://cdn.example.com/sample-reel.mp4"},"creator": {"id": "123456789","username": "sample_creator","fullName": "Sample Creator","verified": false},"engagement": {"playCount": 12500,"likeCount": 840,"commentCount": 24,"shareCount": 51},"error": null}
Media URLs can expire. Download the files or copy them into your own storage soon after the run.
Status and errors
Status rows are not charged as Reel results.
| Status | Public error code | Meaning and output | Retry? | Reel result charge? |
|---|---|---|---|---|
success | — | A unique public Reel was delivered with the metadata currently available. | Not needed | Yes |
error | INVALID_MUSIC_INPUT | The submitted value is not a supported Instagram Reels Audio URL or numeric Audio ID. A status row explains the problem. | No; correct the input | No |
music_not_found | MUSIC_NOT_FOUND | The Audio could not be found or is no longer publicly available. A status row is returned. | Usually no; verify the URL or ID | No |
no_public_media | NO_PUBLIC_MEDIA | The Audio was recognized, but no usable public Reel result was available. A status row is returned. | Usually no; public availability may change | No |
error | MUSIC_TEMPORARILY_UNAVAILABLE | The Audio could not be processed at this time. A status row is returned without exposing implementation details. | Yes, try again later | No |
How many Reels can one Instagram Audio URL return?
One Instagram Audio URL can return many Dataset items:
1 Audio URL → 50 unique Reels → 50 Dataset items1 Audio URL → 100 unique Reels → 100 Dataset items
maxReelsPerAudio limits each Audio input. maxResults limits successful unique results across the complete run. For example, ten Audio inputs with maxReelsPerAudio: 100 and maxResults: 300 stop after 300 successful unique Reel results.
The actual number can be lower when fewer public Reels are available, results overlap across Audio inputs, pagination ends, or a Reel is not publicly accessible.
Pricing
Reel results
Each successfully delivered unique Reel is one billable result. The rate depends on your Apify membership tier:
| Apify tier | Price per 1,000 Reel results | Price per result |
|---|---|---|
| FREE | $2.00 | $0.0020 |
| BRONZE | $1.80 | $0.0018 |
| SILVER | $1.60 | $0.0016 |
| GOLD | $1.50 | $0.0015 |
Music processing
Each unique valid Instagram Music or Audio input that enters processing has a small processing fee of $1.00 per 1,000 inputs ($0.001 per input) for every membership tier. This is a low-frequency event: one Audio input can return many Reel results, while repeated or invalid inputs are not processed twice and do not create this charge.
A very small Actor start fee also applies once per run.
Duplicate protection
The same Reel is saved and billed once per run, even if it is discovered again across pages or Audio inputs. Repeated Audio inputs are also processed once.
Failure protection
Invalid or empty Audio inputs do not create processing or Reel result charges. A valid Audio input is charged once when processing begins, even if Instagram has no public Reels for it or processing later fails. Failed, unavailable, duplicate, and unsaved Reels do not create Reel result charges.
Control result volume
Use maxReelsPerAudio to control exploration depth per sound and maxResults to control delivered results across the entire batch.
Use cases
Music marketing
Collect structured public Reel, creator, and engagement data for a released song, then use it in your own music campaign analysis.
UGC campaign tracking
Collect public Reels using a branded campaign sound and export the Dataset for reporting or review.
Creator discovery
Build a structured list of creators already publishing public Reels with a particular sound for downstream research.
Trend research
Export Reels using the same audio and analyze publishing patterns, creators, captions, and available engagement in your own tools.
Competitive research
Collect structured Reel and engagement data and use it for downstream competitive analysis within a market or content niche.
Instagram Music API and Instagram Audio API
Run the Actor through the Apify API and use the Dataset in automated workflows. Apify supports API runs, schedules, webhooks, integrations, and exports such as JSON, CSV, and Excel.
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("lance_api/instagram-music-audio-scraper-api").call(run_input={"audioInputs": ["https://www.instagram.com/reels/audio/1005688403740006/"],"maxReelsPerAudio": 50,"maxResults": 500,})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())for item in items:print(item["status"], item.get("reel", {}).get("url"))
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('lance_api/instagram-music-audio-scraper-api').call({audioInputs: ['https://www.instagram.com/reels/audio/1005688403740006/'],maxReelsPerAudio: 50,maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {console.log(item.status, item.reel?.url);}
cURL
curl -X POST \"https://api.apify.com/v2/acts/lance_api~instagram-music-audio-scraper-api/run-sync-get-dataset-items?timeout=300" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"audioInputs": ["https://www.instagram.com/reels/audio/1005688403740006/"],"maxReelsPerAudio": 50,"maxResults": 500}'
FAQ
What is an Instagram Audio URL?
An Instagram Audio URL is the public page for a song, sound, or Original Audio used by Reels. It commonly follows instagram.com/reels/audio/NUMERIC_ID/.
Can I scrape Original Audio?
Yes. The Actor supports public Original Audio and creator sounds when that information is publicly available.
Can I enter an Audio ID instead of a URL?
Yes. Add the numeric ID directly to audioInputs; a full Instagram Audio URL is not required.
Do I need an audio asset ID or audio cluster ID?
No. For most cases, paste the Instagram Reels Audio URL. The Actor handles supported identifiers and returns resolved music metadata when available.
How many Reels can I get from one Audio?
Set maxReelsPerAudio from 1 to 100. The actual result count depends on the public Reels available for that sound and the run-wide maxResults guardrail.
Why can one Audio input return many results?
One sound can be reused by many Reels. Each unique public Reel usage is saved as a separate Dataset record so it can be searched, filtered, exported, and billed independently.
Are duplicate Reels charged twice?
No. A Reel discovered more than once across pages or Audio inputs is delivered and charged once per run.
Does the Actor return video URLs?
Yes, when a usable public video URL is available. Returned media URLs are temporary and should be downloaded promptly.
Can I process multiple Audio URLs?
Yes. Put multiple Instagram Audio URLs or IDs in audioInputs. maxReelsPerAudio applies to each input, while maxResults guards the complete run output.
How do I find Instagram Reels using the same audio?
Paste the Instagram Audio URL into audioInputs. The Actor returns individual public Reels using that sound.
When should I use this Actor instead of Instagram Reels Downloader?
Use Instagram Music & Audio Scraper when Audio is your starting point and you want to discover multiple Reels using it. Use Instagram Reels Downloader when you already have specific Reel URLs.
Public data and responsible use
This is an unofficial Actor and is not affiliated with, endorsed by, or sponsored by Instagram or Meta.
The Actor works with publicly accessible information. Availability and optional metadata can change, and some Audio pages or Reels may be unavailable because of deletion, privacy settings, regional restrictions, or platform changes. Use the returned data responsibly and follow applicable laws, platform terms, and privacy requirements.
Related Instagram Actors
Instagram Reels Downloader
Use Instagram Reels Downloader when you already know the exact Reel URL and want to extract or download that Reel directly. It also supports public Profile and mixed-media workflows.
Instagram Video AI Transcript Scraper API
Use Instagram Video AI Transcript Scraper API when you need speech-to-text transcripts and optional translation from a public Instagram video.
Support
For help, email lanceapi2026@hotmail.com or open an issue on the Actor page.
Include:
- Apify Run ID
- A non-sensitive public Instagram Audio URL or Audio ID
- The
maxReelsPerAudioandmaxResultsvalues used - Expected result versus actual result
- Returned public status and error code
Never send your APIFY_TOKEN, cookies, session data, passwords, API keys, proxy credentials, or Authorization headers.