Quick Start

Process your first video in four steps. You will need an API key — create one from your Account page under API Keys.

1. Check your balance

Make sure you have credits available:

curl https://editclips.online/api/v1/balance \
  -H "Authorization: Bearer ec_live_YOUR_KEY"

Response:

{
  "credits": 300,
  "totalPurchased": 0
}

New accounts start with 300 free credits.

2. Submit a job

Convert a video to MP4 by sending a URL to the input file:

curl -X POST https://editclips.online/api/v1/jobs \
  -H "Authorization: Bearer ec_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "anything-to-mp4",
    "inputs": ["https://example.com/video.mov"],
    "durationMs": 30000,
    "width": 1280,
    "height": 720
  }'

Response (201 Created):

{
  "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "status": "queued",
  "tool": "anything-to-mp4",
  "creditsReserved": 1,
  "poll": "/api/v1/jobs/d290f1ee-6c54-4b01-90e6-d701748f0851"
}

3. Poll for completion

Check the job status until it reaches completed:

curl https://editclips.online/api/v1/jobs/JOB_ID \
  -H "Authorization: Bearer ec_live_YOUR_KEY"

While processing:

{
  "id": "d290f1ee-...",
  "status": "processing",
  "tool": "anything-to-mp4",
  "progress": 45,
  "progressMessage": "Encoding..."
}

When complete:

{
  "id": "d290f1ee-...",
  "status": "completed",
  "tool": "anything-to-mp4",
  "progress": 100,
  "outputUrl": "https://r2.editclips.online/...",
  "outputFilename": "video.mp4",
  "outputSize": 2048576,
  "creditsReserved": 1,
  "creditsCharged": 1
}

4. Download the result

The outputUrl is a presigned download link valid for 1 hour:

curl -o output.mp4 "OUTPUT_URL_FROM_RESPONSE"

Skip polling with webhooks

Instead of polling, pass a webhook URL when creating the job and EditClips will POST to it when the job finishes:

curl -X POST https://editclips.online/api/v1/jobs \
  -H "Authorization: Bearer ec_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "anything-to-mp4",
    "inputs": ["https://example.com/video.mov"],
    "webhook": "https://yourapp.com/webhooks/editclips"
  }'

See the Webhooks guide for payload details.

Upload files instead of URLs

If your file isn't publicly accessible, you can upload it directly. Pass files instead of inputs:

curl -X POST https://editclips.online/api/v1/jobs \
  -H "Authorization: Bearer ec_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "anything-to-mp4",
    "files": [{"name": "video.mov", "size": 52428800}],
    "durationMs": 30000,
    "width": 1280,
    "height": 720
  }'

The response includes presigned upload URLs:

{
  "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "status": "pending_upload",
  "tool": "anything-to-mp4",
  "creditsReserved": 1,
  "uploads": [
    {
      "name": "video.mov",
      "url": "https://...presigned-put-url..."
    }
  ],
  "poll": "/api/v1/jobs/d290f1ee-6c54-4b01-90e6-d701748f0851"
}

Upload your file with a PUT request, then signal that you're ready:

curl -X PUT -T video.mov "UPLOAD_URL_FROM_RESPONSE"

curl -X POST https://editclips.online/api/v1/jobs/JOB_ID/ready \
  -H "Authorization: Bearer ec_live_YOUR_KEY"

After that, poll for completion the same way as before.

Use with AI agents

EditClips also has an MCP server that lets AI agents (Claude Desktop, Cursor, etc.) process files using natural language. Same API key, same credits.

Next steps