Instagram Music & Audio Scraper – Reels by Sound avatar

Instagram Music & Audio Scraper – Reels by Sound

Pricing

from $1.50 / 1,000 reel results

Go to Apify Store
Instagram Music & Audio Scraper – Reels by Sound

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

LanceAPI

Maintained by Community

Actor 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

  1. Open an Instagram Audio page and copy its URL, or copy its numeric Audio ID.
  2. Add the value to audioInputs.
  3. Choose how many Reels to explore for each Audio.
  4. Set a run-wide maxResults guardrail.
  5. 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
}
FieldTypeDefaultDescription
audioInputsarray of stringsRequiredInstagram Reels Audio URLs or numeric Audio IDs. Submit up to 200 unique inputs in one run; repeated inputs are normalized and processed once.
maxReelsPerAudiointeger50Controls how deeply each sound is explored, from 1 to 100 unique Reels. This prevents one high-volume Audio from consuming the complete run allowance.
maxResultsinteger500Run-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.

StatusPublic error codeMeaning and outputRetry?Reel result charge?
success—A unique public Reel was delivered with the metadata currently available.Not neededYes
errorINVALID_MUSIC_INPUTThe submitted value is not a supported Instagram Reels Audio URL or numeric Audio ID. A status row explains the problem.No; correct the inputNo
music_not_foundMUSIC_NOT_FOUNDThe Audio could not be found or is no longer publicly available. A status row is returned.Usually no; verify the URL or IDNo
no_public_mediaNO_PUBLIC_MEDIAThe Audio was recognized, but no usable public Reel result was available. A status row is returned.Usually no; public availability may changeNo
errorMUSIC_TEMPORARILY_UNAVAILABLEThe Audio could not be processed at this time. A status row is returned without exposing implementation details.Yes, try again laterNo

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 items
1 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 tierPrice per 1,000 Reel resultsPrice 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 os
from apify_client import ApifyClient
client = 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.

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 maxReelsPerAudio and maxResults values 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.