Blog

Instagram transcript API: transcribe any Reel in one call

Kevin Wang
Kevin Wang
Founder, AnyAPI · June 23, 2026
instagramtranscriptshow-toapi
Instagram transcript API: transcribe any Reel in one call
Key findings

Instagram has no transcript API and no caption track to scrape. One call transcribes the audio of any public Reel and hands you plain text. It's $0.0012 a call, the same pattern you'd use for TikTok and YouTube.

Built on AnyAPI

472 scraping and data APIs behind one key.

Every endpoint in this post is one call away. Pay per request in USD from a prepaid wallet, with automatic failover when a provider breaks. No subscription, no card to start.

Get ~160 free requests$0.10 of credit on signup.

A Reel carries three kinds of text: the caption the creator typed, the stickers burned into the frames, and the words actually spoken.

Instagram's API gives you the first two. The spoken audio, the part most people actually want, it never exposes.

There's no transcript endpoint, and unlike YouTube or TikTok, not even a caption track to scrape.

One request transcribes the audio and returns the spoken text of any public Reel.

The one call

Send the Reel URL, get the transcript back. This is a real call and the response it got on September 27, 2026:

curl -X POST https://api.getanyapi.com/v1/run/instagram.media_transcript \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.instagram.com/reel/DHsD6HGqJhp/"}'
{
  "output": {
    "found": true,
    "data": {
      "transcripts": [
        {
          "id": "3597267389859272809",
          "shortcode": "DHsD6HGqJhp",
          "text": "Let's fry up the perfect bunsail. Beautiful. Everybody. Shh. The perfect bunsail. Let me show you my bunsail. When it comes down to bun sale, we make it the crispiest. Hear the crunch? Heaven."
        }
      ]
    }
  },
  "provider": "AnyAPI",
  "costUsd": 0.0012
}

The transcript is plain text under output.data.transcripts. It comes back as an array because a single post can hold more than one clip; each entry carries the spoken text plus the post's id and shortcode.

There's no timestamps and no language field here, and that's on purpose. Instagram serves no caption track to borrow offsets or a language tag from, so what you get is the transcribed audio as text.

The found flag is false when a Reel has no speech to transcribe, so you check the flag instead of catching an error.

That's the whole integration. No OAuth, no headless browser, no scraping the player.

When Instagram changes its internals, we absorb the fix and your call keeps working.

Why Instagram gives you nothing

Instagram's official Graph API is built for managing your own account, not reading other people's audio. It exposes the typed caption, comment threads, and media fields, and it's got no transcript resource at all.

So of the three kinds of text on a Reel, the one you usually want, the spoken audio, is the one Instagram never publishes.

The endpoint above gets it by transcribing that audio, which is why it works on any public Reel without you touching the Graph API.

If you build it yourself, it's two jobs stacked: scrape the video, then run the audio through a speech-to-text model.

The scrape half alone is a slog. Instaloader, the most-used Instagram scraper at 12.6k stars, stops after roughly a dozen posts and returns a 401, and Instagram throttles a logged-in session with "Please wait a few minutes" before cutting it off. Then transcribing the audio is your problem on top of that.

The limits of a Reel transcript: no timestamps, no language tag

The three transcript endpoints in the catalog look identical to call and behave differently underneath, because each platform exposes a different amount. It's worth knowing which is which:

TikTokYouTubeInstagram
Source of the textcaption trackcaption tracktranscribed audio
Output shapeWebVTTtimed line arrayplain text
Timestampsyesyesno
Language tagsometimesyesno
Price per call$0.0011$0.0009$0.0012

TikTok and YouTube hand back a caption track, so you get timestamps for free. Instagram has none, so the audio is transcribed and you get clean text without offsets.

The call is the same either way:

Your codeAnyAPI1POST a Reel URL2transcribe the spoken audio3200 + plain-text transcript
Instagram transcript: one request in, plain text out, audio transcribed in between.
One POST per platform. For Instagram the gateway transcribes the spoken audio (the highlighted step), because there's no caption track to read.

Do it across many Reels

One transcript covers a single Reel. Point the endpoint at a list of URLs and you have a searchable archive of a whole content series or a competitor's catalog:

# urls.txt holds one public Reel URL per line
while read url; do
  curl -s -X POST https://api.getanyapi.com/v1/run/instagram.media_transcript \
    -H "Authorization: Bearer $ANYAPI_KEY" -H "Content-Type: application/json" \
    -d "{\"url\": \"$url\"}" | jq -r '.output.data.transcripts[].text'
done < urls.txt

Index what was said, and you can search audio you could only watch before. Feed each transcript to an LLM for summaries, hooks, or a topic breakdown across a series.

It's plain text, so it drops straight into search, a RAG index, or a translation step.

What a transcript unlocks

Turning a Reel's audio into text makes it searchable, summarizable, and reusable. The same field serves two jobs:

  • If you build software: pipe the text into full-text search, a summarizer, a moderation scan, or a RAG index for an assistant that answers from the videos.
  • If you do content or research: one Reel becomes a caption draft, a hook list, subtitles, or notes, without you replaying it and typing along.

Try it without writing code

If you just need one transcript right now, the free tool does it in the browser. No key, no login, paste a Reel link and copy the text.

It's also the fastest way to see the output before you wire up the API.

Open the free Instagram transcript tool. Paste an Instagram Reel link, get the transcript.

Frequently asked questions

Does Instagram have a transcript API?

No. Instagram's Graph API exposes the typed caption and media metadata, but it's got no transcript or caption-track resource, and there's no public endpoint for the spoken audio. To get the words spoken in a Reel you transcribe the audio, which is what the endpoint above does.

How much does an Instagram transcript cost?

$0.0012 per call, billed in dollars, with no subscription. That's $1.20 per 1,000 transcripts.

Does it work on Stories and carousel posts?

It works on public Reels and video posts with spoken audio. A post can return more than one transcript entry, which is why transcripts is an array. Private accounts and videos with no speech come back with found: false.

What language does it support?

It transcribes whatever language is spoken in the audio. There's no separate language tag, since Instagram exposes no caption metadata, so detect the language from the text if your pipeline needs it.

What can I build with Instagram transcripts?

Full-text search across a creator's Reels, an LLM summarizer or hook extractor, subtitles, a translation step, or a RAG index for an assistant. It's one of many Instagram endpoints, and the same one-call pattern covers TikTok and YouTube too.

The transcript endpoint plus 200+ other Instagram and cross-platform data sources, one key, priced in dollars. New accounts start with free credit.

Browse the data catalog