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
- API Reference — Browse all endpoints, tools, and options
- MCP Server — Connect AI agents via the Model Context Protocol
- Billing & Credits — Understand how credits are calculated