Skip to Content

TikTok Transcript API

One REST endpoint that returns a timestamped transcript for any public TikTok URL. Native captions when they exist, AI transcription when they don't. Python and JavaScript SDKs.

✔️ GET /v1/transcript?url=<tiktok url> returns segmented JSON with ms offsets

✔️ No TikTok developer account, no scraper to maintain, vm./vt. short links accepted

✔️ Concurrent requests for bulk workloads; 100 free requests per month

Trusted by top teams

Appsflyer
Bosch
Hellofresh
Huel
Openai
Usage
curl 'https://api.supadata.ai/v1/transcript?url=https://vm.tiktok.com/ZNdfSseUr' \
  -H 'x-api-key: {your_api_key}'
{
  "lang": "en",
  "availableLangs": [
    "en"
  ],
  "content": [
    {
      "text": "So what's your take? Pasta with garlic and oil",
      "duration": 2080,
      "offset": 100
    },
    {
      "text": "is a thousand times better than pasta with tomato sauce.",
      "duration": 2200,
      "offset": 2181
    },
    {
      "text": "Hundred percent disagree. Disagree.",
      "duration": 1719,
      "offset": 4382
    },
    {
      "text": "Give me the red sauce, baby.",
      "duration": 1079,
      "offset": 6102
    },
    {
      "text": "Listen man",
      "duration": 439,
      "offset": 7182
    },
    {
      "text": "it's too many tomatoes at once,",
      "duration": 1759,
      "offset": 7622
    },
    {
      "text": "you know what I'm saying? Like,",
      "duration": 679,
      "offset": 9382
    },
    {
      "text": "you have, like,",
      "duration": 359,
      "offset": 10062
    },
    {
      "text": "14 tomatoes going in your stomach all at one time.",
      "duration": 3439,
      "offset": 10422
    },
    {
      "text": "Like, this is why Italians are so angry,",
      "duration": 2319,
      "offset": 13862
    },
    {
      "text": "cause they just have acid reflux all the time.",
      "duration": 2279,
      "offset": 16181
    },
    {
      "text": "They're mad because they ate too many tomatoes.",
      "duration": 2119,
      "offset": 18462
    },
    {
      "text": "Their stomachs are upset at all time.",
      "duration": 1519,
      "offset": 20582
    },
    {
      "text": "Just add a little garlic and oil,",
      "duration": 1779,
      "offset": 22102
    },
    {
      "text": "sprinkle a little cheese on top,",
      "duration": 1120,
      "offset": 23980
    },
    {
      "text": "you're good to go, bro.",
      "duration": 720,
      "offset": 25101
    },
    {
      "text": "I think that a classic marinara. Now,",
      "duration": 2639,
      "offset": 25822
    },
    {
      "text": "classic marinara to you is what, like.",
      "duration": 2079,
      "offset": 28462
    },
    {
      "text": "Is it like ragu? We're talking like,",
      "duration": 1678,
      "offset": 30542
    },
    {
      "text": "it's red, bro.",
      "duration": 839,
      "offset": 32222
    },
    {
      "text": "I don't know. Okay.",
      "duration": 999,
      "offset": 33062
    },
    {
      "text": "All right. How's it going?",
      "duration": 859,
      "offset": 34062
    },
    {
      "text": "This is an Italian test. Don't get me wrong,",
      "duration": 1840,
      "offset": 35300
    },
    {
      "text": "I love my mother's Sunday sauce,",
      "duration": 1560,
      "offset": 37141
    },
    {
      "text": "but after 30 years, I just can't do it anymore.",
      "duration": 2639,
      "offset": 38702
    },
    {
      "text": "You want to do cacio e Pepe?",
      "duration": 1759,
      "offset": 41342
    },
    {
      "text": "I've never had a cacio e Pepe.",
      "duration": 1239,
      "offset": 43102
    },
    {
      "text": "You've never had a cacio e Pepe?",
      "duration": 919,
      "offset": 44342
    },
    {
      "text": "I've never had one. How have you never had a cacio e Pepe?",
      "duration": 2279,
      "offset": 45262
    },
    {
      "text": "What's the Grinch called? What's that? Pesto. Pesto.",
      "duration": 2279,
      "offset": 47542
    },
    {
      "text": "I've had a pesto. You know what I'm saying?",
      "duration": 1739,
      "offset": 49822
    },
    {
      "text": "I personally think that the Italians are gonna be very upset.",
      "duration": 2400,
      "offset": 52020
    },
    {
      "text": "Listen, growing up Italian,",
      "duration": 1320,
      "offset": 54421
    },
    {
      "text": "Rocco Sabino cuisine. My bad, boys.",
      "duration": 3299,
      "offset": 55742
    },
    {
      "text": "Uh,",
      "duration": 800,
      "offset": 59260
    },
    {
      "text": "garlic and oil over red sauce,",
      "duration": 1440,
      "offset": 60260
    },
    {
      "text": "and they're gonna be mad at you.",
      "duration": 1120,
      "offset": 61701
    },
    {
      "text": "I'm so sorry to disappoint.",
      "duration": 1279,
      "offset": 62822
    },
    {
      "text": "Many Italians are gonna be upset.",
      "duration": 1838,
      "offset": 64102
    },
    {
      "text": "I know. Taking away.",
      "duration": 679,
      "offset": 65942
    },
    {
      "text": "This is why I moved to Jersey.",
      "duration": 1159,
      "offset": 66622
    },
    {
      "text": "I was in Staten Island and I had to go.",
      "duration": 1719,
      "offset": 67782
    },
    {
      "text": "They were like, this guy.",
      "duration": 1079,
      "offset": 69502
    },
    {
      "text": "They ran you out? They ran me out.",
      "duration": 1559,
      "offset": 70582
    },
    {
      "text": "They said he likes. He likes garlic and oil.",
      "duration": 1999,
      "offset": 72142
    },
    {
      "text": "This guy. Because I think Italians are only known for two things.",
      "duration": 3259,
      "offset": 74142
    },
    {
      "text": "Movies a couple of years ago, sure.",
      "duration": 2360,
      "offset": 77700
    },
    {
      "text": "And then they are currently known for red sauce.",
      "duration": 1920,
      "offset": 80061
    },
    {
      "text": "Absolutely. You take away that,",
      "duration": 1319,
      "offset": 81982
    },
    {
      "text": "what is an Italian? Just some guy,",
      "duration": 1879,
      "offset": 83301
    },
    {
      "text": "pretty much an Arab. Yeah, absolutely.",
      "duration": 1899,
      "offset": 85182
    },
    {
      "text": "It's funny, I'm half Italian,",
      "duration": 1840,
      "offset": 87300
    },
    {
      "text": "half Arab. That's a great point.",
      "duration": 1420,
      "offset": 89140
    },
    {
      "text": "Anything else you thinking about?",
      "duration": 1280,
      "offset": 91220
    },
    {
      "text": "Tiny bagel shop owners out there",
      "duration": 1520,
      "offset": 92501
    },
    {
      "text": "who put fennel seeds on their everything bagels.",
      "duration": 2739,
      "offset": 94021
    },
    {
      "text": "We should shut your stores down immediately.",
      "duration": 1800,
      "offset": 97060
    },
    {
      "text": "Fennel seeds. Fennel seeds.",
      "duration": 1240,
      "offset": 98860
    },
    {
      "text": "Sometimes bagel shop owners,",
      "duration": 1359,
      "offset": 100102
    },
    {
      "text": "they'll put fennel seeds on there and ruin everything.",
      "duration": 1958,
      "offset": 101462
    },
    {
      "text": "What is a fennel? I don't know what a fennel is.",
      "duration": 1599,
      "offset": 103422
    },
    {
      "text": "I don't want to know what a fennel is.",
      "duration": 1199,
      "offset": 105021
    },
    {
      "text": "Just get it off my everything bagel.",
      "duration": 1619,
      "offset": 106222
    },
    {
      "text": "I don't know what a fennel is either,",
      "duration": 1439,
      "offset": 108820
    },
    {
      "text": "but I think the fennel can stay on the bagel.",
      "duration": 1840,
      "offset": 110261
    },
    {
      "text": "Alright well",
      "duration": 559,
      "offset": 112102
    },
    {
      "text": "you have your opinion, I have mine. Thanks for having me.",
      "duration": 2379,
      "offset": 112662
    }
  ]
}

Built for Developers, by Developers

Nobody likes bloated APIs and unnecessary complexity. That’s why we’ve built our service to be:

Fast

Plug & Play

Scalable

Reliable

Well-documented

Affordable


Use Cases

SaaS Product Development

Build products powered by data:

  • Chatbots and AI agents
  • Content repurposing machines
  • Brand mention monitoring
  • Marketing research and analysis

Content Analysis

Extract insights from content:

  • Research and data mining
  • Content moderation
  • Topic analysis
  • Trend detection

AI

Feed your AI with quality data:

  • Retrieval-Augmented Generation (RAG)
  • Content recommendation systems
  • Chatbot development
  • Sentiment analysis

How Does Supadata Compare?

TikTok has no official transcript endpoint, so the alternatives are clumsy. Here’s how Supadata compares:

FeatureSupadataOfficial TikTok APIManual / scrapers
Video transcriptsYes, with timestampsNo transcript endpointManual, one at a time
SetupAPI key, one requestDeveloper account + reviewBuild and maintain a scraper
No captions?AI speech-recognition fallbackNot availableDepends on the tool
Language support100+, auto-detectedNot applicableVaries
No-code integrationsZapier, Make, n8n, Active PiecesNoneNone
SDKsPython, JavaScript/TypeScriptLimitedNone

Pass any public TikTok URL and Supadata returns timestamped JSON — no TikTok developer account, no scraper to maintain.

Ready to try it? Get your free API key → — 100 requests/month, no credit card.


Pricing That Scales To Zero

Start free and grow with us. Simple pricing that scales to zero. No hidden fees, no surprises.

View Pricing


Trusted by Makers Who Ship

“Finally, an API that just works without the BS.” - Sarah Chen, AI Maker

“Saved me weeks of development time.” - Mark T., Solopreneur


Performance & Capabilities

CapabilitySupported
Native captions when available✅
AI fallback for videos without captions✅
Millisecond-precision timestamps✅
100+ languages, auto-detected✅
Plain-text or segmented JSON output✅
vm.tiktok.com short links✅

Processing speed is typically a few seconds per video. For high volume, send requests concurrently and cache results — transcripts don’t change once a video is published.


Code Examples

Send a TikTok URL and get back a timestamped transcript as JSON. Use the SDKs or call the REST endpoint from any language.

curl 'https://api.supadata.ai/v1/transcript?url=https://www.tiktok.com/@user/video/1234567890' \ -H 'x-api-key: YOUR_API_KEY'

Response:

{ "lang": "en", "content": [ { "text": "...", "offset": 0, "duration": 1200 }, { "text": "...", "offset": 1200, "duration": 1400 } ] }

Need plain text instead of segments? Add text=true and you’ll get a single string back.


FAQs

Do I need a TikTok API key?

No. Supadata handles all access to TikTok internally — you only need a Supadata API key. No TikTok developer account required.

What happens when a TikTok video has no captions?

Supadata transcribes the audio using AI speech recognition, so you get accurate, timestamped text even when TikTok provides no native captions.

What languages are supported?

100+ languages with automatic detection. Request a specific language with the lang parameter or omit it to auto-detect.

How do timestamps work?

Each transcript is a content array where every entry has text, offset (start time in ms), and duration — ready for subtitles, search, and clips.

Is there a free tier?

Yes. Every account starts on the Free plan with 100 free credits per month, no credit card required.

What SDKs and integrations are available?

Official Python and JavaScript/TypeScript SDKs, plus no-code integrations with Zapier, Make, n8n, and Active Pieces. See the docs for details.


TikTok scraper API, caption extractor or transcript API?

Developers search for this endpoint under several names. They all map to the same request:

  • TikTok transcript scraper API: you want the spoken words of a video without running a headless browser or maintaining a scraper against TikTok’s markup. GET /v1/transcript?url=... does that server-side and keeps working when TikTok changes its page.
  • TikTok caption extractor API: you want the creator’s captions when they exist. Supadata returns native captions verbatim, and only falls back to AI transcription (billed at 2 credits per minute) when a video has none. The lang field in the response tells you which language you got.
  • TikTok to text API / TikTok video to text: you want one string, not segments. Add text=true to the request and content becomes a single plain-text string.
  • TikTok subtitle API / SRT: build SRT or VTT from the offset and duration of each segment; both are in milliseconds.

Pair it with /v1/metadata for the video’s author, description, view and like counts, or with the Video Analysis API to turn the transcript into structured JSON from a prompt.

Need a one-off transcript instead?

If you just need the text of a single TikTok, skip the API: the free TikTok transcript generator takes a link and gives you TXT or SRT in seconds, no sign-up.


Ready to build?

Get your API key in 30 seconds. No credit card required. Start Building Now →