Edit Proxy
The proxy recipe creates an edit proxy — always re-encoded for timeline scrubbing. Unlike webReady, it never passthroughs or xora-copies the source.
Scale is optional. You can create a 1080p edit proxy without downscaling, or a smaller 720p proxy for faster editing.
Basic usage
Section titled “Basic usage”curl -X POST https://api.xora.sh/v1/jobs \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "mode": "recipe", "input": { "url": "https://example.com/master.mov" }, "output": { "format": "mp4" }, "recipe": { "name": "proxy", "crf": 30 } }'await fetch('https://api.xora.sh/v1/jobs', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ mode: 'recipe', input: { url: 'https://example.com/master.mov' }, output: { format: 'mp4' }, recipe: { name: 'proxy', crf: 30 } })});720p scrub-friendly proxy
Section titled “720p scrub-friendly proxy”{ "mode": "recipe", "input": { "url": "https://example.com/master.mov" }, "output": { "format": "mp4" }, "recipe": { "name": "proxy", "scaleDown": true, "height": 720, "crf": 30, "gop": "all_intra" }}Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | — | Must be "proxy" |
scaleDown | boolean | No | false | Downscale when true |
width | number | No | auto | Output width when scaling |
height | number | No | — | Output height when scaleDown is true |
crf | number | No | 32 | Quality (lower = higher quality, larger file) |
bitrateKbps | number | No | — | Target video bitrate; overrides CRF |
gop | string | No | per_second | per_second (1 keyframe/sec) or all_intra (every frame) |
startSeconds | number | No | — | Optional clip start |
durationSeconds | number | No | — | Optional clip duration |
Output format
Section titled “Output format”proxy requires MP4 output:
"output": { "format": "mp4" }