> ## 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.

# Shape asset reference

> Render a rectangle, ellipse, polygon or path as a clip, with every field a shape asset accepts listed in full.

Set `asset.type` to `"shape"`. These are its own fields, on top of the [clip fields](/docs/docs/jobs/compose/reference/timeline#clip) every clip takes.

| Field | Type | What it does | |
| - | - | - | - |
| `shape` | `"rect"` \| `"ellipse"` \| `"circle"` \| `"triangle"` \| `"diamond"` \| `"path"` | What to draw, in the box the clip's `transform.size` gives it. Size, place and turn the shape with the transform like any clip, and with no size it fills the frame. rect is the default and the only kind that takes a `radius` or a two-colour fill plus stroke. circle takes one side of the box, its diameter, so it stays round on any frame. triangle points down until you `rotate` it. path draws whatever SVG path data you paste into `path`. A LINE is a rect with a small height, turned with `rotate` when it needs to be diagonal. default `"rect"`. | |
| `color` | string \| any\[] \| object\[] | Fill colour, "#RRGGBB", or "#RRGGBBAA" to make the fill itself translucent. "#00000080" is a 50% scrim to sit text on. Give TWO colours as an array and it is a gradient, \["#E11D48","#3B82F6"], running in the direction `gradient` names. Keyframes change it over time, and a solid can become a gradient. Leave it out and only the `stroke` draws, which is an outline with a real hole in it. The clip opacity makes the whole shape translucent the same way, outline and shadow included, and can be keyframed. | |
| `gradient` | `"vertical"` \| `"horizontal"` \| `"diagonal"` \| `"radial"` | Which way a two-colour `color` runs: vertical (top to bottom, the default), horizontal, diagonal, or radial from the centre out. The gradient is mapped to the SHAPE, not the frame, so a small badge still shows the whole ramp. | |
| `stroke` | object | An outline drawn just inside the edge of the shape. With no `color` it is an outline only, and what it surrounds is genuinely transparent. | |
| `stroke.color` \* | string | Outline colour, hex like "#FFFFFF". pattern `^#[0-9A-Fa-f]{6}$`. | |
| `stroke.width` \* | number | Outline width in pixels of the output frame, drawn INSIDE the edge of the shape. 2-8 reads well at 1080p. over 0. | |
| `path` | string | SVG path data, the `d` attribute straight out of a design tool, for `shape: "path"`. Supports M L H V C S Q T Z, absolute and relative. Elliptical arcs (A) are refused rather than approximated, so re-export with arcs converted to curves. The path is scaled into the clip's box, so the same data works at any size on any frame. | |
| `viewBox` | string | The coordinate space `path` is written in, like "0 0 24 24" for a pasted icon. Defaults to "0 0 100 100", so a path written in percentages needs no viewBox at all. | |
| `radius` | number \| object\[] | Corner rounding on a rect. 0 is square, 1 is fully round, which gives a pill on a wide box and a circle on a square one. Keyframes round it off or square it up. Rectangles only, and not combinable with a turn or `softness`. default `0`. | |
| `softness` | number | Feathers the edge; 0 is a hard edge. 0.1 to 0.3 makes a soft spotlight or vignette instead of a hard-edged shape. Not available on a rect that has a `radius`. default `0`, min 0, max 1. | |
| `shadow` | object | A drop shadow behind the shape. Every field has a default, so "shadow": \{} is a sensible one. It follows the shape, including its outline, its turn and its animation. | |
| `shadow.color` | string | Shadow colour, usually black with alpha like "#00000080". default `"#00000080"`, pattern \`^#(\[0-9A-Fa-f]6 | \[0-9A-Fa-f]8)\$\`. |
| `shadow.blur` | number | Blur radius in pixels. 8-20 reads as a soft drop shadow; 0 is a hard offset copy. default `12`, min 0. | |
| `shadow.x` | number | Horizontal offset in pixels, positive to the right. default `6`. | |
| `shadow.y` | number | Vertical offset in pixels, positive downward. default `6`. | |

Fields marked `*` are required. Every table on this page is generated from the schema the API validates with, so it cannot drift from what a render accepts.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.