Skip to main content

Documentation Index

Fetch the complete documentation index at: https://info.bundle.social/llms.txt

Use this file to discover all available pages before exploring further.

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

ParameterTypeRequiredDescription
teamIdstringYesTeam with the connected Instagram account.
audioTypeenumYesmusic or original_sound.
searchQuerystringNoOptional 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:
FieldMeaning
audio_idThe ID you pass as musicSoundId in the post payload.
audio_typemusic or original_sound.
titleTrack or sound title when Instagram provides it.
display_artistArtist name for music assets.
duration_in_msAudio duration in milliseconds when available.
download_urlPreview/download URL when Instagram provides it.
ig_usernameCreator 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

FieldTypeDescription
musicSoundIdstringRequired when using Instagram audio. Use audio_id from the search endpoint.
musicSoundVolumenumberOptional. Audio volume from 0 to 100. Defaults to 100.
videoOriginalSoundVolumenumberOptional. 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

TaskWhat to use
Search musicGET /api/v1/misc/instagram/audio?teamId=...&audioType=music
Search original soundsGET /api/v1/misc/instagram/audio?teamId=...&audioType=original_sound
Search by keywordAdd searchQuery=...
ID for postaudio_id from the search response
Post fielddata.INSTAGRAM.musicSoundInfo.musicSoundId
Need the full request/response schema? Check Swagger. The endpoint is under misc/instagram.