TikTok · Guide

How to get TikTok song details

TL;DR
To get TikTok song details, sign up for a free Captapi key, then send one GET request to /v1/tiktok/song-details with your input. You get clean JSON back in seconds for 1 credit per call — no OAuth, scraping or platform SDKs. TikTok sound metadata — usageCount, artists[{id,secUid,handle}], audio{bpm,loudness,beats}, commerce rights (1 credit native).

How to get TikTok song details (step by step)

  1. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 2

    Call the TikTok Song Details API

    Send an authenticated GET request to /v1/tiktok/song-details with your input. No OAuth, no scraping setup.

  3. 3

    Read the JSON response

    Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.

Code example

curl "https://api.captapi.com/v1/tiktok/song-details?url=https%3A%2F%2Fwww.tiktok.com%2Fmusic%2FPumpin-Blood-7659457659034175489" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "platform": "tiktok",
    "url": "https://www.tiktok.com/music/Pumpin-Blood-7659457659034175489",
    "id": "7659457659034175489",
    "title": "Pumpin Blood",
    "author": "TWINSICK & NONONO",
    "artists": [
      {
        "id": "6749206263416161285",
        "uid": "6749206263416161285",
        "secUid": "MS4wLjABAAAA38xoRsEaXL5TLeUkSCGHTo-RvU9P485jMPZSIiBjhQ4-uQiq3rS4FIDrP5O_Y0yW",
        "handle": "twinsick",
        "displayName": "TWINSICK",
        "verified": true,
        "avatarUrl": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/119173022434f9a952213ee3344b3539~tplv-tiktokx-cropcenter-q:168:168:q70.webp?dr=10792&idc=my2&ps=87d6e48a&refresh_token=7dd6ae52&s=MUSIC_AWEME&sc=avatar&shcp=f6441914&shp=d05b14bd&t=223449c4&x-expires=1785783600&x-signature=NqCTSbDLT8umzbrTEziv7%2FkGOI0%3D"
      },
      {
        "id": "7308738121520235553",
        "uid": "7308738121520235553",
        "secUid": "MS4wLjABAAAA4_Viygw3rG9RFqavMKpGvCNaiyjZlizM_LYw1Qe4M5eEo-MLAztgyRwUbK6vYVNT",
        "handle": "nononoofficial",
        "displayName": "NONONO",
        "verified": false,
        "avatarUrl": "https://p16-common-sign.tiktokcdn.com/tos-useast2a-avt-0068-euttp/0ce5a0d0b5f22cf5d263875e8c0a2702~tplv-tiktokx-cropcenter-q:168:168:q70.webp?dr=10792&idc=my2&ps=87d6e48a&refresh_token=f4958d29&s=MUSIC_AWEME&sc=avatar&shcp=f6441914&shp=d05b14bd&t=223449c4&x-expires=1785783600&x-signature=lhH%2BscwS89J4V4PRehJ%2F3rjbKR8%3D"
      }
    ],
    "isOriginalSound": false,
    "isAuthorArtist": true,
    "album": "Pumpin Blood",
    "coverUrl": "https://p77-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/ogkAESQZAtNDXBDkBAgFZTWoEfNeqjEB8AV7MC.jpeg",
    "cover": {
      "large": "https://p77-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/ogkAESQZAtNDXBDkBAgFZTWoEfNeqjEB8AV7MC.jpeg",
      "medium": "https://p77-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/ogkAESQZAtNDXBDkBAgFZTWoEfNeqjEB8AV7MC.jpeg",
      "thumb": "https://p77-sg.tiktokcdn.com/aweme/100x100/tos-alisg-v-2774/ogkAESQZAtNDXBDkBAgFZTWoEfNeqjEB8AV7MC.jpeg"
    },
    "playUrl": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/oUBA3erMBM5LhL55CXiLQNZYpBfcqjBIingAtS",
    "usageCount": 11100,
    "usageCountIsApproximate": true,
    "createdAt": "2026-07-06T16:51:01.000Z",
    "isCommerceMusic": true,
    "hasCommerceRight": false,
    "commercialRightType": "licensed",
    "matchedSong": {
      "id": "7659443114000369680",
      "title": "Pumpin Blood",
      "author": "TWINSICK & NONONO",
      "fullDuration": 46673,
      "chorusInfo": {
        "startMs": 0,
        "durationMs": 30528
      }
    },
    "musicReleaseInfo": {
      "groupReleaseDate": "2026-07-06T00:00:00.000Z",
      "groupReleaseTimestamp": 1783296000,
      "isNewReleaseSong": true
    },
    "audio": {
      "bpm": null,
      "loudnessLufs": -8.160819,
      "amplitudePeak": 1.3610525,
      "beats": {
        "audioEffectOnset": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-v-2774/osAA6oEIIAgqFiTfrVFDceC9UIpRjtCtDBiZAl",
        "beatsTracker": "https://sf77-ies-music-sg.tiktokcdn.com/obj/tos-alisg-v-2774/oQEBvfGFLAzjne62AzRQFCuaNJJQQGAeAUXFyI",
        "energyTrace": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-v-2774/okGP6eevAu6XULAaetqCFjaIInQB9QOAz2EAJz",
        "mergedBeats": "https://sf77-ies-music-sg.tiktokcdn.com/obj/tos-alisg-v-2774/og6OlA6azQsFfaFeJEQAu6GUAhELIBjXCADven"
      },
      "strongBeatUrl": "https://sf77-ies-music-sg.tiktokcdn.com/obj/tos-alisg-v-2774/oYQUDfpKtEpQEARfgAqgFBAQErZECAB0BBpAlP"
    },
    "durationSeconds": 46,
    "artistId": "6749206263416161285",
    "authorSecUid": "MS4wLjABAAAA38xoRsEaXL5TLeUkSCGHTo-RvU9P485jMPZSIiBjhQ4-uQiq3rS4FIDrP5O_Y0yW",
    "isExplicit": null,
    "hasLyrics": null
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
urlstring YesTikTok 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.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Frequently asked questions

What does the TikTok Song Details API do?

The TikTok Song Details API lets you fetch full metadata and key stats from a public TikTok sound or track using one GET request to /v1/tiktok/song-details. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the TikTok Song Details API cost?

Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a TikTok API key or OAuth?

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

Does playUrl expire?

Usually no. Song-details playUrl typically has no x-expires and no hex path stamp — unlike video URLs (~24h) and cover art (~48h x-expires). mediaUrlsExpireAt is null next to a populated playUrl when the audio URL is unsigned; that is correct, not a missing parse. If coverUrl is signed, mediaUrlsExpireAt is the cover stamp. Persist the music id.

Why was id different from the number in the URL?

A 19-digit TikTok music id is past Number.MAX_SAFE_INTEGER. Anything that touches it as a JS number (JSON.parse, a numeric cast) silently rounds it — the classic trailing-zero signature (…896000 instead of …895873). This endpoint now keeps the URL id as a string end to end. Use id as the join key; it matches the URL and popular-songs songId.

Is the TikTok Song Details API suitable for production use?

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

Ready to get TikTok song details?

Start free with 100 credits — no credit card required.

Get your free API key