One URL in. Clean JSON out.
Give this endpoint a public Instagram reel URL and it returns a ~150-word summary plus three to five key points, derived from the reel's transcript. Read the availability note before you build on it: transcription currently runs in subtitles-only mode, and Instagram reels rarely carry machine-readable captions, so a large share of calls return a 404 saying no transcript is available. Those failures are not charged, but you should not assume a given reel will work.
The difference
On the left, what a headless browser hands you. On the right, what the endpoint hands you.
<article class="_aagv _ab8w x1n2onr6" role="presentation"><div class="x9f619 xjbqb8w x78zum5"><div class="_aagu"><img alt="Photo by @creator" class="x5yr21d xu96u03" src="https://scontent.cdninstagram.com/v/t51...blob"/></div><section class="x6s0dn4 x78zum5 xdt5ytf"><span class="x1lliihq _aacl _aaco">55,210 likes</span><div class="_a9zs"><span dir="auto">Three settings you should change today</span></div><span class="_aacl _aaco x1i10hfl">View all 981 comments</span></section><time class="_aaqe" datetime="2026-07-03T12:00:00.000Z">18h</time></div><script type="application/json" data-sjs>{"require":[["ScheduledServerJS","handle",null,[{"__bbox"... {"data": {"platform": "instagram","entity_id": "C8xQvZ2sVAb","language": "en","summary": "A quick tutorial covering three commonly missed configuration steps, with a before/after comparison and a call to check the pinned comment for the full guide."},"request_id": "req_01JZX4M8Q2TE9W"}
The payload
One object: the summary prose, a short array of key points, and the language code the transcript was detected in. There is no per-sentence structure and no timestamps here. If you need the spoken words positioned in time, the Instagram Transcript API is the endpoint that returns them.
The summary is generated by a small language model reading the transcript text, capped at the first 24,000 characters. For a 30-second reel that is the whole thing; for a long-form video post the tail can fall outside the window. The model is told to produce a ~150 word summary and three to five bullets, and it usually does, but exact length varies per call.
Getting there requires a transcript to exist first. The pipeline pulls the reel, looks for captions the platform already carries, and summarizes what it finds. Where no captions exist, the chain stops with a 404 and nothing is billed. Speech-to-text on the audio track is disabled at present, which is why Instagram — a platform that does not reliably expose subtitle files publicly — is the weakest of the four platforms we support here.
Detected language of the source transcript as a short code, e.g. "en". Null when the transcript carried no language tag.
Pricing
One summary is 42 credits — about 21¢ on the monthly plan, 19¢ on annual. Most Instagram reels carry no readable captions, so expect 404s; those failed calls are never charged.
Estimate only, on a full-year basis. 42 credits per returned reel. Monthly: $5 per 1,000 credits with $4/1,000 top-ups. Annual: $54 per 12,000 credits with $3/1,000 top-ups. We show whichever plan is cheaper for your annual volume, divided by 12. Failed calls are never charged; cache hits cost the same as fresh calls.
Entry price, side by side
Credits are not equivalent units across vendors — each meters differently. Price your own workload on both before deciding on entry price alone. At high volume, several of these are cheaper per credit than we are.
Engineering notes
We document exactly how every endpoint behaves — nulls, caching, billing — so what you ship on day one is still running in month six. No surprises, no support tickets.
Speech-to-text is switched off. The transcript layer reads captions the platform already publishes; it does not listen to audio. TikTok generally carries those captions. Instagram generally does not expose them in public data, so most Instagram reels currently produce no transcript and therefore no summary.
The failure is clean and specific: HTTP 404 with a message saying no transcript is available for this content. Handle it as an expected branch in your code, not an exception. And check the response before you plan a batch run — do not build a queue of 10,000 reels on the assumption that they will resolve.
A language model wrote this text. It compresses, it reorders, and on a rambling or heavily jargoned reel it can flatten a nuance that mattered. Do not paste the output into anything where a misattributed claim would be a problem — moderation decisions, legal review, anything published as the creator's words.
Numbers and proper nouns are where small models slip most often. If a figure in the summary is load-bearing for you, pull the transcript and check it.
Summaries are stored under an immutable cache class with no expiry. A reel's spoken content does not change after posting, so the second call for the same URL returns the stored copy in milliseconds with x-cache: hit.
A cache hit still costs 42 credits. If you are calling the same reel repeatedly, store the result on your side. fresh=true forces a regeneration at the same price, which is only worth doing if you suspect the stored summary was produced from a partial transcript.
This is one of the most expensive calls in the catalogue because it is three operations behind one URL: fetching the reel, obtaining the transcript, and an LLM pass over it. At $0.005 per credit that is about 21 cents per reel on the monthly plan, 19 cents on annual.
If you plan to need both the transcript and the summary for the same reel, call the transcript endpoint first. The transcript is stored permanently, and a later summary call reuses it rather than repeating the fetch.
We read logged out, the same as any visitor. Private accounts, deleted posts, and age- or region-gated content return an error rather than a partial result, and are not charged. There is no login, no session, and no way to reach content that a browser in incognito mode could not.
Questions
Partially, and we would rather say so. The summary depends on a transcript, and transcription runs in subtitles-only mode with speech-to-text disabled. Instagram rarely publishes readable caption files, so many reels return a 404 saying no transcript is available. Calls that fail cost nothing. If reliability matters today, the TikTok Summary API runs the same pipeline against a platform that does ship subtitles.
Send a GET to /v1/instagram/summary with the public reel URL and your API key. If a transcript can be obtained, you get back a summary string, a key_points array, and the detected language. No Instagram developer account, no OAuth, no app review. Expect and handle a 404 for reels where no transcript exists.
42 credits per reel. Credits are $0.005 each on the monthly plan and $0.0045 on annual, so roughly 21 cents or 19 cents per call. The price covers the reel fetch, the transcript, and the language model pass. Cached summaries cost the same as fresh ones. Errors, including the no-transcript 404, are never charged.
Good enough to triage with, not good enough to quote. It is written by a small language model from the transcript text, so it captures the topic and main beats reliably but can blur specifics — figures, names, and conditional claims especially. Treat it as an abstract. When exact wording matters, fetch the transcript and read the source line.
Yes, where a transcript exists in that language. The language field tells you what the source transcript was detected as. The summary itself is generated from that transcript and generally follows the source language rather than translating to English, though the model is not instructed either way, so do not depend on it. Translate downstream if you need a guaranteed output language.
You get an error, not an empty summary. A music-only reel, a silent clip, or a still image has nothing to transcribe, so the chain stops before the model ever runs and the call is not billed. This is also true of reels whose audio is speech but whose captions are unavailable — the reason differs, the outcome for your code does not.
Cached permanently. A reel's spoken content is fixed once posted, so the first successful call is stored and every later call for that URL returns it with x-cache: hit. Pass fresh=true to regenerate. It costs the same 42 credits, so only do it if you have reason to believe the stored summary came from a truncated or partial transcript.
Next
100 trial credits on signup — no card, key on screen immediately.