Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions guides/webhooks.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Webhooks for job events"
description: "Receive job status events via signed HMAC POST. Setup, payload format, signature verification, 3-attempt retry policy. Available on all plans."
description: "Receive job status events via signed HMAC POST. Setup, payload format, signature verification, 3-attempt retry policy."
sidebarTitle: "Webhooks"
icon: "bell"
keywords: ["webhooks", "hmac signature", "job status webhook", "rendobar webhook setup", "signed webhook"]
Expand All @@ -25,7 +25,7 @@
}}
/>

Rendobar POSTs JSON to your endpoint when a [job](/concepts/job) changes status. Available on all plans, including Free.
Rendobar POSTs JSON to your endpoint when a [job](/concepts/job) changes status.

Check warning on line 28 in guides/webhooks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/webhooks.mdx#L28

Did you really mean 'Rendobar'?

## Set up a webhook

Expand Down Expand Up @@ -87,7 +87,7 @@
"meta": { "format": "mp4", "width": 1920, "height": 1080, "durationMs": 127500 }
}
],
"expiresAt": 1707440415000

Check warning on line 90 in guides/webhooks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/webhooks.mdx#L90

Did you really mean 'expiresAt'?
},
"cost": { "amount": 50000000, "currency": "USD", "formatted": "$0.05" },
"timing": {
Expand Down Expand Up @@ -201,7 +201,7 @@
## Best practices

- **Return 200 fast.** Process asynchronously. Long handlers trigger retries → duplicate deliveries.
- **Deduplicate** on `X-Rendobar-Delivery` or `jobId`. Same event can arrive more than once.

Check warning on line 204 in guides/webhooks.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

guides/webhooks.mdx#L204

Did you really mean 'Deduplicate'?
- **Verify every signature** before reading the body.

## See also
Expand Down
17 changes: 8 additions & 9 deletions jobs/compose.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Compose: render from a timeline"
sidebarTitle: "Compose"
description: "Render a video from a declarative JSON timeline. Tracks, clips, transitions, text, and per-clip effects, in one API call."
description: "Render a video from a declarative JSON timeline. Tracks, clips, transitions, text, and per-clip effects."
icon: "film"
keywords: ["video compose api", "json timeline to video", "video transitions api", "video editing api", "compose"]
canonical: "https://rendobar.com/docs/jobs/compose"
Expand All @@ -15,7 +15,7 @@
"@type": "TechArticle",
"@id": "https://rendobar.com/docs/jobs/compose/#article",
"headline": "Compose: render from a timeline",
"description": "Render a video from a declarative JSON timeline. Tracks, clips, transitions, text, and per-clip effects, in one API call.",
"description": "Render a video from a declarative JSON timeline. Tracks, clips, transitions, text, and per-clip effects.",
"datePublished": "2026-06-21",
"dateModified": "2026-06-22",
"author": { "@type": "Organization", "@id": "https://rendobar.com/#organization" },
Expand All @@ -29,7 +29,7 @@

## Your simplest render

The smallest timeline is one track with one clip. This trims three seconds of a video and renders it to MP4. The whole API call:
The smallest timeline is one track with one clip. This renders the first three seconds of a video to MP4. The whole API call:

<CodeGroup>

Expand All @@ -54,8 +54,7 @@
{
asset: {
type: "video",
src: "https://cdn.rendobar.com/assets/examples/a.mp4",
trim: { from: 0, to: 3 },
src: "https://cdn.rendobar.com/assets/examples/sample.mp4",
},
start: 0,
length: 3,
Expand Down Expand Up @@ -93,8 +92,7 @@
{
"asset": {
"type": "video",
"src": "https://cdn.rendobar.com/assets/examples/a.mp4",
"trim": {"from": 0, "to": 3},
"src": "https://cdn.rendobar.com/assets/examples/sample.mp4",
},
"start": 0,
"length": 3,
Expand Down Expand Up @@ -128,8 +126,7 @@
{
"asset": {
"type": "video",
"src": "https://cdn.rendobar.com/assets/examples/a.mp4",
"trim": { "from": 0, "to": 3 }
"src": "https://cdn.rendobar.com/assets/examples/sample.mp4"
},
"start": 0,
"length": 3
Expand All @@ -145,9 +142,11 @@
</CodeGroup>

<Info>
**Assets:** video, image, text, audio, composition · **Output:** mp4 / webm / gif / mp3 (audio only) / jpg / png (still frame)

Check warning on line 145 in jobs/compose.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

jobs/compose.mdx#L145

Did you really mean 'webm'?

Check warning on line 145 in jobs/compose.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

jobs/compose.mdx#L145

Did you really mean 'gif'?
</Info>

Without `trim`, a clip plays its source from the start for `length` seconds. To use a specific segment instead, add `trim: { from, to }` (in source seconds) to the asset. `length` is always the timeline duration. `trim` only chooses which part of the source fills it.

That is the shape of every render. Everything below is one more clip, one more track, or one more field.

## Join two clips
Expand Down Expand Up @@ -357,13 +356,13 @@

| Field | What it does |
| --- | --- |
| `opacity` | `0`..`1`, or keyframes `[{ time, value, easing: step \| linear \| smooth }]` |

Check warning on line 359 in jobs/compose.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

jobs/compose.mdx#L359

Did you really mean 'keyframes'?
| `transform` | `position {x,y}`, `scale`, `rotate`, `anchor` (`center` \| `topLeft`), `fit` (`contain` \| `fill`), `animateTo` (Ken Burns end state) |
| `crop` | `top` / `right` / `bottom` / `left`, each a percent string like `"10%"` |
| `speed` | playback rate (`0.5` = slow motion, `2` = fast, and pitch shifts with speed) |
| `color` | `brightness` (-1..1), `contrast` (0..4), `saturation` (0..3), `gamma` (0.1..10), `hue` (-180..180), `temperature` (1000..40000 K) |
| `filter` | `greyscale`, `negative`, `boost`, `muted`, `lighten`, `darken`, `contrast` (mutually exclusive with `color`) |
| `blur` / `sharpen` | gaussian blur strength / unsharp amount |

Check warning on line 365 in jobs/compose.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

jobs/compose.mdx#L365

Did you really mean 'gaussian'?

Check warning on line 365 in jobs/compose.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

jobs/compose.mdx#L365

Did you really mean 'unsharp'?
| `chromaKey` | `color` (hex), `similarity` (0..1) |
| `blendMode` | `normal`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, `add`, `difference` |
| `pan` | stereo balance, `-1` (left) to `1` (right) |
Expand Down
4 changes: 2 additions & 2 deletions support/faq.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Frequently asked questions"
sidebarTitle: "FAQ"
description: "Get quick answers about Rendobar pricing, supported formats, AI agent access, rate limits, and what counts as a failed job."

Check warning on line 4 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L4

Did you really mean 'Rendobar'?
icon: "circle-question"
keywords: ["rendobar faq", "video api faq", "rendobar pricing faq", "ffmpeg api questions"]
canonical: "https://rendobar.com/docs/support/faq"
Expand Down Expand Up @@ -45,7 +45,7 @@
"name": "Can I drive Rendobar from an AI agent?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Connect any MCP-compatible agent to https://api.rendobar.com/mcp with your API key. Six typed MCP tools (submit_job, get_job, list_jobs, probe_media, get_account, upload_media). Available on all plans."
"text": "Yes. Connect any MCP-compatible agent to https://api.rendobar.com/mcp with your API key. Six typed MCP tools (submit_job, get_job, list_jobs, probe_media, get_account, upload_media)."
}
},
{
Expand Down Expand Up @@ -100,15 +100,15 @@
</Accordion>

<Accordion title="What can I do with Rendobar today?">
The live API is the `ffmpeg` job type, any whitelisted FFmpeg command against URLs you provide. That covers transcoding, trimming, filtering, overlays, audio extraction, frame extraction, and anything else FFmpeg does from the command line. More dedicated job types are on the roadmap.

Check warning on line 103 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L103

Did you really mean 'FFmpeg'?

Check warning on line 103 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L103

Did you really mean 'transcoding'?
</Accordion>

<Accordion title="What video formats are supported?">
Every FFmpeg-compatible container and codec for input. Output defaults to the extension in your trailing filename (`output.mp4` → MP4). Override with `params.outputFormat`.

Check warning on line 107 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L107

Did you really mean 'codec'?
</Accordion>

<Accordion title="Can I drive Rendobar from an AI agent?">
Yes. Connect any MCP-compatible agent to `https://api.rendobar.com/mcp` with your API key. Six typed MCP tools: `submit_job`, `get_job`, `list_jobs`, `probe_media`, `get_account`, `upload_media`. Available on all plans. See [MCP overview](/mcp-server).
Yes. Connect any MCP-compatible agent to `https://api.rendobar.com/mcp` with your API key. Six typed MCP tools: `submit_job`, `get_job`, `list_jobs`, `probe_media`, `get_account`, `upload_media`. See [MCP overview](/mcp-server).
</Accordion>

<Accordion title="How long do jobs take?">
Expand All @@ -120,7 +120,7 @@
</Accordion>

<Accordion title="What happens if a job fails?">
Failed jobs are charged for the compute they used. Rendobar has no auto-refund. If you believe a failure was caused by a Rendobar bug or platform issue, contact support and we will review for a discretionary refund. Successful and failed jobs are billed the same way: for the compute the job consumed. Inspect `error.code` and `error.message` on the job, and retry via `POST /jobs/{id}/retry` if appropriate. [Error codes](/support/errors).

Check warning on line 123 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L123

Did you really mean 'Rendobar'?
</Accordion>

<Accordion title="Can I run custom FFmpeg commands?">
Expand All @@ -128,12 +128,12 @@
</Accordion>

<Accordion title="How do I get push updates instead of polling?">
Configure a [webhook](/guides/webhooks) endpoint on your organization. Rendobar POSTs signed JSON when jobs change status. The dashboard uses a WebSocket internally. Programmatic push is webhook-only.

Check warning on line 131 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L131

Did you really mean 'Rendobar'?
</Accordion>

</AccordionGroup>

For more about what Rendobar can do, see [rendobar.com](https://rendobar.com) or [rendobar.com/pricing/](https://rendobar.com/pricing/). For head-to-head comparisons with other video APIs, see [rendobar.com/vs/](https://rendobar.com/vs/).

Check warning on line 136 in support/faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (rendobar) - vale-spellcheck

support/faq.mdx#L136

Did you really mean 'Rendobar'?

## Related

Expand Down
Loading