Skip to content
scrapeatlas.Dashboard

Get a TikTok video transcript

Try in Playground

Return the WebVTT caption file TikTok publishes for a video (TikTok's automatic captions or the creator's), in the requested language when TikTok has it.

GET/v1/tiktok/video/transcriptx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
urlstringrequiredquery

Video permalink or share link.

max 512 chars

Examplehttps://www.tiktok.com/@example/video/7400000000000000001
languagestringquery

Two-letter language code (en, es, fr, de, it, ja, ko, zh, ...) or TikTok's own code (eng-US); English by default. Falls back to the first published track with transcript_language_fallback.

Response fields
18
requestIdstring

Request correlation UUID.

Upstream calls made (the document, redirect hops, feed calls, the caption file, and every retried session), decoded bytes delivered to the parser and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed, or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

The www.tiktok.com document the operation was issued from (profile, video, live, search, tag, music or explore page), after accepted redirects.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

source is document (server-rendered state) or public_api (a feed call); complete means nothing was capped; warnings name each cap or fallback.

coverage.sourceenum

Always included.

one of: document, public_api

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

idstring

Video ID.

urlstring

Video permalink or share link.

absolute HTTPS URL

transcriptstring

The WebVTT file as published.

languagestring

Two-letter language code (en, es, fr, de, it, ja, ko, zh, ...) or TikTok's own code (eng-US); English by default. Falls back to the first published track with transcript_language_fallback.

transcriptSourcestring

ASR for TikTok's automatic captions, otherwise the creator's caption source as TikTok labels it.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
14
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, ambiguous or unsupported parameters, unsupported URL forms, handles, cursors, regions, sorts or languages.
401unauthorizedInvalid API key.
403restricted_pageTikTok restricts the account or post (private video, private account, region block, or a redirect to its login page).
404not_foundUnknown or removed account, post, hashtag or sound, a post without captions, or a TikTok status code naming a missing resource.
429upstream_rate_limitedTikTok rate limited the request.
502upstream_challengedTikTok answered its verification page, an HTTP 401/403, a document without the app state, or refused a feed call with an empty body (status challenged).
502unsafe_redirectTikTok redirected outside the requested resource.
502unsupported_pageLayout, identity or feed-envelope checks failed, or a non-JSON feed answer was served.
502response_too_largeThe upstream response exceeded 4 MiB (512 KiB for caption files).
502payload_too_complexThe embedded JSON exceeded parsing limits.
502request_limitThe upstream call budget was exhausted.
502upstream_errorNetwork failure, a stalled exit, an unexpected upstream status after one retry, or an unexpected TikTok status code.
503busyAll retrieval slots are occupied.
504timeoutThe 90-second deadline elapsed.