25 free credits on signup · no card required

Instagram Summary API

One URL in. Clean JSON out.

Give this endpoint a public Instagram reel or video post URL and it returns a ~150-word summary plus three to five key points, derived from the reel's transcript. The price is 4 credits plus 20 credits per started minute of video: the per-minute part is the transcript, which is produced per minute upstream, and the 4 covers the reel and the summary pass. A 30-second reel is 24 credits. Failed calls are not charged.

Use via MCP: Instagram MCP server gives Claude, Cursor and any MCP client this endpoint as a tool.

Credits 4 / reel
Input ?url=
Cache ∞
GET · BEARER
Request composing…
Cached forever
same bytes every call
Works with your stack
cURL Python Node.js Zapier n8n Make MCP
One key · one credit balance · plain REST

The difference

Stop parsing markup. Start reading fields.

On the left, what a headless browser hands you. On the right, what the endpoint hands you.

Scraping it yourself raw HTML · every call
<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"...
×Class names rotate; your selectors break weekly ×Headless browsers, proxies, blocks to babysit ×Counts arrive as strings, not numbers
One GET request 4 typed fields
{
"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"
}
✓Stable field names, documented nulls ✓No proxies, no browser, no login session ✓Counters are integers you can sort on

The payload

What comes back

{ data, meta?, request_id }
01 Summary, key points, duration

One object: the summary prose, a short array of key points, a language field, and duration_sec, the length of the video that the per-minute part of the price was computed from. There is no per-sentence structure and no timestamps here. If you need the spoken words themselves, the Instagram Transcript API returns them.

02 Capped at 24,000 characters

The summary is generated by a small language model reading the transcript text, capped at the first 24,000 characters. For a reel that is the whole thing; for a long 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.

03 4 credits + 20 per minute

Getting there requires a transcript to exist first. If the reel has already been transcribed, by this endpoint or by the transcript endpoint, that stored transcript is reused and the per-minute charge is for its stored duration. Otherwise the transcript is produced on this call, which is where the per-minute price comes from.

Field explorer Pick a key to see its type and the caveats.
number|null Nullable Per item
duration_sec

Length of the video in seconds. The per-minute charge is 20 credits for each started minute of this; null only for transcripts stored before the field existed, which bill as one minute.

{
"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.",
"key_points": ["…"],
"language": "en",
"duration_sec": 0
}
Good fit

Reach for this when

  • ✓Triaging a backlog of saved reels: read the summary and key points instead of watching each one, then decide which few are worth your time.
  • ✓Adding a text description to a link-preview card, newsletter roundup, or internal Slack digest where the reel itself cannot be embedded.
  • ✓Feeding a RAG index or classifier that works on prose. Summaries are cheaper to embed than full transcripts and lose less than you would expect for topical retrieval.
  • ✓Accessibility and search: giving reels in a content library a text body that is actually indexable.
Different job?

There's an endpoint for that

  • →You need the exact words the creator said, or quotes you can attribute. Use the Instagram Transcript API — this endpoint paraphrases, and a language model's paraphrase is not a quote.
  • →You want the caption, likes, comments and view count. That is the Instagram Stats API, which costs 1 credit and never depends on a transcript.
  • →The reel has no speech — a music-only clip, a silent carousel, a static image post. A non-video post is refused with a 422 and not charged; a music-only reel is transcribed, billed per minute, and produces a summary of noise.
  • →The video is longer than ten minutes. Transcripts are capped there and the call is refused with a 422 before anything is charged.

Pricing

Start free, pay for what comes back

One summary is 4 credits plus 20 per started minute of video — 24 credits for anything under a minute, about 12¢ on the monthly plan, 10.8¢ on annual. Failed calls are never charged.

Estimate your bill
$17/ month
30 reels/day × 4 credits × 365 days = 43,800 credits/yr, or $198/yr on the annual plan plus 32 top-up blocks Whichever plan is cheaper for that volume, divided by 12.
30
102,000
Credits / yr 43,800
Plan Annual $54/yr
Per reel 2¢

Estimate only, on a full-year basis. 4 credits per returned reel. Monthly: $5 per 1,000 credits with $5/1,000 top-ups. Annual: $54 per 12,000 credits with $4.50/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.

Free trial
25 credits

On signup, no card, up to 5 items a call. Your key is on screen immediately.

Get your free API key
Monthly $5/mo 1,000 credits. Top-ups $5 per extra 1,000.
Annual $54/yr 12,000 credits. Top-ups $4.50 per extra 1,000.

Entry price, side by side

Cheapest way to start

Verified July 2026 from each vendor's live pricing page
ScraperSocial
$5 / mo 1,000 credits · 25 free credits, no card
Supadata
$5 / mo 300 credits, annual commitment · 100 free/mo
SocialKit
$29 / mo 12,000 credits · 20 free credits
Dumpling AI
$40 / mo Billed annually · free tier size unpublished
ScrapeCreators
$47 pack 25,000 credits, no subscription · 100 free once

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

Docs you can build on

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.

✓Failed calls never charged; empty results free up to 25 a day ✓Public data only, no login session ✓Built for parallel traffic

The transcript behind the summary is produced per minute of video upstream, and that is passed through as 20 credits per started minute. Seconds round up: a 20-second reel and a 59-second reel both bill one minute (24 credits), a 61-second reel bills two (44), and the ten-minute cap means the most one call can cost is 204.

duration_sec in the response is the length the charge was computed from. The credit gate applies the same rule up front: a balance below 24 credits is refused with a 402 rather than part-charged.

Both /reel/ and /p/ URLs work for video content. A photo, a carousel or a post with no video is refused with a 422 and is not charged, as is any video longer than ten minutes. Private accounts, deleted posts and anything behind a login are unreachable: we read the same public pages a logged-out browser can open.

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.

When there is no speech, the upstream transcription still processes the audio, bills the minute, and usually returns a stray syllable rather than nothing. The summary pass then summarises that. We cannot tell it apart from a very short real transcript, so the call is a charged 200. If a reel is obviously music only, skip 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, and bills the same 4 plus 20 per started minute of the stored duration.

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 producing it again.

Questions

Frequently asked

4 credits plus 20 credits for each started minute of video. Most reels are under a minute, so most calls are 24 credits, about 12¢ on the monthly plan and 10.8¢ on annual. A 90-second reel is 44 credits and the ten-minute cap puts the ceiling at 204. The duration_sec field shows the length the charge came from. Cached summaries cost the same as fresh ones. Errors are never charged.

Yes. The transcript it depends on is produced through our upstream per-minute transcription for public reels and video posts, which is why the price has a per-minute component. The earlier limitation where Instagram returned 404 for lack of captions no longer applies.

Send a GET to /v1/instagram/summary with the public reel URL and your API key. You get back a summary string, a key_points array, language (null on Instagram) and duration_sec. No Instagram developer account, no OAuth, no app review. Handle a 422 for non-video or over-long posts and a 404 for the rare reel where no text comes back.

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. The transcript is in whatever language is spoken, and the summary generally follows the source language rather than translating to English, though the model is not instructed either way, so do not depend on it. The language field is null on Instagram because the transcript source does not report one; detect it from the text if you need the tag.

A photo or carousel is refused with a 422 and not charged. A video with music and no speech is different: the audio is still processed and billed per minute, the transcript comes back as a stray syllable or a few words of noise, and the summary summarises that. Skip reels you know are music only.

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 at the same price. Pass fresh=true to regenerate; it costs the same, so only do it if you have reason to believe the stored summary came from a truncated transcript.

Next

Pairs well with

Full Instagram API reference →
/v1/instagram/transcript
Instagram Transcript API Spoken words of a public Instagram reel or video post as plain text. 1 cr / reel
/v1/instagram/stats
Instagram Stats API Likes, comments and view counts for an Instagram post or reel. 1 cr / post
/v1/tiktok/summary
TikTok Summary API Short AI summary of a TikTok video, built on its transcript. 4 cr / video
/v1/tiktok/transcript
TikTok Transcript API Full transcript of a TikTok video with timestamped segments. 2 cr / video

More Instagram endpoints

/v1/instagram/transcript Spoken words of a public Instagram reel or video post as plain text. 1 credit / reel /v1/instagram/stats Likes, comments and view counts for an Instagram post or reel. 1 credit / post /v1/instagram/comments Paginated comments on an Instagram post; charged per comment returned. 1 credit / comment /v1/instagram/channel-stats Follower counts, bio and profile metadata for an Instagram account. 1 credit / profile /v1/instagram/channel-posts Latest posts from an Instagram account with per-post metrics. 1 credit / post /v1/instagram/channel-reels Latest reels from an Instagram account with per-reel metrics. 1 credit / reel /v1/instagram/reels-search Keyword search over Instagram reels. 1 credit / result /v1/instagram/download Resolves a downloadable media URL for an Instagram reel (URL expires within 1h). 8 credits / video

Try the Instagram Summary endpoint free

25 trial credits on signup — no card, key on screen immediately.

1 Sign up free no card · 30 seconds
2 Copy your key sk_live_...
3 GET the endpoint /v1/instagram/summary
Get your free API key