Skip to main content
Get an API key, submit an ffmpeg job, poll until complete, download the output.

1. Get an API key

Sign up at app.rendobar.com and create a key from Settings → API keys. Keys start with rb_. New accounts get $5 in free credits. Prefer the terminal? Skip steps 2–4 and use the CLI instead.

2. Submit a job

import { createClient, outputUrl } from "@rendobar/sdk";

const client = createClient({ apiKey: "rb_YOUR_KEY" });

const created = await client.jobs.create({
  type: "ffmpeg",
  params: {
    command: "ffmpeg -i https://example.com/video.mp4 -vf scale=1280:720 -c:v libx264 -preset fast -crf 23 output.mp4",
  },
});

const job = await client.jobs.wait(created.id);
console.log(outputUrl(job));
Put input URLs directly in -i flags. The output format is inferred from the trailing filename (output.mp4 → MP4). Response:
{ "data": { "id": "job_abc123", "status": "waiting" } }

3. Poll for completion

curl https://api.rendobar.com/jobs/job_abc123 \
  -H "Authorization: Bearer rb_YOUR_KEY"
Statuses: waiting → dispatched → running → complete | failed | cancelled. See job lifecycle for what each status means. Poll every 1–2 seconds. For push instead of poll, configure a webhook.

4. Download the result

When status is complete, the response contains an output object. The file to download is output.file.url, signed and valid for one hour:
{
  "data": {
    "id": "job_abc123",
    "status": "complete",
    "output": {
      "data": null,
      "file": {
        "url": "https://r2.rendobar.com/...",
        "path": "output.mp4",
        "type": "video",
        "size": 4194304,
        "meta": { "format": "mp4", "width": 1280, "height": 720, "durationMs": 30000 }
      },
      "files": [
        {
          "url": "https://r2.rendobar.com/...",
          "path": "output.mp4",
          "type": "video",
          "size": 4194304,
          "meta": { "format": "mp4", "width": 1280, "height": 720, "durationMs": 30000 }
        }
      ],
      "expiresAt": 1735689600000
    },
    "cost": { "amount": 50000000, "currency": "USD", "formatted": "$0.05" }
  }
}
Every job type returns this same output shape: data for a computed answer, file for the headline result, files for the full list. Re-fetch the job to refresh the URLs after they expire.

What’s next

  • Rendobar CLI: skip the curl, run rb ffmpeg from your terminal
  • FFmpeg: full guide with the security model and examples
  • Webhooks: push events instead of polling
  • Credits and billing: plans, balance, billing
  • MCP: drive Rendobar from an AI agent
Need more credits? See pricing for plan and credit-pack options.