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

# API Reference

> Rendi FFmpeg API reference — authentication, endpoints, request/response formats.

# Command Structure

<Note>
  Authenticate every request with the `X-API-KEY` header. Keep your API key server-side — never ship it in browser code or commit it to a public repo.
</Note>

We use a simple JSON format to send commands.

<Note> You don't need to write the *ffmpeg* word in your commands, because we handle this internally </Note>

## vCPUs

You control how many vCPUs each command uses, up to your account's maximum. Multiple commands can run in parallel as long as their total vCPU usage doesn't exceed your quota.

## File naming

When sending commands you will notice that you will need to use `{{alias}}` for file placeholders for input and output files.

Input files will need to be sent in the `input_files` dictionary, with each key starting with `in_` prefix, and the value should be an online accessible storage endpoint for Rendi to pull files from.

The `in_` prefix is mandatory for Rendi to consider this as a valid input fille.

Output files will similarly be in `output_files` dictionary, with each key starting with `out_` prefix, and the value is the required output file name, without any folder or path structure. Output files will be places in a Rendi hosted storage and their name will be as you specified.

The `out_` prefix is mandatory for Rendi to consider this as a valid input fille.

Only alpha-numeric characters and underscores are allowed for output file names, for the file extension a period character is also allowed (e.g. `output_1.mp4`).

<Note>If you're using an automation platform where curly brackets are used as characters (like make, zapier, or other) add backslashes before the curly brackets, for example, replace `{{in_1}}` with backslashes and brackets `\{\{in_1\}\}`.</Note>

## Reasons for aliasing files instead of providing them directly within the command

* The command itself and its files are separate entities. For example - you can use the same input files for several commands, or reuse the same command with different inputs and outputs.

* We validate file names and their locations.

* In the future we will allow you to integrate Rendi with your own private storage repositories, and Rendi will need to pull and put files using specific integrations.

# Output file storage

Output files are stored indefinitely until you choose to delete them using our deletion endpoints.

# Authentication

All API endpoints are authenticated using an API Key which you get when you activate your account. The API Key needs to be provided as the value of HTTP Header `X-API-KEY` as

```http theme={null}
--header 'X-API-KEY: <RENDI_API_KEY>'
```
