Instagram lets Reels use audio assets from its audio API. In bundle.social, you search for an audio asset first, then pass its audio_id as data.INSTAGRAM.musicSoundInfo.musicSoundId when creating a Reel.
Instagram audio search and Reel audio publishing require the Instagram account to be connected through Facebook Login. Direct Instagram OAuth (instagramConnectionMethod: "INSTAGRAM") cannot use this feature.
The Endpoint
GET /api/v1/misc/instagram/audio
Searches Instagram music or original sounds that can be attached to Reels.
Query Parameters
| Parameter | Type | Required | Description |
|---|
teamId | string | Yes | Team with the connected Instagram account. |
audioType | enum | Yes | music or original_sound. |
searchQuery | string | No | Optional keyword search, max 100 characters. |
GET /api/v1/misc/instagram/audio?teamId=team_123&audioType=music&searchQuery=lofi
Response Shape
{
"audio": [
{
"audio_id": "17900000000000000",
"audio_type": "music",
"title": "Late Night Drive",
"display_artist": "Example Artist",
"duration_in_ms": 30000,
"cover_artwork_thumbnail_url": "https://...",
"download_url": "https://..."
},
{
"audio_id": "17800000000000000",
"audio_type": "original_sound",
"title": "Original audio",
"ig_username": "creator",
"profile_picture_url": "https://..."
}
]
}
Important fields:
| Field | Meaning |
|---|
audio_id | The ID you pass as musicSoundId in the post payload. |
audio_type | music or original_sound. |
title | Track or sound title when Instagram provides it. |
display_artist | Artist name for music assets. |
duration_in_ms | Audio duration in milliseconds when available. |
download_url | Preview/download URL when Instagram provides it. |
ig_username | Creator username for original sounds when available. |
Using Audio In Reels
Use the audio_id from the search response as data.INSTAGRAM.musicSoundInfo.musicSoundId.
{
"teamId": "team_123",
"title": "Reel with Instagram audio",
"status": "SCHEDULED",
"postDate": "2026-06-01T15:00:00.000Z",
"socialAccountTypes": ["INSTAGRAM"],
"data": {
"INSTAGRAM": {
"type": "REEL",
"text": "New Reel",
"uploadIds": ["upload_video_123"],
"musicSoundInfo": {
"musicSoundId": "17900000000000000",
"musicSoundVolume": 80,
"videoOriginalSoundVolume": 20
}
}
}
}
Audio Fields
| Field | Type | Description |
|---|
musicSoundId | string | Required when using Instagram audio. Use audio_id from the search endpoint. |
musicSoundVolume | number | Optional. Audio volume from 0 to 100. Defaults to 100. |
videoOriginalSoundVolume | number | Optional. Original video volume from 0 to 100. Defaults to 100. |
Rules
- Works only for
data.INSTAGRAM.type: "REEL".
- Does not work for feed posts, carousels, or Stories.
- Requires Instagram connected via Facebook Login.
- Direct Instagram OAuth returns a clear
400 error for audio search.
- If you pass
musicSoundInfo for a non-Reel post, validation fails before publishing.
Quick Reference
| Task | What to use |
|---|
| Search music | GET /api/v1/misc/instagram/audio?teamId=...&audioType=music |
| Search original sounds | GET /api/v1/misc/instagram/audio?teamId=...&audioType=original_sound |
| Search by keyword | Add searchQuery=... |
| ID for post | audio_id from the search response |
| Post field | data.INSTAGRAM.musicSoundInfo.musicSoundId |
Need the full request/response schema? Check Swagger. The endpoint is under misc/instagram.