# Sound

Schemas

Sounds posts use (catalog tracks or creators' original audio) with their artist, length, audio link and how many posts use them.

## Endpoints

2 endpoints return sounds on Instagram and TikTok.

- [GETInstagram Audio API`/v1/instagram/sound`](https://socialtap.dev/docs/reference/instagram/sound/index.md)
- [GETTikTok Sound API`/v1/tiktok/sound`](https://socialtap.dev/docs/reference/tiktok/sound/index.md)

## Schema

Every endpoint above returns this object as `data`. The standard [`meta`](https://socialtap.dev/docs/reference/index.md#meta) comes with every response.

| Field | Type | Description |
| --- | --- | --- |
| `platform` | `string` | Platform ID (tiktok, instagram, …). |
| `id` | `string` | Platform-native sound ID (string), the one in its page's URL; equals the ID a post's sound reference carries. |
| `url` | `string` (uri) or `null` | Canonical page of the sound, listing the posts that use it; null where the platform has none (Facebook). |
| `title` | `string` or `null` | Sound or track title as shown (an original sound's generated title, e.g. "original sound - \<name>", included). |
| `author_name` | `string` or `null` | Who the platform credits for the sound: a track's artist(s) as one display string, or the creator's name for an original sound. |
| `authors` | `object[]` | The platform accounts behind author_name (a track's artists, or the creator of an original sound), in the platform's order; \[\] when none is linked. |
| `authors[].id` | `string` or `null` | Platform-native account ID; null when only the handle is known. |
| `authors[].username` | `string` or `null` | Handle without the @; null when the account has none. |
| `authors[].display_name` | `string` or `null` | Display name shown on the profile. |
| `authors[].url` | `string` (uri) or `null` | Canonical profile URL. |
| `authors[].avatar_url` | `string` (uri) or `null` | Profile picture URL. Platform CDN URLs can expire within hours. |
| `authors[].is_verified` | `boolean` or `null` | Platform verification badge; null where the platform has no badge. |
| `is_original` | `boolean` or `null` | An original sound a creator uploaded or recorded (false: a catalogue or licensed track). |
| `duration_ms` | `integer` or `null` | Length of the audio the platform serves for the sound, in milliseconds (TikTok: the usable clip, often shorter than the full song). |
| `cover_url` | `string` (uri) or `null` | Cover art or thumbnail image URL. Platform CDN URLs can expire within hours. |
| `play_url` | `string` (uri) or `null` | Audio file URL (a preview where the platform serves only one); signed links expire within hours; null when not exposed. |
| `streaming_links` | `object[]` | The same track on music streaming services, as the platform links it; \[\] when none (always for original sounds). |
| `streaming_links[].service` | `string` | The streaming service. New values may be added; treat unknown values as other.<br>One of `spotify`, `apple_music` |
| `streaming_links[].url` | `string` (uri) | The track's public page on the service. |
| `metrics` | `object` | Counts at fetch time; null = hidden or not exposed, 0 = zero. |
| `metrics.post_count` | `integer` or `null` | Posts using the sound (TikTok videos, Instagram and Facebook reels, YouTube Shorts), as the platform counts them. |
| `platform_specific` | `object` | Fields only this platform has, under its ID (platform_specific.\<platform>); each null when unknown. |
| `platform_specific.tiktok` | `object` or `null` | A TikTok sound's own fields. |
| `platform_specific.tiktok.album` | `string` or `null` | Album of a catalogue track; null for original sounds and when not stated. |
| `platform_specific.tiktok.is_commercial_music` | `boolean` or `null` | TikTok's own is_commerce_music flag, as served. Not a licence check: TikTok sets it on original sounds and leaves it false on many licensed catalogue tracks, so it does not say a sound is cleared for business accounts or ads. |
| `platform_specific.tiktok.matched_song` | `object` or `null` | The catalogue song TikTok matched the sound's audio to (for a catalogue track, the track itself): the song behind an original sound. null when TikTok names none. |
| `platform_specific.tiktok.matched_song.id` | `string` or `null` | TikTok's ID of the song (not a sound ID: a sound endpoint does not take it). An official clip of a song and the original sounds matched to it share it, so grouping on it counts every use of the song; null when not stated. |
| `platform_specific.tiktok.matched_song.streaming_links` | `object[]` | The matched song on music streaming services, as TikTok links it; \[\] when none. |
| `platform_specific.tiktok.matched_song.streaming_links[].service` | `string` | The streaming service. New values may be added; treat unknown values as other.<br>One of `spotify`, `apple_music` |
| `platform_specific.tiktok.matched_song.streaming_links[].url` | `string` (uri) | The track's public page on the service. |
| `platform_specific.instagram` | `object` or `null` | An Instagram audio's own fields. |
| `platform_specific.instagram.asset_id` | `string` or `null` | ID of a licensed track's audio asset (not the sound's page ID); null for original audio. |
| `platform_specific.instagram.is_explicit` | `boolean` or `null` | Instagram marks the track explicit. |
| `platform_specific.instagram.is_trending` | `boolean` or `null` | Instagram labels the audio trending in reels. |
| `platform_specific.instagram.is_lyrics_shown` | `boolean` or `null` | Instagram has the licensed track's lyrics and shows them with it; null for original audio. |
| `platform_specific.instagram.created_at` | `string` (date-time) or `null` | When the creator's original audio was created (RFC 3339 UTC): when the reel it comes from was published; null for a licensed track. |
| `platform_specific.instagram.source_post` | `object` or `null` | The reel an original audio comes from (the first published with it); null for a licensed track. |
| `platform_specific.instagram.source_post.id` | `string` or `null` | The reel's shortcode: its post ID (equals post.id of instagram.post). |
| `platform_specific.instagram.source_post.url` | `string` (uri) or `null` | The reel's link (instagram.com/reel/\<id>/). |
| `approximate_fields` | `string[]` | JSON paths of values rounded by the platform or parsed from display text (e.g. metrics.post_count from "80K reels"). A list path means the list may be incomplete. \[\] when all exact. |
| `unknown_fields` | `string[]` | JSON paths of lists whose \[\] means unknown rather than none (a source that cannot see them); null already means unknown for every other field. \[\] when every list is known. |

## Item errors

Besides the [request-level errors](https://socialtap.dev/docs/errors/index.md) every endpoint can return, sound endpoints return:

| Code | HTTP | Retry | Meaning | What to do |
| --- | --- | --- | --- | --- |
| `not_found` | 404 | No | The item does not exist or was deleted. On GET /v1/requests/{id}/response: the response was not kept (details.reason says why). | Check the link or ID. Do not retry. |
| `private_or_unavailable` | 403 | No | The item exists but is not public: it is private, age- or region-restricted, or needs a login to view. It shares 403 with forbidden (which is about the key), so branch on the code. | Only public items can be fetched. Do not retry. |

---

[HTML version](https://socialtap.dev/resources/sound/) · [Docs index for AI agents](https://socialtap.dev/llms.txt) · [All docs in one file](https://socialtap.dev/llms-full.txt)
