Skip to content

Introduction

Xora is a programmatic video transcoding API. Send a URL, pick a recipe (or write your own FFmpeg command), and get processed media back — all through a single REST endpoint at https://api.xora.sh/v1.

Your app Xora
│ │
├── POST /api/v1/jobs ─────────▶│ (input URL + recipe)
│ │
│◀── 202 { jobId, state } ──────┤ (job accepted)
│ │
│ ... processing ... │
│ │
├── GET /api/v1/jobs/:id ──────▶│ (check status)
│◀── { state, signedUrl } ──────┤ (download when ready)
│ │
  1. Authenticate — use an API key (Authorization: Bearer nte_…) or sign in to the dashboard.
  2. Create a jobPOST /api/v1/jobs with a recipe or custom FFmpeg args.
  3. Wait for completion — poll the job status or receive a webhook.
  4. Download — grab your output from the signed URL, or have it delivered to your own R2 bucket.
FeatureDescription
9 built-in recipesWeb ready, Edit proxy, compress, transcode, resize, trim, extract audio, thumbnail, concat
Custom FFmpegPass your own FFmpeg argument array for full control
PresetsSave and reuse job configurations — run them with a single presetId
Input stagingOptionally skip copying inputs when your URL supports HTTP byte ranges
WebhooksGet notified when jobs complete or fail
BYOB storageRoute outputs to your own Cloudflare R2 bucket
Files APIList, inspect, and delete stored output files
TypeFormats
Videomp4, webm, mov, gif
Audiomp3, aac, wav
Imagejpg, png

See Output Formats for details on which recipes support which formats.

PieceWhat it does
REST APIPOST /api/v1/jobs, GET /api/v1/jobs/:id, files, presets, tokens, usage
DashboardWeb UI at /app — manage presets, inspect jobs, create API keys