API reference
Presets

Presets

GET /api/v1/presets

Returns 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

FieldDescription
idThe value to send as preset when creating a job
nameHuman-readable name
categoryOne of the eight categories listed in meta.categories
specificationsCodecs, plus resolution, peak bitrate and CRF where the preset has a single output
estimatedProcessingTimeEncoding time range for a typical source
requiredPlanLowest plan that includes this preset
availableWhether your plan includes it
upgradeMessagePresent 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.

FieldPresent for
videoCodecEvery preset except the audio-only ones
audioCodecEvery preset that keeps audio
resolutionThe 8 single-output presets
maxrateThe 7 presets that cap their bitrate
crfThe 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)