Video API (1.0)

Download OpenAPI specification:

Welcome to the Video API

This API provides powerful video and audio processing capabilities including:

  • Video Processing: Cutting, transcoding, scaling, and overlaying videos
  • Audio Processing: Extracting, replacing, and mixing audio tracks
  • AI-Powered Features: Text-to-speech generation with natural voices
  • Rendering: Subtitle rendering and custom overlay animations
  • File Management: Temporary file storage with automatic cleanup

Authentication

All API requests require authentication using an API key. Include your API key in the request header:

x-api-key: your-api-key-here

To obtain an API key:

  1. Create a user account on https://video-api.io
  2. Generate an API key for your user
  3. Include the key in all your requests

Credits System

Most operations consume credits from your account. Each endpoint's credit cost is documented in its description. Monitor your credit balance in your user account on https://video-api.io

Job-Based Processing

Many operations are asynchronous and return a Job ID. Poll the Job endpoint to check status and retrieve results when processing is complete.

Video

Transcode Video

Transcode the video to a different format

Authorizations:
ApiKey
Request Body schema: application/json
required
videoFileId
required
string <uuid>
outputFormat
required
string
Enum: "H265_LOSSLESS" "H265"

Responses

Request samples

Content type
application/json
{
  • "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
  • "outputFormat": "H265_LOSSLESS"
}

Scale Video

Scales the video to the given size

Authorizations:
ApiKey
Request Body schema: application/json
required
videoFileId
required
string <uuid>
outputWidth
required
integer <int32> <= 3840

width of the output video file, set to -1 to set it based on the aspect ratio

outputHeight
required
integer <int32> <= 2160

height of the output video file, set to -1 to set it based on the aspect ratio

outputFormat
required
string
Enum: "H265_LOSSLESS" "H265"

Responses

Request samples

Content type
application/json
{
  • "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
  • "outputWidth": 1920,
  • "outputHeight": 1080,
  • "outputFormat": "H265_LOSSLESS"
}

Replace Audio

Replaces the audio of the given video with the given audio

Authorizations:
ApiKey
Request Body schema: application/json
required
videoFileId
required
string <uuid>

video file to replace the audio of

audioFileId
required
string <uuid>

audio to use as replacement

Responses

Request samples

Content type
application/json
{
  • "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
  • "audioFileId": "55484532-dd29-4948-86e7-b7466837bc29"
}

Overlay Videos

Overlays two or more videos/images over a background/base video

Authorizations:
ApiKey
Request Body schema: application/json
required
backgroundVideoFileId
required
string <uuid>

video id of the background/base video

required
Array of objects (OverlayDefinition)

list of overlays to put on top of the background

outputFormat
required
string
Enum: "H265_LOSSLESS" "H265"

format of the resulting video

Responses

Request samples

Content type
application/json
{
  • "backgroundVideoFileId": "d933e89d-c6e8-4807-8de7-1f05bcaecd27",
  • "overlays": [
    ],
  • "outputFormat": "H265_LOSSLESS"
}

Mix In Audio

Mixes the audio into the given video file

Authorizations:
ApiKey
Request Body schema: application/json
required
videoFileId
required
string <uuid>
audioFileId
required
string <uuid>
audioVolume
required
integer <int32> [ 0 .. 100 ]

the volume of the audio from the audio file (between 0 and 100)

Responses

Request samples

Content type
application/json
{
  • "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
  • "audioFileId": "55484532-dd29-4948-86e7-b7466837bc29",
  • "audioVolume": 100
}

Generate Preview Image

Generates a preview image from the given video file

Authorizations:
ApiKey
Request Body schema: application/json
required
videoFileId
required
string <uuid>

video file to create previews of

offset
required
number <double> >= 0

offset (in seconds) to start taking previews from

offsetBetweenImages
required
number <double> [ 0.1 .. 9999 ]

offset (in seconds) between two preview images

targetWidth
required
integer <int32> [ 1 .. 3840 ]

width of the resulting preview images (height is calculated automatically to keep the original's video aspect ratio)

maxAmount
required
integer <int32> [ 1 .. 9999 ]

max amount of preview images to take

outputType
required
string
Enum: "STITCHED_JPG" "ZIP"

result type, either a stitched JPG consisting of all the preview images, or a zip file containing all the preview images

Responses

Request samples

Content type
application/json
{
  • "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
  • "offset": 0.1,
  • "offsetBetweenImages": 0.1,
  • "targetWidth": 1,
  • "maxAmount": 1,
  • "outputType": "STITCHED_JPG"
}

Extract Audio

Extracts the audio from the given video file.

Authorizations:
ApiKey
Request Body schema: application/json
required
videoFileId
required
string <uuid>
audioFormat
required
string
Enum: "FLAC" "AAC_HQ" "AAC" "MP3"

Responses

Request samples

Content type
application/json
{
  • "videoFileId": "c133127b-2ca0-4de0-ab03-6ff31672c8dc",
  • "audioFormat": "FLAC"
}

Cut Video

Generates a new video by cutting and merging the video parts as requested

Authorizations:
ApiKey
Request Body schema: application/json
required
required
object (VideoSize)

dimensions of the resulting video

outputFps
required
integer <int32> >= 1

frames per second (fps) of the resulting video

outputFormat
required
string
Enum: "H265_LOSSLESS" "H265"

output format for audio and video of the resulting video

required
Array of objects (VideoSequence)

sequences of videos to cut into the final video

Responses

Request samples

Content type
application/json
{
  • "outputSize": {
    },
  • "outputFps": 1,
  • "outputFormat": "H265_LOSSLESS",
  • "sequences": [
    ]
}

Get Video Info

Retrieves metadata about a video file including resolution, duration, FPS, and frame count

Authorizations:
ApiKey
path Parameters
videoFileId
required
string <uuid>

Responses

Render

Render Subtitles

Renders subtitles for a given video file. Note that this is optimized currently for rendering of subtitles for portrait mode videos only!

Authorizations:
ApiKey
Request Body schema: application/json
required
required
object (RenderSubtitleTarget)
required
object (FontSetting)
required
Array of objects (SubtitleLineDto)
type
required
string
Enum: "SIMPLE" "SIMPLE_SINE"
highlightColor
required
string
outputType
required
string
Enum: "WEB_M" "ZIP"

Responses

Request samples

Content type
application/json
{
  • "renderTarget": {
    },
  • "font": {
    },
  • "lines": [
    ],
  • "type": "SIMPLE",
  • "highlightColor": "string",
  • "outputType": "WEB_M"
}

Render Overlay

Renders an overlay of one or multiple png layers that are animated based on the specified list of actions

Authorizations:
ApiKey
Request Body schema: application/json
required
required
object (RenderVideoTarget)
outputType
required
string
Enum: "WEB_M" "ZIP"
required
Array of AssetNode (object) or GroupNode (object) or TextNode (object)
required
Array of AlphaAction (object) or GroupAction (object) or LoopAction (object) or MoveAction (object) or RotateAction (object) or ScaleAction (object) or WaitAction (object)

Responses

Request samples

Content type
application/json
{
  • "videoTarget": {
    },
  • "outputType": "WEB_M",
  • "nodes": [
    ],
  • "actions": [
    ]
}

File

Upload File

Uploads and temporarily stores a file for processing. Files are automatically deleted after a certain period of inactivity.

Authorizations:
ApiKey
Request Body schema: application/json
file
required
string <binary>

Responses

Request samples

Content type
application/json
{
  • "file": "string"
}

Pull Video

Downloads a video file from an external URL and stores it temporarily for processing

Authorizations:
ApiKey
Request Body schema: application/json
required
url
required
string <url>

Responses

Request samples

Content type
application/json
{
  • "url": "string"
}

Get File

Downloads a file by ID.

Authorizations:
ApiKey
path Parameters
id
required
string <uuid>

Responses

Delete File

Permanently deletes a stored file

Authorizations:
ApiKey
path Parameters
id
required
string <uuid>

Responses

Get File Meta Data

Retrieves metadata about a stored file including filename, size, content type, and upload timestamp

Authorizations:
ApiKey
path Parameters
id
required
string <uuid>

Responses

Audio

Convert Audio to a Different Format

Converts audio data to a standard audio format (FLAC, AAC, AAC HQ or MP3)

Authorizations:
ApiKey
Request Body schema: application/json
required
audioFileId
required
string <uuid>
outputFormat
required
string
Enum: "FLAC" "AAC_HQ" "AAC" "MP3"

Responses

Request samples

Content type
application/json
{
  • "audioFileId": "55484532-dd29-4948-86e7-b7466837bc29",
  • "outputFormat": "FLAC"
}

Generate Voiceover from Script

Generates an audio clip of an AI voice reading your script (text-to-speech). You can also give instructions like 'read this slowly: ...', etc.

💰 Cost: 10 credits

Authorizations:
ApiKey
Request Body schema: application/json
required
script
required
string non-empty
voice
required
string
Enum: "JILLIAN" "ANDREA"
outputFormat
required
string
Enum: "FLAC" "AAC_HQ" "AAC" "MP3"

Responses

Request samples

Content type
application/json
{
  • "script": "string",
  • "voice": "JILLIAN",
  • "outputFormat": "FLAC"
}

Get Audio Info

Retrieves metadata about an audio file including duration

Authorizations:
ApiKey
path Parameters
audioFileId
required
string <uuid>

Responses

Job

Get Job Information

Returns all information related to the given job including status, result, error messages, and credit costs

Authorizations:
ApiKey
path Parameters
jobId
required
string <uuid>

Responses