Skip to main content

1. Get your API key

Sign up at the MediAPI Dashboard and create an API key.

2. Submit your first job

curl -X POST https://api.mediapi.dev/v1/jobs \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "https://sample-videos.com/video321/mp4/720/big_buck_bunny_720p_1mb.mp4",
    "operations": [
      { "type": "thumbnail", "params": { "time": "00:00:03" } }
    ]
  }'
Response:
{ "id": "job_abc123", "status": "pending" }

3. Check job status

curl https://api.mediapi.dev/v1/jobs/job_abc123 \
  -H "X-API-Key: YOUR_API_KEY"
When status is completed, the outputs array contains your results.

4. Download the result

curl https://api.mediapi.dev/v1/jobs/job_abc123/download \
  -H "X-API-Key: YOUR_API_KEY"
Returns a presigned download URL valid for 1 hour.

Chaining operations

Apply multiple operations in sequence:
{
  "input": "https://example.com/video.mp4",
  "operations": [
    { "type": "trim", "params": { "start": "00:00:05", "end": "00:00:15" } },
    { "type": "transcode", "params": { "format": "mp4", "codec": "h264", "resolution": "720p" } }
  ]
}

Using webhooks

Get notified when jobs complete instead of polling:
{
  "input": "https://example.com/video.mp4",
  "operations": [{ "type": "transcode", "params": { "format": "mp4" } }],
  "webhook_url": "https://yourapp.com/webhook"
}

Upload files directly

For local files, use the upload endpoint:
curl -X POST https://api.mediapi.dev/v1/jobs/upload \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@video.mp4" \
  -F 'operations=[{"type":"transcode","params":{"format":"webm"}}]'