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.

API sandbox environment: test a paid API without paying
An API sandbox is a separate test environment with fake or free results. Sume has none, so test with its spec, free checks and spend caps.

C# HttpClient default timeout: 100 seconds, and how to set it
HttpClient.Timeout defaults to 100 seconds per request and throws TaskCanceledException. How to set it, and why slow API jobs need polling instead.

Java HttpClient timeout: no default, so set two of them
Java's HttpClient has no request timeout unless you set one: connectTimeout on the client, timeout on each request, and HttpTimeoutException.

Python requests default timeout: there isn't one
Python Requests has no default timeout: without timeout= a call can hang indefinitely. Set (connect, read) on every call, and keep it short for job APIs.

httpx retry: what HTTPTransport(retries=n) covers
httpx retries only ConnectError and ConnectTimeout, via HTTPTransport(retries=n). For read errors, 429 and 503, write a loop that keeps one Idempotency-Key.

Golang HTTP client retry: what net/http retries on POST
Go's http.Transport retries only network errors on reused connections, and a POST only with an Idempotency-Key header. Write the 429 and 5xx loop yourself.

Bash for loop with curl: one API request per line
Loop over a file with while IFS= read -r, build each JSON body with jq --arg, send it with curl --fail-with-body, and pace it under the API's rate limit.

JSON to video API: render an MP4 from a timeline document
A JSON to video API renders one MP4 from a document that says which clips play when, over which audio. How Sume's Timeline 1.0 does it, and costs.

Batch video processing by API: one edit, many videos
Batch video processing by API is a loop: one edit job per file, each with its own idempotency key, collected by webhook. How it works on Sume, and costs.

Automate video editing in Python with an editing API
Automate video editing in Python by calling an editing API with Requests: submit a caption, cut, or crop job, poll until it ends, chain the output.

Java subtitle generator API: burn captions with HttpClient
Generate subtitles from Java with the JDK HttpClient: POST the video URL to a captions API, poll the job, then read the captioned video_url.

FFmpeg burn subtitles into video: subtitles filter, force_style
Burn subtitles into a video with FFmpeg's subtitles filter: -vf subtitles=subs.srt re-encodes the picture, and force_style overrides the font and colour.

FFmpeg crop video: crop=w:h:x:y, centre, and 9:16
Crop a video with FFmpeg's crop filter: -vf crop=w:h:x:y keeps a w×h area whose top-left corner is at x,y; leave out x and y to crop the centre.

FFmpeg fade in fade out: video and audio, from and to black
Fade a video in and out with FFmpeg: fade=t=in and fade=t=out on the picture, afade on the sound, with the fade-out starting at the length minus its duration.

FFmpeg change frame rate: the fps filter vs -r
Change a video's frame rate with FFmpeg's fps filter: -vf fps=30 drops or duplicates frames and keeps the running time. How -r and framerate differ.

FFmpeg: add a watermark image to a video with overlay
Add a watermark image to a video with FFmpeg: pass the logo as a second input and use overlay=W-w-10:H-h-10 for the bottom-right corner.

FFmpeg increase volume: the volume filter, in dB or ×
Increase volume in FFmpeg with -af volume: volume=2 or volume=6dB, with -c:v copy so the video isn't re-encoded. Check headroom with volumedetect first.

Remove background from image in Python with an API
Remove an image background in Python: POST the image URL with requests, poll the job, then save the transparent PNG. A full script and the price.

Remove background from image in Node.js (JavaScript API)
Remove an image background from Node.js: call a background-removal API with fetch on your server, poll the job, and save the transparent PNG.

Is my data used to train AI? Where the answer is written
It depends on the tool: the training answer sits in its terms' content license and its privacy policy's use section. What to search for, and what Sume's say.

Do AI companies sell your data? What to read in the policy
Some may; the privacy policy is where to check. How to read its sale and sharing sections, and what Sume's policy says it collects and shares.

How to delete my data from an AI tool, and what stays
Delete your data from an AI tool in two steps: delete the account, then send a deletion request for stored files. How it works on Sume, and its limits.

Is my data safe with AI? Four checks before you share it
No AI tool can promise perfect security. Check who processes your inputs, who on your team sees them, who can open outputs, and how keys are kept.

AI vendor risk assessment: questions and where to look
An AI vendor risk assessment adds training, model providers and spend to a SaaS review. The questions, and where Sume's public pages answer them.

Do API keys expire? Sume keys last until revoked
Some API keys expire and many last until revoked. Sume keys have no expiry date in current code, so rotation is on you. How and when to rotate.

API uptime SLA: what it promises, and Sume's terms
An API uptime SLA promises a monthly availability percentage and credits if missed. Sume's terms offer none; how to build around that.

HeyGen API key: get one and make your first video
Generate a HeyGen API key in its API dashboard, send it as X-Api-Key to api.heygen.com, check it with GET /v3/users/me, then create a video.

HeyGen API v2 retirement: the date and the v3 endpoints
HeyGen's API v1 and v2 stay operational until October 31, 2026 and retire on November 1. The warning headers, and the v3 call for each v2 call.

Replicate API rate limits: 600 creates a minute, then 429
Replicate's API allows 600 prediction creates and 3,000 other requests per minute. Low credit and no card tighten it; over the limit you get a 429.

fal.ai API rate limit: concurrency from 2 up to 40
fal.ai limits how many requests run at once, not requests per minute: 2 for a new account, rising with credit purchases to 40 self-serve.

Kling API rate limit: concurrency by package and error 1303
Kling's API limits concurrent tasks by resource package, not requests per second. Over the cap, a create fails with HTTP 429, code 1303.

Runway API rate limit: usage tiers, concurrency and 429s
Runway's API has no requests-per-minute limit. Usage tiers cap concurrency per model, generations per 24 hours and monthly spend.

HeyGen API avatar ID and voice ID: where to find them
In HeyGen's v3 API, avatar_id is a look id from GET /v3/avatars/looks, and voice_id comes from GET /v3/voices or the look's default voice.

fal AI FFmpeg API: endpoints, inputs and prices
fal hosts FFmpeg as model endpoints: merge videos, merge audio and video, extract a frame, compose tracks. Called with a fal key, priced per second.

How does the Higgsfield API work? Requests, limits, billing
Higgsfield's API is asynchronous: submit to a model endpoint, keep the request_id, poll or take a webhook, download. Billing and limits explained.

AI music generator API in Python: prompt to MP3 file
A short Python script that sends a prompt to Sume's Music Router, polls the job and saves the audio. Runs with httpx and asyncio.

AI music negative prompt: why the API returns 400
Sume's music API rejects a non-empty negative_prompt with HTTP 400. What the error looks like and how to write exclusions in the prompt instead.

AI music API webhook: get a callback when the track is ready
Submit a music job with mode webhook and a public HTTPS URL, verify the signed callback, and keep polling as a backup. Headers, events and retries.

AI SDK 7 createMCPClient: connect a remote HTTP MCP server
In AI SDK 7, createMCPClient takes an http transport with a url and headers. Point it at https://mcp.sume.com/mcp, load client.tools(), and close in finally.

AI SDK 7 isStepCount stopWhen: cap a paid tool loop
stopWhen: isStepCount(5) limits AI SDK steps, not spend. For paid Sume MCP tools, pair it with max_spend_usd, dry_run and an idempotency_key.

AI SDK MCP client authorization bearer header: what to send Sume
Set headers.Authorization to Bearer plus your Sume API key on the AI SDK http transport, and send only one credential header. An OAuth token is not an API key.

API audit log: what you can trace on Sume's media API
Sume's docs describe no audit-log endpoint. Job records, the usage ledger and request ids give a trail, but not which API key made a call.

API changelog: where Sume lists changes, and how to read it
Sume keeps a public changelog, newest first, with a version, a date and short notes. It does not mark breaking changes, so also watch the retiring list.

detach_source_has_no_audio: check for an audio track first
Audio detach fails with detach_source_has_no_audio on a silent clip. Probe has_audio with a video inspect that skips frames, then detach only clips with sound.

AI video captions failed: is the video still usable?
On a Sume avatar video, a failed caption stage does not fail the job: the clean video_url still arrives with captions.status set to failed. What to do next.

Batch image generation API: how many images can run at once?
Sume queues extra generation jobs instead of rejecting them. The per-plan concurrency and queue table, the 429 queue_full case, and how to size an image batch.

AI dubbing API: build the pipeline from STT, TTS and audio joins
Sume has no one-call dubbing route. Chain audio detach, STT 1.0, your translation, TTS 1.0 and Timeline audio into a dub. Routes, limits and the $0.01 steps.

Claude Code permissions ask rule for paid MCP tools
An ask rule in Claude Code settings prompts every time a named MCP tool runs, even if an allow rule matches. Rules for Sume's paid tools and their limits.