TikTok Video Details API
Get everything about one TikTok video from its URL — caption, view/like/comment/share/save counts, creator, sound, hashtags, and thumbnail.
Paste any public TikTok video URL and the TikTok Video Details API returns the full picture as clean JSON: the caption, when it was posted, how long it runs, and its engagement — views, likes, comments, shares, and saves. You also get the creator (username, display name, follower count, verified badge, and avatar), the sound/music name, the list of hashtags, and a thumbnail image. Use it to build analytics dashboards, track a campaign, or enrich a content database. source is native; timings.path is mobile | web (same vocabulary as kick/clip and twitter/profile — fetchPath is gone). Mobile is TikTok's aweme detail — exact integers with per-counter *IsApproximate flags set false, plus downloads and play URLs when TikTok exposes them. When every mobile exit is soft-blocked, web serves the page's display-rounded counters; the flags say so per counter. The web path does not populate videoUrl / downloadUrl / downloadUrlNoWatermark / downloads / author.region — that is a logged-out web limit, documented here, not a payload apology. mediaUrlsExpireAt still fills from thumbnailUrl / avatar when those carry a parseable stamp. adAuthorized is whether the creator permitted Spark Ads on this organic video — it is not "this item is an advertisement". isCommerce / isBrandedContent / isPaidPartnership stay separate; filter those if you want commercial content. author.region is the creator's country on the mobile aweme (null on web when TikTok omits it) — there is no flat authorRegion twin. locationCreated is the video's posting locale, a different signal. author.followersIsApproximate uses the same display-roundness ladder as engagement (v ≥ 10 000 and a clean hundred/100k). followersAsOf is gone — it always equalled fetchedAt. fetchedAt is when the fetch started, not when it returned. status.allowComment / allowShare are booleans: unknown bits are false (shared serialisation rule), not null next to the other status flags. TikTok CDN media URLs die on two windows: video/download ~24h (hex path timestamp or expire=), thumbnails/covers ~48h (x-expires). mediaUrlsExpireAt is the earliest — persist ids, not the URL. For creator country with regionSource / regionConfidence, use TikTok Profile Region. This endpoint focuses on metadata and stats. No TikTok login and no infrastructure to maintain on your side. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/tiktok/video-details
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Public TikTok video URL, e.g. https://www.tiktok.com/@khaby.lame/video/7646812028874673439. Not a YouTube/Instagram/Facebook URL. 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.
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.
Changes
No recorded changes to this operation across all 3 revisions of this API.