Instagram Search API
One POST with platform instagram resolves a keyword search into a page of Instagram Reels: shortcode, url, caption as the title, duration, account name, publish time and play count. Every row's url is accepted by the transcript and batch endpoints as-is. No Graph API app review, access token or business account is involved.
Each page of results is one credit, however many Reels it lists; pass next_cursor back as cursor for the next page. Failed requests are free.
On this platform
- Set platform to instagram; the YouTube-only filters (type, upload_date, duration, sort, captions) are not applied on Instagram.
- A row's videoId is the Reel's shortcode, title is its caption and channel is the account name.
- 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": "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
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 is transcribed from audio and billed on delivery at the audio rate; a short Reel is one credit.