> ## Documentation Index
> Fetch the complete documentation index at: https://rendobar.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Keep the API key in an env var (RENDOBAR_API_KEY), never in chat or committed code.
> Job types change, so fetch the live catalog from GET https://api.rendobar.com/jobs/types rather than relying on memory.
> The full integration prompt for coding agents is at https://rendobar.com/prompts/integrate.md.

# Docs for the media processing API

> Start with the quickstart, then browse job types, storage connections, automation platforms, and the SDK, CLI and MCP server.

Rendobar runs media jobs on our infrastructure and hands back a finished file. You POST a job with your inputs, we execute it on isolated cloud workers, and you collect the output by webhook or by polling. One endpoint covers raw FFmpeg, media inspection, timeline composition, compression, captions, and image generation.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/docs/quickstart">
    Submit your first job, poll it to completion, and download the result.
  </Card>

  <Card title="Build with AI" icon="sparkles" href="/docs/build-with-ai">
    Hand your coding agent one prompt and let it write the integration.
  </Card>
</CardGroup>

## How does a job work?

Every job shares the same shape, whatever its type. Read [how a job works](/docs/concepts/job) for the lifecycle and the output contract, [scopes and access](/docs/concepts/scopes) for what an API key is allowed to do, and [credits](/docs/concepts/credits) for how work is billed.

Results arrive two ways: [webhooks](/docs/guides/webhooks) for signed delivery to your endpoint, or [callbacks](/docs/guides/callbacks) when you want the job to call your own service.

## Job types

<CardGroup cols={2}>
  <Card title="FFmpeg" icon="terminal" href="/docs/jobs/ffmpeg">
    Run any FFmpeg command in a sandbox, with guardrails.
  </Card>

  <Card title="ffprobe" icon="magnifying-glass" href="/docs/jobs/ffprobe">
    Probe media metadata from a URL, normalized plus raw.
  </Card>

  <Card title="Compose" icon="layer-group" href="/docs/jobs/compose">
    Render video from a declarative JSON timeline.
  </Card>

  <Card title="Compress" icon="compress" href="/docs/jobs/compress">
    Shrink a file to a target size or quality budget.
  </Card>

  <Card title="Captions" icon="closed-captioning" href="/docs/jobs/captions/animate">
    Burn static subtitles or animate word-level captions.
  </Card>

  <Card title="Generate images" icon="image" href="/docs/jobs/image-generate">
    Generate, edit and upscale images on hosted models.
  </Card>
</CardGroup>

## Bring your own storage

Connect a bucket you own and jobs read inputs from it and write outputs back, so your files never need to be public. Start at [storage connections](/docs/storage), then pick your provider: [Cloudflare R2](/docs/storage/cloudflare-r2), [Amazon S3](/docs/storage/amazon-s3), [Supabase](/docs/storage/supabase), or any [S3-compatible](/docs/storage/s3-compatible) bucket.

## Automation and tooling

<CardGroup cols={3}>
  <Card title="Automation" icon="bolt" href="/docs/automation">
    Run jobs from n8n or Activepieces, no code required.
  </Card>

  <Card title="SDK and CLI" icon="code" href="/docs/sdk">
    TypeScript SDK, plus the rb command line tool.
  </Card>

  <Card title="MCP server" icon="plug" href="/docs/mcp-server">
    Let Claude, Cursor and other agents run jobs directly.
  </Card>
</CardGroup>

## What do I do when something goes wrong?

Check the [FAQ](/docs/support/faq) first, then [error codes](/docs/support/errors) to handle failures by machine code rather than message text. [Limits](/docs/support/limits) covers plan caps, and [versioning](/docs/support/versioning) covers how the API changes.
