Tools

sumvid for agents & developers — pay-per-call, no signup.

Sumvid is also an HTTP API and an MCP server: two endpoints that summarize a YouTube video or fetch its transcript, built for agents and developers. Every call is pay-per-call with no account or API key — an HTTP 402 response quotes the price, and a USDC micropayment on Base mainnet settles it. Failed calls are never charged; payment only settles on a successful response.

01 — HTTP API

Endpoints (x402)

EndpointWhat it does
POST https://api.sumvid.app/v1/summarizeAI summary of a YouTube video
POST https://api.sumvid.app/v1/transcriptFull transcript of a YouTube video

Request body for both: {"url": "<any YouTube URL>", "language": "en"} (language optional).

Per-call prices aren't quoted here — they're set server-side and can change, so the machine-readable x402 discovery manifest is the source of truth for current pricing, network, and payTo.

What you get back

A successful call returns JSON right in the response — no job to poll. The summary is Markdown; the transcript is plain text:

// POST /v1/summarize → 200
{
  "youtube_video_id": "dQw4w9WgXcQ",
  "summary": "## Overview\nRick Astley's...",  // Markdown, truncated here
  "model": "claude-haiku-4-5-20251001",
  "cached": false,               // true = served from the shared cache
  "language_code": "en",
  "title": "Never Gonna Give You Up",           // metadata may be null
  "channel": "Rick Astley",
  "thumbnail_url": "https://i.ytimg.com/...",
  "duration_seconds": 213
}

// POST /v1/transcript → 200
{
  "youtube_video_id": "dQw4w9WgXcQ",
  "transcript": "We're no strangers to love...", // plain text, truncated here
  "language_code": "en",
  "title": "Never Gonna Give You Up",            // metadata may be null
  "channel": "Rick Astley",
  "thumbnail_url": "https://i.ytimg.com/...",
  "duration_seconds": 213
}

Get a price quote — no wallet needed

Calling without payment returns the 402 quote, so you can discover pricing before holding any USDC:

curl -i -X POST https://api.sumvid.app/v1/summarize \
  -H 'content-type: application/json' \
  -d '{"url": "https://youtu.be/dQw4w9WgXcQ"}'
# → HTTP 402 with a PAYMENT-REQUIRED header: the price quote
#   (network eip155:8453, USDC on Base, payTo address, amount)

Paying a call

To actually pay, use any x402 client library (e.g. the x402 Python or JS package) — it reads the 402 quote, signs an EIP-3009 USDC authorization with your wallet key, and retries with a PAYMENT-SIGNATURE header. Prereqs: a wallet holding USDC on Base mainnet — a fraction of a dollar is plenty, and gas is paid by the facilitator, so no ETH needed. With the JS x402-fetch wrapper it's wrap fetch, point it at the endpoint, done:

import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.WALLET_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);

const res = await fetchWithPay("https://api.sumvid.app/v1/summarize", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ url: "https://youtu.be/dQw4w9WgXcQ" }),
});
const { summary } = await res.json(); // Markdown summary text

Machine-readable service manifest: https://api.sumvid.app/.well-known/x402.json (x402 discovery format — agents can find prices, network, and payTo there automatically).

02 — MCP server

Native MCP tools

The same two capabilities are native MCP tools for agents: summarize_youtube_video and get_youtube_transcript, served at https://mcp.sumvid.app over streamable-http transport — x402-paid, same no-signup model.

Add it to any MCP-capable client:

{
  "mcpServers": {
    "sumvid": {
      "url": "https://mcp.sumvid.app",
      "transport": "streamable-http"
    }
  }
}

Building an agent or integration against this API? Read the full YouTube summary API guide for endpoint details, the x402 payment flow, and MCP setup.

FAQ

Common questions

Why x402 instead of API keys?
Agents can't do signup flows. With x402, a signed USDC payment is the auth — pay-per-call means zero onboarding: no account, no key to provision, no dashboard to click through.
What happens if a call fails?
You are not charged. Payment only settles on a successful response — a video with no captions or a bad URL returns an HTTP error and the payment never settles.
Which errors can I get?
400 for a bad URL, 422 when no captions are available for the video, 502 for an upstream hiccup. None of these settle payment.
Are repeat requests fast?
Yes. Results are cached, so repeat requests for the same video return fast.