Developers
Building on the Sume API: keys and hosts, jobs and runs, polling, webhooks, idempotency, errors and rate limits, the SDK, the CLI, and MCP auth.

Zero data retention for AI video APIs: what Sume keeps
Zero data retention means a provider stores nothing after it answers. Async AI video APIs can't: the video is a stored file. What Sume keeps, and why.

Synthesia API documentation: the quickstart, step by step
Synthesia's API docs make a video in four steps: a Legacy (v2) key, POST /v2/videos, poll until complete, then download from a time-limited link.

What is serverless inference? How it works and is billed
Serverless inference means calling a hosted AI model over HTTP with no servers of your own. Providers bill for compute time or for each output.

Do you need a GPU for AI video? Only to run the model
You need a GPU for AI video only if you run the model yourself. A hosted video API needs none: your code sends HTTPS and downloads an MP4.

How to build your own AI video generator (no training)
Build your own AI video generator from a front end, a small backend and a video model API. You don't train a model; your backend holds the key.

asyncio Semaphore: limit concurrent API jobs in Python
An asyncio Semaphore caps how many coroutines run a block at once. For paid API jobs, hold it from submit to the final status and size it to your limit.

p-limit npm: cap concurrent AI API jobs in Node.js
p-limit runs at most n promise-returning functions at once. For paid AI jobs, wrap the submit and the wait, not just the POST, and set n to your limit.

Circuit breaker pattern in Python for AI API calls
A circuit breaker stops calling a failing API: after repeated failures it opens and fails fast, then lets a trial call through. A Python version.

What is a dead letter queue? DLQs for AI job pipelines
A dead-letter queue holds messages that failed processing too many times, so they stop looping and can be inspected. Which AI job failures go there.

httpx timeout: the 5-second default and slow AI API calls
httpx times out after 5 seconds of network inactivity by default. How to set connect, read, write and pool timeouts for slow AI API calls.

How to get a Kling AI API key and authenticate requests
Create a Kling AI API key in the developer console, copy it once, and send it as a Bearer token. Legacy endpoints use an Access Key JWT instead.

fal AI vs Runway: a model host or a model maker's API
fal runs 1,000+ models from many labs and bills video per second or per video. Runway's API offers its own Gen-4.5 and more, billed in $0.01 credits.

Higgsfield API key: how to get one and send it
A Higgsfield API key is a key ID plus a secret made in Higgsfield Console, sent together in one Authorization: Key header from server code only.

Local vs remote MCP server: stdio or Streamable HTTP?
A local MCP server runs on your computer and talks over stdio; a remote one runs elsewhere and is reached by URL over Streamable HTTP. How to choose.

MCP SSE vs Streamable HTTP: which transport to use
SSE is MCP's older, deprecated HTTP transport; Streamable HTTP replaced it with one endpoint that takes every message as a POST. Which to choose.

MCP tools vs resources vs prompts: who controls each
MCP tools are called by the model, resources are attached by the app, and prompts are picked by the user. What each one is for, and how to choose.

How to test an MCP server: Inspector, Postman, or curl
Test an MCP server with the MCP Inspector: connect, sign in or add an auth header, list tools, and call a read-only one. Postman and curl work too.

MCP error codes: what -32601, -32602, and -32001 mean
MCP error codes are JSON-RPC codes. What -32700 to -32603 mean, why -32001 is a client-side timeout, and how a failed tool call differs from both.

Stateless MCP server: sessions, Mcp-Session-Id, and handles
A stateless MCP server keeps no session between requests. What Mcp-Session-Id does, what 2026-07-28 removed, and where state goes instead.

MCP JSON config: what's in mcp.json and why clients differ
An MCP JSON config lists servers by name: a command for local ones, a URL and headers for remote ones. Why the key names differ between clients.

MCP tool call result structure: content, structuredContent
An MCP tool call result has a content array, optional structuredContent, and isError. What goes where, how images travel, and how errors look.

MCP tool description: what to write and how long it can be
An MCP tool description is the text a model reads to pick and call a tool. What the spec says, where Claude Code cuts it short, and what to write.

How to create an SRT file from text: time it with TTS
An SRT file needs a start and end time for every line. Voice your text with TTS word timings, then write each timed sentence as a numbered block.

Speech to text API in Java: transcribe audio with HttpClient
Call a speech to text API from Java with the JDK HttpClient and Jackson: post the audio URL, poll the job, then read the transcript and word times.

curl bearer token: how to send the Authorization header
Send a bearer token with curl in an Authorization: Bearer header, in double quotes so $TOKEN expands, or use --oauth2-bearer. Fixes for each 401.

Retry-After header: how long to wait after a 429 or 503
Retry-After tells a client how long to wait before retrying: a number of seconds or an HTTP date, sent with 429 or 503. How to read it and what to do.

Why an API returns 404 Not Found, and how to fix it
An API returns 404 when no route matches your path or method, or when the id doesn't exist for your credentials. How to tell them apart and fix each.

Retryable HTTP status codes: which errors to retry
Retry network errors, 408, 429, and 5xx with backoff; skip most other 4xx. Retry a POST only with an idempotency key, and read the API's retry flag.

Is POST idempotent? No, but PUT and DELETE are
No. HTTP defines GET, HEAD, OPTIONS, TRACE, PUT and DELETE as idempotent, but not POST or PATCH. An idempotency key makes a POST retry safe.

Webhook vs API: what's the difference?
An API call is your code asking a server for something; a webhook is the server calling your URL when something happens. The two work together.

Long polling vs short polling: what's the difference?
Short polling asks on a timer and gets an instant answer; long polling holds each request open until there's news or a timeout, then asks again.

Bearer token vs API key: what's the difference?
An API key is a kind of credential; Bearer is a way to send one, in the Authorization header. A key can travel as a bearer token, as OAuth tokens do.

Where to store API keys: server, CI, and local dev
Keep API keys server-side: an env var fed by a secret manager in production, your CI's secret store in pipelines, a git-ignored file on your laptop.

Webhook security best practices: a receiver checklist
Accept HTTPS only, verify an HMAC over the raw body in constant time, reject stale timestamps, dedupe on the event id, and answer 2xx fast.

HMAC vs digital signature: what each proves for webhooks
An HMAC proves the sender holds a shared secret. A digital signature is made with a private key and checked with a public one, adding non-repudiation.

Cron expression with 6 fields: seconds first or year last?
Standard cron has 5 fields. A 6-field cron expression adds seconds at the front (Spring, Quartz, Azure Functions) or a year at the end (AWS).

FFmpeg trim video: cut by time, with or without re-encoding
Trim a video with FFmpeg: -ss before -i to seek, -t for the length, and -c copy to skip re-encoding, which starts the cut at the keyframe before.

FFmpeg height not divisible by 2: why and how to fix it
The error means a yuv420p encode got an odd height (or width). Make both even: scale with -2 or round with trunc(ih/2)*2. How Sume rounds sizes.

yuv420p10le vs yuv420p: 8-bit vs 10-bit pixel formats
yuv420p and yuv420p10le are both planar YUV 4:2:0. yuv420p stores 8 bits per sample; yuv420p10le stores 10, little-endian, in 16-bit words.

Faststart MP4: moving the moov atom to the front
A faststart MP4 has its index, the moov atom, at the start of the file. FFmpeg moves it there with -movflags +faststart in a second pass.

FFmpeg extract audio from video: copy, MP3, or WAV
Extract audio from a video with FFmpeg: -vn drops the picture, then -c:a copy keeps the audio as it is, or an encoder writes WAV or MP3.

FFmpeg extract frames from video: one, every second, or all
Extract frames with FFmpeg: -frames:v 1 saves one image, -r 1 saves one per second, and a numbered file pattern writes every frame.

FFmpeg concatenate videos: concat demuxer vs concat filter
Concatenate videos with FFmpeg: the concat demuxer joins matching files with -c copy and no re-encode; the concat filter re-encodes mixed clips.

FFmpeg merge audio and video: -map, copy, and -shortest
Merge audio and video with FFmpeg: map the video from one file and the audio from the other, copy the video, and add -shortest to match lengths.

Text to image API: send a prompt, get image URLs back
A text-to-image API turns a prompt sent over HTTPS into generated images. How to call one: the request, the response, slow jobs, and the cost.

How long does it take to generate an AI image?
On Sume, most AI images finish inside the 30 seconds the API holds a request open. What makes one take longer, and how to tell slow from stuck.

MCP tool annotations: readOnlyHint and how clients use them
MCP tool annotations are optional hints such as readOnlyHint. What each one means, its default, and how ChatGPT, VS Code, and Copilot use them.

MCP server needs authentication in Claude Code: how to fix
Claude Code flags an MCP server as needing authentication after a 401 or 403 it can't clear. How to sign in again, and when an API key fits better.