Body parameters
Keyword search query.
Where to search: youtube (default), tiktok, or instagram. Every video result's url is accepted by the transcript and batch endpoints as-is. The type, upload_date, duration, sort and captions options search YouTube only.
YouTube only. What to search for: video (the default), channel or playlist. Channels come back as data.kind channel_list, each row's url accepted by the channel endpoint; playlists as data.kind playlist_list, each row's url accepted by the playlist endpoint. A channel row carries the @handle, subscriber count and description; its videoCount is null, because YouTube's channel results no longer show one.
YouTube video search only. Keep videos uploaded within the last hour, today, this week, this month or this year.
YouTube video search only. Keep short (under 4 minutes), medium (4 to 20 minutes) or long (over 20 minutes) videos.
YouTube only. Result order: relevance (the default) or views (most viewed first). YouTube search no longer sorts by upload date or rating, so neither is offered; for recent videos, filter with upload_date.
YouTube video search only. true keeps only videos with subtitles or closed captions, whose transcripts come from captions rather than AI Fallback Transcription. Defaults to false: no filter.
Max items to return per page: videos, or the playlists or channels some listing options return. Defaults to 5.
Opaque pagination cursor from a previous response's next_cursor (max 256 characters). Omit for the first page. Cursors are scoped to the listing that issued them, so send the same platform and listing options with each page. Offset-based sources cannot page past the first 2000 items.
{
"ok": true,
"request_id": "req_…",
"data": {
"kind": "video_list",
"source": "search",
"platform": "instagram",
"videos": [
{
"videoId": "DWI8rZ9iTeD",
"url": "https://www.instagram.com/reel/DWI8rZ9iTeD/",
"title": "Why Transformer Works Only in AC? ⚡\nA transformer is one of the most important devices in electrical systems—but have you ever wondered why it works only with AC (Alternating Current) and not DC (Dire",
"duration": 5,
"channel": "scie.ncebysumati",
"publishedAt": "2026-03-21T08:29:30Z",
"stats": {
"plays": 11559
}
},
{
"videoId": "DVHOMxGiRBb",
"url": "https://www.instagram.com/reel/DVHOMxGiRBb/",
"title": "There is more than one type of transformer! Let’s go over them. #electrician #transformer #electrical.",
"duration": 35,
"channel": "greatdane_homeservices",
"publishedAt": "2026-02-23T19:52:44Z",
"stats": {
"plays": 1370
}
}
],
"next_cursor": "eyJvIjoxMH0"
},
"usage": {
"credits_spent": 1,
"balance": 656,
"bytes": 0
}
}Every Instagram endpoint
- POSTTranscriptFetch an Instagram Reel's transcript over REST: the request, every parameter, a real Reel response from AI Fallback Transcription with timestamped segments, and curl, Python and Node examples.
- POSTSearchSearch Instagram Reels by keyword over REST: the request, the platform parameter, a real Instagram response with play counts, and curl, Python and Node examples.
- POSTProfile ReelsList an Instagram account's Reels over REST without the Graph API: the request with a profile URL, since_video_id polling, a real response with play counts, and curl, Python and Node examples.
- POSTProfile MonitorWatch an Instagram account for new Reels over REST: create a monitor on a profile URL, receive each new Reel by signed webhook or from the events list, optionally with its transcript, with curl, Python and Node examples.
Same call, other platforms:YouTube Search APITikTok Search API
Frequently asked questions
How do I search Instagram instead of YouTube?
Send platform instagram in the body. Without it the search runs on YouTube. query, limit and cursor work the same on every platform.
Does Instagram search need a Graph API token?
No. It is TranscriptFetch's own endpoint: your TranscriptFetch API key, one page per credit, no Meta app, review or business account.
Can I filter Instagram results by date or duration?
No. Those filters are YouTube-only. Each row carries duration, publishedAt and stats.plays, so filter on your side after the fetch.
How do I get the transcripts of the Reels a search returns?
Send the rows' urls to the batch endpoint. Instagram has no caption track, so each Reel goes to AI Fallback Transcription, billed on delivery at its rate; a short Reel is one credit.