Quick start
This page takes you from nothing to a finished video. It uses mp4_264_720p,
a preset every plan can use.
1. Create an account
Sign up at videotranscode.cloud (opens in a new tab). No card is required. The free plan gives you 10 jobs per month, sources up to 10 minutes long, and 7 presets.
2. Create an API key
In the dashboard, open API keys and click Create API key. The full key is shown once, at creation time. Copy it then; afterwards only the last four characters are visible.
Keep it in an environment variable rather than in source control.
export VT_API_KEY="spk_your_key_here"3. Create a job
The request needs two fields: a publicly reachable inputUrl and a preset.
curl -X POST https://videotranscode.cloud/api/v1/jobs \
-H "Authorization: Bearer $VT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputUrl": "https://cdn.example.com/master.mov",
"preset": "mp4_264_720p"
}'A successful call returns 201 Created and the job is already queued.
{
"id": "9d1f5c0a-4e7b-4a61-9b2e-8f1c3d5a7e42",
"status": "queued",
"preset": "mp4_264_720p",
"inputUrl": "https://cdn.example.com/master.mov",
"webhookUrl": null,
"createdAt": "2026-09-10T14:08:11.204Z",
"estimatedProcessingTime": "2-5 minutes",
"links": {
"self": "/api/v1/jobs/9d1f5c0a-4e7b-4a61-9b2e-8f1c3d5a7e42",
"cancel": "/api/v1/jobs/9d1f5c0a-4e7b-4a61-9b2e-8f1c3d5a7e42/cancel"
},
"user": {
"remainingJobs": 9,
"plan": "Free"
}
}Job identifiers are UUIDs. Store id; everything else is derived from it.
4. Wait for it to finish
Read the job until status is no longer queued or processing.
curl https://videotranscode.cloud/api/v1/jobs/9d1f5c0a-4e7b-4a61-9b2e-8f1c3d5a7e42 \
-H "Authorization: Bearer $VT_API_KEY"{
"id": "9d1f5c0a-4e7b-4a61-9b2e-8f1c3d5a7e42",
"status": "completed",
"preset": "mp4_264_720p",
"inputUrl": "https://cdn.example.com/master.mov",
"outputUrl": "https://sfo3.digitaloceanspaces.com/...&X-Amz-Signature=...",
"expiration": "2026-09-10T18:14:52.881Z",
"duration": 742,
"errorMessage": null,
"retryCount": 0,
"metadata": {
"createdAt": "2026-09-10T14:08:11.204Z",
"startedAt": "2026-09-10T14:08:19.663Z",
"completedAt": "2026-09-10T14:12:47.118Z",
"lastCheckedAt": "2026-09-10T14:12:47.118Z"
},
"links": {
"self": "/api/v1/jobs/9d1f5c0a-4e7b-4a61-9b2e-8f1c3d5a7e42",
"output": "/api/v1/jobs/9d1f5c0a-4e7b-4a61-9b2e-8f1c3d5a7e42/output"
}
}Polling every 10 to 15 seconds is enough. For anything beyond a script, configure a webhook instead and let the service call you.
5. Download the output
outputUrl is a signed link. Download it with any HTTP client; no
authorization header is needed, because the signature is in the URL.
curl -o output.mp4 "$OUTPUT_URL"The expiration field tells you exactly when that link stops working: 4 hours
after signing on the free plan, 7 days on paid plans. The link is signed fresh
every time you read the job, so an expired link is never a problem while the
file is still in storage. See Downloading output.
What to read next
- Authentication for key handling and rotation.
- Your first job for a fuller walkthrough with error handling.
- Choosing a preset to pick the right output.
- Plans and limits for every quota the service enforces.