Quick Start

Compress your first video in under 5 minutes.

1 Get your API key

Create an account and generate an API key from the dashboard. Your key starts with vd_live_ for production or vd_test_ for sandbox.

$ curl -X POST https://api.viding.ai/api/v1/keys \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-first-key"}'

Store your API key securely — the full key is only shown once at creation time.

2 Initialize an upload

Start a chunked upload by providing the filename, MIME type, and file size. The API returns presigned URLs for each chunk.

$ curl -X POST https://api.viding.ai/api/v1/uploads/init \
  -H "Authorization: Bearer vd_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "interview.mp4",
    "mime_type": "video/mp4",
    "file_size": 524288000
  }'

# Response:
{
  "upload_id": "a1b2c3d4-...",
  "chunk_count": 50,
  "chunk_urls": ["https://...", ...],
  "expires_at": "2026-04-01T12:00:00Z"
}

3 Submit a compression job

Once the upload is complete, create a job specifying your desired codec and quality settings — or use a preset.

$ curl -X POST https://api.viding.ai/api/v1/jobs \
  -H "Authorization: Bearer vd_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "file_id": "a1b2c3d4-...",
    "preset": "balanced",
    "webhook_url": "https://your-server.com/webhook"
  }'

# Response:
{
  "id": "job-uuid-...",
  "status": "queued",
  "created_at": "2026-04-01T10:30:00Z"
}

4 Download the result

Poll the job status or wait for a webhook callback. Once complete, get a presigned download URL.

$ curl https://api.viding.ai/api/v1/jobs/job-uuid-.../download \
  -H "Authorization: Bearer vd_live_abc123..."

# Response:
{
  "download_url": "https://storage.viding.ai/...",
  "expires_at": "2026-04-01T11:30:00Z"
}

See the full API Reference for all endpoints, error codes, and webhook event schemas.