FrameFetch
Full MCP reference → Try it free
For AI agents

MCP Video Data API

FrameFetch runs a Streamable HTTP MCP server at https://framefetch.net/mcp. Three tools, one config block, and your agent can turn any YouTube, TikTok, Instagram Reels, Pinterest, or Reddit URL into transcript, metadata, frames, on-screen text, and more — without you writing a single HTTP client.

Connect it Pricing

The 3 tools
ToolPurposeAnnotations
framefetch_extractThe workhorse. One video URL in, any combination of metadata, insights, transcript, frames, text_overlay (OCR), digest, audio_digest, structured understanding, comments, comment_sentiment, ask (Q&A), or delta out — billed per call, itemized in the response's cost block.readOnlyHint: true, openWorldHint: true
framefetch_platform_capabilitiesReturns the capability matrix — which fields (metadata, transcript, frames, comments, ...) each platform actually supports. Call this before requesting a field on a platform you're unsure about.readOnlyHint: true
framefetch_accountBalance and trailing-7-day spend/call-count. Never charges, and keeps working at zero balance — the tool you call when framefetch_extract fails with a 402.readOnlyHint: true

framefetch_account is only advertised in tools/list when the server is running with a balance provider wired up (true for the hosted framefetch.net/mcp endpoint) — a self-hosted stdio server without a database simply omits it rather than listing it and erroring.

Connect it — Claude Desktop / Cursor

Add FrameFetch to your client's MCP config with a Bearer key:

{
  "mcpServers": {
    "framefetch": {
      "url": "https://framefetch.net/mcp",
      "headers": { "Authorization": "Bearer ff_xxx_yyy" }
    }
  }
}

That's the whole client-side setup. No SDK to install for the agent side — it's a standard remote MCP server over Streamable HTTP.

Connect it — Claude Code
claude mcp add framefetch --transport http https://framefetch.net/mcp \
  --header "Authorization: Bearer $FRAMEFETCH_API_KEY"

FrameFetch is also listed in the official MCP registry as io.github.MarvinRey7879/framefetch, and in the Claude Connectors Directory, for clients that support registry-based discovery instead of a manual config block.

Get a key first

One call, instant, no card:

curl -X POST https://framefetch.net/v1/keys \
  -H "Content-Type: application/json" \
  -d '{ "email": "you@example.com" }'
# -> { "key": "ff_xxx_yyy", "message": "store this key; it is shown once..." }

That key carries the free tier: ~100 calls every month (a $0.20 credit, refreshed monthly, no subscription). Re-view or rotate it anytime at framefetch.net/account, or mint it via the browser at framefetch.net/signup if you'd rather not script it.

Or skip the key entirely — x402

An autonomous agent shouldn't need a human to provision an API key at all. FrameFetch also settles payment with x402: call POST /v1/topup without payment and you get an HTTP 402 back with x402 requirements (USDC on Base). Sign and retry with the X-PAYMENT header to add credit (1 USDC = $1), then call the MCP tools or REST endpoints normally — no signup, no human in the loop, ever. FrameFetch is listed in the x402 Bazaar for agents that discover payable APIs that way.

Errors an agent can act on

Every error is { "error": { "code", "message", "hint" } } — stable, typed codes (INVALID_PARAMS, UNAUTHORIZED, PAYMENT_REQUIRED, RATE_LIMITED, EXTRACTION_FAILED, and more) rather than a free-text message an agent has to pattern-match. A PAYMENT_REQUIRED response now also carries a pointer back to POST /v1/keys so an agent that hits it with no key yet has a documented next step instead of a dead end.

Related guides

Per-platform pages for what each host supports: YouTube, YouTube Shorts, TikTok, Instagram Reels, Reddit, Pinterest. Per-feature pages: question answering, structured understanding, comment sentiment. The full HTTP + MCP reference, including every field and error code, lives in the docs.

FAQ
What tools does the FrameFetch MCP server expose?

Three: framefetch_extract (the workhorse — metadata, transcript, frames, OCR, digest, structured understanding, comments, sentiment, and question answering from one video URL), framefetch_platform_capabilities (what each platform supports, no input, never charges), and framefetch_account (balance and 7-day usage, read-only, works even at zero balance).

How do I connect Claude Desktop or Cursor to FrameFetch?

Add a streamable-HTTP MCP server pointing at https://framefetch.net/mcp with an Authorization: Bearer <key> header in your client's mcpServers config. Get the key first with POST /v1/keys or at framefetch.net/signup.

Can an agent use FrameFetch without a human signing up first?

Yes, two ways: POST /v1/keys with just an email mints a usable key instantly with no human approval step, or an agent can skip keys entirely and pay per call with x402 (USDC on Base) — the call returns HTTP 402 with payment requirements, the agent signs and retries, no signup at all.

Are the MCP tools read-only?

framefetch_platform_capabilities and framefetch_account are marked readOnlyHint: true and never charge. framefetch_extract is also readOnlyHint: true (it never mutates anything on the caller's side) but is openWorldHint: true and does spend the caller's credits, since it reaches out to arbitrary external video platforms rather than a closed set of internal resources.

Does this replace the /docs page?

No — this page is the MCP-first quickstart. /docs is the full HTTP + MCP reference: every request field, every response shape, every error code, translation, audio briefings, batch, channel webhooks, and billing.