100 free credits on signup · no card required

X/Twitter Summary API

One URL in. Clean JSON out.

Read this part before you write any code against it: this endpoint does not currently work on X. It summarises a video by reading its caption track, and X posts almost never carry one, so calls return a 404 saying no transcript is available. The route is live, priced at 9 credits, and documented here so you know exactly what it would return the day captions become reachable — but today it will not give you a summary.

Credits 9 / video
Input ?url=
Cache
GET · BEARER
Request composing…
Cached forever
same bytes every call

Availability: Caption-dependent: summaries are built from the video's transcript, so they're available only when the video has captions on X — most don't. When no captions exist the API returns a 404 no-transcript error, and failed calls are never charged.

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 data-testid="tweet" class="css-175oi2r r-1adg3ll r-1ny4l3l"><div class="css-175oi2r r-18u37iz"><div dir="ltr" class="css-901oao r-1nao33i">Shipping notes: response times are down 40% after this week&#39;s cache work.</div></div><div role="group" aria-label="90211 views, 1211 likes, 204 reposts" class="css-175oi2r r-1kbdv8c"><div data-testid="like"><span class="css-1jxf684">1,211</span></div><div data-testid="retweet"><span>204</span></div></div><time datetime="2026-07-06T08:15:00.000Z">8h</time><script>window.__INITIAL_STATE__={"entities":{"tweets":{"entities":{"186112...
×Class names rotate; your selectors break weekly ×Headless browsers, proxies, blocks to babysit ×Counts arrive as strings, not numbers
One GET request 3 typed fields
{
"data": {
"platform": "twitter",
"entity_id": "1861122334455667788",
"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 Three fields, nothing else

When it succeeds, the response is three fields and nothing more: a prose summary of roughly 150 words, an array of three to five short key points, and the language code of the source transcript. No metrics, no author, no post text. It answers one question, which is what the video is about.

02 Caption in, summary out

The pipeline is short. The endpoint asks for a transcript of the video, and if it gets one it makes a single small-model pass over that text to produce the summary and the bullets. If it does not get a transcript, there is nothing to summarise and the call fails with a 404 rather than guessing from the post's written caption or from replies.

03 Why X has no captions

Where the transcript comes from is the whole problem on X. Transcription here is subtitles-only — the service reads a caption track the platform already publishes, and there is no speech-to-text step running. TikTok generally carries such a track. X generally does not. That is why the X flavour of this endpoint 404s in practice while the TikTok Summary API works.

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

Language reported for the source transcript. Null whenever the caption track carried no language tag.

{
"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"
}
Good fit

Reach for this when

  • You are building a cross-platform pipeline and want the X branch wired up now so it starts producing output the moment caption coverage improves, with the failure handled as a normal 404.
  • You are evaluating what a summary endpoint returns and want the field shape confirmed before committing to it on a platform where it does work.
  • You already run the TikTok Summary API or the Instagram Summary API in production and want the same three-field contract behind one client, even if the X leg currently returns nothing.
  • You are costing out a batch job and need to know that failed calls on X are not charged, so an unsuccessful attempt costs latency only.
Different job?

There's an endpoint for that

  • You actually need to know what an X video says today. There is no working path to that here. The honest answer is that we cannot do it yet, and no amount of retrying changes it.
  • You want the text of the post rather than the video's spoken content — the X Post Stats API returns the tweet text along with its engagement counts.
  • You want the raw words rather than a compressed gist. That is the X Transcript API, which shares the same caption dependency and the same 404 behaviour, so it will not help either.
  • You want video summaries that work right now: the TikTok Summary API is the one to use, because TikTok publishes caption tracks for most spoken-word content.

Pricing

Start free, pay for what comes back

A successful summary is 9 credits — about 4.5¢ on the monthly plan, or 111 videos for $5 — but on X almost every call 404s for lack of captions, and failed calls are never charged.

Estimate your bill
$26/ month
30 videos/day × 9 credits × 365 days = 98,550 credits/yr, or $315/yr on the annual plan plus 87 top-up blocks Whichever plan is cheaper for that volume, divided by 12.
30
102,000
Credits / yr 98,550
Plan Annual $54/yr
Per video

Estimate only, on a full-year basis. 9 credits per returned video. 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.

Free trial
100 credits

On signup, no card. Your key is on screen immediately.

Get your free API key
Monthly $5/mo 1,000 credits. Top-ups $4 per extra 1,000.
Annual $54/yr 12,000 credits. Top-ups $3 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 · 100 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 are never charged Public data only, no login session Built for parallel traffic

The summary requires a transcript. The transcript requires a caption track published by the platform. X does not generally publish one, so the usual outcome of a call to /v1/twitter/summary is HTTP 404 with a message saying no transcript is available for this content.

We would rather you read that here than discover it after wiring up a job. The endpoint stays in the registry because the plumbing is real and the day caption coverage changes it starts working without any change on your side. Until then, treat it as unavailable.

Calls that error are not charged. A 404 on an X video costs you a round trip and zero credits, which is the only reason it is defensible to leave the route enabled at all.

If you see credits move on a failed call, that is a bug and we want the request id. Report it rather than working around it.

The service does not download X video and run audio through a recognition model. It reads captions the platform already carries. That is a deliberate limit on cost and on what we are willing to claim, not an oversight, and it is why the coverage story differs so sharply between platforms.

So a video with clear audio and no caption track fails exactly like a silent one. Audio quality is irrelevant to the outcome here; the presence or absence of a published track is the only thing that matters.

On the rare X post that does carry a track, what you get back is a language model's compression of that text. It is fine for deciding whether something is worth watching. It is not a quotation, and numbers, prices and product names are the fields most likely to drift.

Very long transcripts are truncated before the model sees them, so a long broadcast replay would be summarised from its opening stretch rather than end to end.

Successful summaries are stored in the immutable class with no expiry, because the words in a published video do not change. A repeat call for the same post returns the stored copy in milliseconds and costs the same 9 credits.

Failures are not cached. Each attempt on a caption-less post does the same work and fails the same way, so retry loops buy you nothing except traffic.

Questions

Frequently asked

Not right now. It depends on a caption track published by the platform, and X posts almost never carry one, so calls to /v1/twitter/summary return a 404 saying no transcript is available. The route exists and the response shape is documented, but you should plan as though the capability is unavailable on X. Failed calls are not charged.

Because summarisation runs off captions, not audio. There is no speech-to-text step in the current configuration, so the endpoint can only summarise videos where the platform itself has published a transcript. TikTok does that for most spoken content. X does not, which is the entire difference. Same code, same price, very different hit rate.

9 credits per video when it succeeds. Credits are $0.005 each on monthly billing and $0.0045 on annual, so a successful call is about four and a half cents. Calls that fail, which on X is most of them, are not billed at all. Cached repeats of a successful summary cost the same 9 credits as the first call.

Not from this endpoint. It summarises spoken video content only. If you want the written post, the X Post Stats API returns the tweet text along with likes, reposts, replies and views, and you can run that text through whatever summariser you already use. That is the practical route today for anyone doing text analysis on X.

Three: summary, a paragraph of roughly 150 words; key_points, an array of three to five short strings; and language, the language code of the source transcript or null when none was reported. There are no engagement metrics, no author block and no timestamps. If you need those, call the stats endpoint alongside this one.

Only if one of two things changes: X starts publishing caption tracks more widely, or we enable a speech-to-text leg. The pipeline already has the shape for both, so no client change would be needed on your side. We are not going to promise a date, and we are not going to quietly start charging for a call that cannot succeed in the meantime.

No. A 404 here means the platform published no caption track for that video, which is a stable fact about the post rather than a transient error. Retrying produces the same result and burns your rate budget. Treat 404 as a terminal outcome for that URL and move on to the next item in your queue.

Next

Pairs well with

Full X/Twitter API reference →
/v1/tiktok/summary
TikTok Summary API Short AI summary of a TikTok video, built on its transcript. 10 cr / video
/v1/twitter/transcript
X/Twitter Transcript API Full transcript of a video attached to a post on X. 7 cr / video
/v1/twitter/stats
X/Twitter Stats API Views, likes, reposts and replies for a single post on X. 1 cr / tweet
/v1/instagram/summary
Instagram Summary API Short AI summary of an Instagram reel, built on its transcript. 42 cr / reel

More X/Twitter endpoints

/v1/twitter/transcript Full transcript of a video attached to a post on X. 7 credits / video /v1/twitter/stats Views, likes, reposts and replies for a single post on X. 1 credit / tweet /v1/twitter/profile Follower counts, bio and profile metadata for an account on X. 5 credits / lookup /v1/twitter/tweets Latest posts from an account on X with per-post metrics. 1 credit / tweet /v1/twitter/search Keyword and advanced-search over public posts on X. 2 credits / result

Try the X/Twitter Summary endpoint free

100 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/twitter/summary
Get your free API key