Presets
GET /api/v1/presetsReturns all 23 presets. Each one is marked available: true if your plan
includes it, or available: false with an upgrade message if it does not.
The API key is optional here. Without one you see the catalogue as a free account sees it. Accounts on the Business and Enterprise plans receive only available presets, because there is nothing left to lock.
curl https://videotranscode.cloud/api/v1/presets \
-H "Authorization: Bearer $VT_API_KEY"Response
{
"presets": [
{
"id": "mp4_264_720p",
"name": "MP4 720p",
"category": "standard",
"specifications": {
"videoCodec": "libx264",
"audioCodec": "aac",
"resolution": "1280x720",
"maxrate": "2500k",
"crf": 21
},
"estimatedProcessingTime": "2-5 minutes",
"requiredPlan": "free",
"available": true
},
{
"id": "hls_abr_264_standard",
"name": "HLS ABR (5 rungs, H.264, CMAF)",
"category": "streaming",
"specifications": {
"videoCodec": "libx264",
"audioCodec": "aac"
},
"estimatedProcessingTime": "8-18 minutes",
"requiredPlan": "pro",
"available": false,
"upgradeMessage": "Requires pro plan"
}
],
"meta": {
"userPlan": "free",
"totalPresets": 23,
"availablePresets": 7,
"lockedPresets": 16,
"categories": [
"standard", "premium", "advanced", "streaming",
"live", "social", "audio", "utility"
],
"stats": {
"total": 23,
"byCategory": {
"standard": 3, "premium": 1, "advanced": 6, "streaming": 4,
"live": 2, "social": 2, "audio": 2, "utility": 3
},
"byPlan": { "free": 7, "pro": 6, "business": 6, "enterprise": 4 },
"byType": {
"vod": 8, "streaming_vod": 6, "live": 2,
"audio": 2, "utility": 3, "filter": 2
}
}
},
"links": {
"self": "/api/v1/presets",
"jobs": "/api/v1/jobs"
}
}Fields
| Field | Description |
|---|---|
id | The value to send as preset when creating a job |
name | Human-readable name |
category | One of the eight categories listed in meta.categories |
specifications | Codecs, plus resolution, peak bitrate and CRF where the preset has a single output |
estimatedProcessingTime | Encoding time range for a typical source |
requiredPlan | Lowest plan that includes this preset |
available | Whether your plan includes it |
upgradeMessage | Present only when available is false |
byPlan counts how many presets each plan adds, not how many it can use.
Plans are cumulative: free has 7 presets, Pro has those 7 plus 6 more for 13,
Business has 19, Enterprise has all 23.
What specifications does and does not carry
Fields with no value are omitted rather than returned as null, so the shape
of specifications differs between presets.
| Field | Present for |
|---|---|
videoCodec | Every preset except the audio-only ones |
audioCodec | Every preset that keeps audio |
resolution | The 8 single-output presets |
maxrate | The 7 presets that cap their bitrate |
crf | The 8 presets encoded at a fixed quality |
Ladder presets carry no resolution, bitrate or CRF here, because they have one of each per rung. The endpoint also returns no text description and no frame rate for any preset. For the full settings of every preset, including each rung of every ladder, use the preset catalogue.
Choosing programmatically
Filter on available to build a menu your users can actually submit, and use
requiredPlan on the locked ones to explain what an upgrade would unlock.
const { presets } = await fetch(
'https://videotranscode.cloud/api/v1/presets',
{ headers: { Authorization: `Bearer ${process.env.VT_API_KEY}` } }
).then(r => r.json())
const usable = presets.filter(p => p.available)
const locked = presets.filter(p => !p.available)