> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-audio-search>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-audio-search.mdx>

---

# Instagram audio search API

Find the songs and original sounds Instagram creators use. Search by keyword and get each one's audio id, title, artist, length, cover art and trending flag.

`GET /v2/instagram/audio/search` takes a required `query` string and returns matching audio in Instagram's ranking, licensed music and original sounds mixed. Read `data.audio`. Each result has `id`, `title`, `artist`, `artistHandle`, `durationMs`, `isOriginal`, `isExplicit`, `reelCount`, `isTrending`, `coverUrl`, `previewUrl`, `spotifyUrl` and `hasLyrics`, always present and `null` when Instagram doesn't say. `hasLyrics` is set for licensed music and `null` for original sounds; `previewUrl` and `spotifyUrl` are often `null` in search results.

Pass a result's `id` as `audioId` to `GET /v2/instagram/audio/{audioId}` for its full details, or to `GET /v2/instagram/audio/{audioId}/media` for the Reels that use it. An `id` can occasionally resolve to `not_found` there; then try the result's `assetId` as the `audioId`. `reelCount` is an exact count or `null`: search only has a rounded figure for popular audio, so use the audio endpoint for the count. `artistHandle` is set for original sounds and `null` for licensed music in search results. Instagram returns one ranked set per query, so there is no cursor. `meta.version` is `v2`.

## Request

- **Endpoint:** `GET /v2/instagram/audio/search`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by query
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v2/instagram/audio/search/get)
- **Platform page:** [/platforms/instagram](https://www.socialfetch.dev/platforms/instagram)

## FAQ

### How do I search Instagram audio via API?

Call `GET /v2/instagram/audio/search` with your Social Fetch API key (`x-api-key`) and a required `query` parameter. Read `data.audio` in the JSON response. See the API docs for parameters and examples.

### How much does Instagram audio search 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.

### How do I get the Reels that use a track I found?

Pass the result's `id` as the path parameter of `GET /v2/instagram/audio/{audioId}/media`. That route pages the public Reels using the audio and returns the audio itself on its first page.

### Why is reelCount null for popular audio?

Search only knows a rounded figure for audio used in a thousand or more Reels (such as 2.5M), and a rounded figure isn't a count, so it is `null`. Audio with fewer Reels has an exact `reelCount`. `GET /v2/instagram/audio/{audioId}` always has the exact count.

### Does it return licensed music and original sounds?

Both. `isOriginal` is true for an original sound (`artistHandle` is the account behind it) and false for licensed music. Original sounds have no cover art, so `coverUrl` is `null`.

### Is there pagination?

No. Instagram returns one ranked set of audio per query and does not page it, so a `cursor` is a `400 bad_request`. Change the query to see other audio.

### Why does an unusual query still return audio?

Instagram matches audio loosely, so a query with no obvious match still returns its nearest results. Compare `title` and `artist` with what you searched for before using a result.
