TikTok Search API
One POST with platform tiktok resolves a keyword search into a page of TikTok videos: id, url, caption as the title, duration, creator handle, publish time and play count. Every row's url is accepted by the transcript and batch endpoints as-is, so a search plus a batch call transcribes a topic in two requests. No TikTok developer account or research API application is involved.
Each page of results is one credit, however many videos it lists; pass next_cursor back as cursor for the next page. Failed requests are free.
On this platform
- Set platform to tiktok; the YouTube-only filters (type, upload_date, duration, sort, captions) are not applied on TikTok.
- A row's title is the video's caption, and channel is the creator's @handle.
- One page costs 1 credit; pass next_cursor back as cursor for the next page.
/api/v2/transcripts/searchidempotentSearch for videos, channels or playlists
Resolve a keyword search into a paginated list of videos (metadata only). Searches YouTube by default; set platform to search TikTok or Instagram instead. Every video row carries a url the transcript endpoint accepts unchanged, plus duration and publish time where the source provides them. On YouTube, upload_date, duration and captions filter the videos and sort orders them, and type finds channels (data.kind channel_list) or playlists (data.kind playlist_list) instead, whose rows' urls the channel and playlist endpoints accept as-is.
Body parameters
querystringrequiredplatformstring (enum)optionaltype"video" | "channel" | "playlist"optionalupload_date"hour" | "today" | "week" | "month" | "year"optionalduration"short" | "medium" | "long"optionalsort"relevance" | "views"optionalcaptionsbooleanoptionallimitinteger (1–50)optionalcursorstringoptionalRequest example
Responses
{
"ok": true,
"request_id": "req_…",
"data": {
"kind": "video_list",
"source": "search",
"platform": "tiktok",
"videos": [
{
"videoId": "7563520074795994399",
"url": "https://www.tiktok.com/@explore.scientist/video/7563520074795994399",
"title": "How does a power transformer work #knowledge #science #tiktok",
"duration": 72,
"channel": "@explore.scientist",
"publishedAt": "2025-10-21T04:01:08Z",
"stats": {
"plays": 496600
}
},
{
"videoId": "7649719917507251488",
"url": "https://www.tiktok.com/@theengineeringmindset/video/7649719917507251488",
"title": "How transformers actually work: Two coils, a steel core, and a magnetic field that's pure magic (but science!). #ScienceExplained #HowItWorks #Transformer #STEM #Physics",
"duration": 92,
"channel": "@theengineeringmindset",
"publishedAt": "2026-06-10T11:00:12Z",
"stats": {
"plays": 18300
}
}
],
"next_cursor": "eyJvIjoxMH0"
},
"usage": {
"credits_spent": 1,
"balance": 656,
"bytes": 0
}
}Every TikTok endpoint
Frequently asked questions
- How do I search TikTok instead of YouTube?
- Send platform tiktok in the body. Without it the search runs on YouTube. Everything else about the call is the same: query, limit and cursor.
- Can I filter TikTok results by date, duration or captions?
- No. Those filters are YouTube-only and are ignored on TikTok. The rows carry duration, publishedAt and stats.plays, so you can filter on your side after the fetch.
- What is in a TikTok search row?
- videoId, url, title (the caption), duration in seconds, channel (the creator's @handle), publishedAt and stats.plays. The url goes straight into the transcript or batch endpoint.
- How do I transcribe everything a search returns?
- Collect the url of each row and send them to the batch endpoint. Caption transcripts cost 1 credit each and videos without captions are transcribed from audio, billed on delivery.