TikTok hub

TikTok video API

Resolve one public TikTok post by URL into structured video, author, music, metrics, and media fields in the shared Social Fetch envelope.

GET /v1/tiktok/videos

1 credit +10 credits for downloadMedia Max 11 credits Failed requests are free

About this endpoint

GET /v1/tiktok/videos takes a public TikTok url (full /@user/video/… links or short links). On a found lookup you get data.video (id, url, caption, createdAt, durationMs, mediaType, isAd), plus data.author, data.music, data.metrics, and data.media (download URLs, thumbnail, optional slideshow image list). Branch on data.lookupStatus (found / not_found) before you write rows. Optional query params: region, trim for a smaller payload, getTranscript=true to attach WebVTT when a caption track exists, and downloadMedia=true for hosted CDN assets in data.downloads.

Cost is 1 credit base. downloadMedia=true adds 10 credits (11 max on a successful lookup), even if downloads ends up empty. Prefer the dedicated transcript route when speech-to-text fallback matters; this route's getTranscript only returns a track when one is already available. Confirm billing with meta.creditsCharged.

TikTok video API FAQ

How do I get TikTok video details by URL via API?

Call GET /v1/tiktok/videos with your Social Fetch API key (x-api-key) and a public post url query param. Read data.lookupStatus, then data.video, data.author, data.metrics, and data.media. See the API docs for parameters and examples.

How much does the TikTok video endpoint cost?

1 credit base. downloadMedia=true adds 10 credits (11 total on a successful lookup). Check meta.creditsCharged on every response — that field is the billing source of truth.

What does downloadMedia do on GET /v1/tiktok/videos?

When true, Social Fetch attempts to include hosted CDN URLs in data.downloads when media is available. The surcharge applies only when media is downloaded; if downloads is empty you pay the 1-credit base. Leave it off unless you need durable hosted assets.

Can this endpoint return a transcript?

Yes, pass getTranscript=true to include WebVTT in data.transcript when a caption track exists. It does not run AI speech-to-text. For caption-or-AI fallback, use GET /v1/tiktok/videos/transcript with useAiFallback.

Does GET /v1/tiktok/videos work for photo carousels?

Yes. Posts can resolve as mediaType video or slideshow. Slideshows may populate data.media.slideshowImages with ordered image URLs. Pass the public post URL the same way you would for a video.

What URL formats does the TikTok video API accept?

Public TikTok video or photo post URLs, including /@user/video/… links and short links. Private or deleted posts resolve as not_found rather than a fake empty object.

How is this different from listing a profile's videos?

This route resolves one post by URL. GET /v1/tiktok/profiles/{handle}/videos pages a creator's feed by handle. Use the list route to discover posts, then this route (or transcript / comments) when you need depth on a single clip.

Do I need TikTok OAuth to look up a video?

No. You authenticate to Social Fetch with an API key. The route reads public post data; it does not act on behalf of a logged-in TikTok user.