TikTok

TikTok Song Details API

TikTok sound metadata — usageCount, artists[{id,secUid,handle}], audio{bpm,loudness,beats}, commerce rights (1 credit; 2 via the fallback path).

Paste a TikTok music/sound URL and get the sound as clean JSON. id is the music id from the URL, kept as a string end to end — never a JS number (19-digit TikTok ids sit past Number.MAX_SAFE_INTEGER and silently round). title, author, artistId/authorSecUid, artists[{id,uid,secUid,handle,displayName,verified,avatarUrl}] (null when unknown — never [] meaning “we know there are none”; a name-only artist is lifted from author when TikTok ships no uid). durationSeconds, coverUrl (canonical cover art; size variants live under raw.cover), playUrl, mediaUrlsExpireAt. playUrl on this surface is typically unsigned (no x-expires, no hex path stamp) and does not expire — mediaUrlsExpireAt stays null then, which is correct; when coverUrl carries x-expires (~48h) the field is that stamp. usageCount (videos using the sound) with usageCountIsApproximate (true on display-rounded totals; null when usageCount is null — never false about a missing count). createdAt, isExplicit/hasLyrics when present, and isOriginalSound. The differentiator: audio{bpm,loudnessLufs,amplitudePeak,beats,strongBeatUrl} — TikTok's own audio analysis when exposed (this is not a play URL). Commerce: isCommerceMusic, hasCommerceRight, commercialRightType decoded to none/commercial/licensed. Label tracks add matchedSong and musicReleaseInfo. Every 200 ships source (native/extended) and timings. Resilience: a transient TikTok mobile-API blip is retried in-request before the fallback path runs, and if the extended row comes back as a mostly-null shell (title but no author, cover or usage count) the native path is tried once more after the fallback's natural delay — so a 40s wait no longer ends in a shell of nulls. Pair with Music Posts to list videos on the sound. 1 credit when served natively; 2 credits when served via the fallback path (source: extended, may take longer) — in the last 30 days 38 of 43 calls were served that way and billed 2.

Docs: https://captapi.com/apis/tiktok-song-details

get/v1/tiktok/song-details

Request

  • Base URL: https://api.captapi.com
  • URL: https://api.captapi.com/v1/tiktok/song-details
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Query parameters

urlstring required

TikTok music/sound URL, e.g. https://tiktok.com/music/name-ID. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.

cacheboolean

Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Response

Success. The data object for this endpoint.

successunknown required

Changes

No recorded changes to this operation across all 3 revisions of this API.