Instagram Sound Posts API reference
Public Instagram posts and reels using a specific audio track. Takes named parameters, returns a cursor page, 1 credit a call.
This named API keeps Instagram fields in Instagram's own vocabulary. For a higher-level product page, see Instagram Sound Posts API.
Endpoint
GET /v1/instagram/sound/posts
Authorization: Bearer sv_live_... `POST` is also accepted with the same parameters in the request body. Send the key in the `Authorization` header, never in the query string.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
sound_id | string | yes | Required sound_id value for this endpoint. |
cursor | string | no | Cursor returned by the previous page. |
limit | integer | no | Maximum items to return, up to 50. |
Sample Request
This is a copyable request shape. Replace the sample values with the public Instagram target or parameters your workflow uses.
curl -G 'https://api.sourcevine.io/v1/instagram/sound/posts' \
-H 'Authorization: Bearer sv_live_...' \
--data-urlencode 'sound_id=627330822815460' \
--data-urlencode 'limit=20' Sample Response
The response below is illustrative: this endpoint has no verified recording. Live values depend on the public resource and its availability.
{
"success": true,
"available": true,
"data": {
"items": [
{
"postId": "C3xk9QLpQ2v",
"caption": "A small studio reset before the next launch.",
"views": 84210,
"likes": 11840,
"comments": 642,
"saves": 2309,
"cached": false
},
{
"postId": "C3xk9QLpQ2w",
"caption": "Packaging test reel.",
"views": 64218,
"likes": 8921,
"comments": 201,
"saves": 1402,
"cached": false
}
],
"nextCursor": "20",
"fetchedAt": "2026-08-28T09:41:44Z",
"cached": false,
"cacheAgeSeconds": 0
}
} Fields
| Field | Type | Notes |
|---|---|---|
items | array | Public Instagram posts or reels using the sound id. |
items[].postId | string | Platform post or reel id. |
items[].caption | string | null | Public text after contact-detail scrubbing. |
items[].views | integer | null | Present only where the platform reports it. |
nextCursor | string | null | Pass as cursor to request the next page. |
fetchedAt | ISO datetime | When Sourcevine read the public page. |
sourceTimestamp | ISO datetime | null | The platform timestamp when it is available. |
cached | boolean | True when this answer repeats an identical request made moments earlier. |
cacheAgeSeconds | integer | Seconds since the reading was taken. |
Availability States
| Status | Charged | Client behavior |
|---|---|---|
available | yes for live reads | Use data. |
not_found | yes | Store the state and stop polling. |
private | yes | Store the state and stop polling. |
unsupported | no | Fix the URL or call the matching API. |
upstream_unavailable | no | Retry later with backoff. |
Unavailable resources return `success: true`, `available: false`, `availability`, and `data: null`. API or authentication failures return `success: false` with an `error` object.
Billing
A call costs 1 credit. A deleted, private or empty resource is charged like any lookup and says so. An unsupported URL or a read we could not complete is not charged. The `X-Credits-Charged` response header is the source of truth for what happened on that request.
Successful responses include `fetchedAt`, the time we read the platform.
What This API Does Not Return
- No contact or bio fields: Bios, email addresses, phone numbers, postal addresses and messenger handles are outside the response contract.
- No private data: Private accounts, restricted content and unavailable resources return typed availability instead of guessed data.
- No sound lookup by name: This endpoint starts from a known sound id. Use sound search first when you only have a keyword or title.
Related
- Instagram API hub
- Instagram Sound Posts API product page
- Quickstart
- Credits and billing
- Instagram Post Stats API reference
- Instagram Profile API reference
- Instagram Channel Posts API reference
- Instagram Search API reference
Last updated 1 September 2026