Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
version: v1
title: videoapi Video API
description: The video APIs help you convert, encode, and transcode videos.
servers:
- url: http://localhost
tags:
- name: Video
paths:
/video/convert/get-info:
post:
tags:
- Video
summary: Get detailed information about a video or audio file
description: 'Retrieve detailed information about a video or audio file, including format, dimensions, file size, bit rate, duration and start time. Compatible with many formats, including: AVI, ASF, FLV, GIF, MP4, MPEG/MPG, Matroska/WEBM, MOV, AIFF, ASF, CAF, MP3, MP2, MP1, Ogg, OMG/OMA, and WAV. Uses 1 API call per 10 MB of file size.'
operationId: Video_GetInfo
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MediaInformation'
text/json:
schema:
$ref: '#/components/schemas/MediaInformation'
application/xml:
schema:
$ref: '#/components/schemas/MediaInformation'
text/xml:
schema:
$ref: '#/components/schemas/MediaInformation'
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/convert/to/webm:
post:
tags:
- Video
summary: Convert Video to WEBM format
description: Automatically detect video file format and convert it to WEBM format. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, OGV, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB.
operationId: Video_ConvertToWebm
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: maxWidth
in: header
description: Optional; Maximum width of the output video, up to the original video width. Defaults to original video width.
required: false
schema:
type: integer
- name: maxHeight
in: header
description: Optional; Maximum height of the output video, up to the original video width. Defaults to original video height.
required: false
schema:
type: integer
- name: preserveAspectRatio
in: header
description: Optional; If false, the original video's aspect ratio will not be preserved, allowing customization of the aspect ratio using maxWidth and maxHeight, potentially skewing the video. Default is true.
required: false
schema:
type: boolean
- name: frameRate
in: header
description: Optional; Specify the frame rate of the output video. Defaults to original video frame rate.
required: false
schema:
type: integer
- name: quality
in: header
description: Optional; Specify the quality of the output video, where 100 is lossless and 1 is the lowest possible quality with highest compression. Default is 50.
required: false
schema:
type: integer
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/convert/to/mov:
post:
tags:
- Video
summary: Convert Video to MOV format
description: Automatically detect video file format and convert it to MOV format. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, OGV, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB.
operationId: Video_ConvertToMov
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: maxWidth
in: header
description: Optional; Maximum width of the output video, up to the original video width. Defaults to original video width.
required: false
schema:
type: integer
- name: maxHeight
in: header
description: Optional; Maximum height of the output video, up to the original video width. Defaults to original video height.
required: false
schema:
type: integer
- name: preserveAspectRatio
in: header
description: Optional; If false, the original video's aspect ratio will not be preserved, allowing customization of the aspect ratio using maxWidth and maxHeight, potentially skewing the video. Default is true.
required: false
schema:
type: boolean
- name: frameRate
in: header
description: Optional; Specify the frame rate of the output video. Defaults to original video frame rate.
required: false
schema:
type: integer
- name: quality
in: header
description: Optional; Specify the quality of the output video, where 100 is lossless and 1 is the lowest possible quality with highest compression. Default is 50.
required: false
schema:
type: integer
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/convert/to/mp4:
post:
tags:
- Video
summary: Convert Video to MP4 format
description: Automatically detect video file format and convert it to MP4 format. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, OGV, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB.
operationId: Video_ConvertToMp4
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: maxWidth
in: header
description: Optional; Maximum width of the output video, up to the original video width. Defaults to original video width.
required: false
schema:
type: integer
- name: maxHeight
in: header
description: Optional; Maximum height of the output video, up to the original video width. Defaults to original video height.
required: false
schema:
type: integer
- name: preserveAspectRatio
in: header
description: Optional; If false, the original video's aspect ratio will not be preserved, allowing customization of the aspect ratio using maxWidth and maxHeight, potentially skewing the video. Default is true.
required: false
schema:
type: boolean
- name: frameRate
in: header
description: Optional; Specify the frame rate of the output video. Defaults to original video frame rate.
required: false
schema:
type: integer
- name: quality
in: header
description: Optional; Specify the quality of the output video, where 100 is lossless and 1 is the lowest possible quality with highest compression. Default is 50.
required: false
schema:
type: integer
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/convert/to/gif:
post:
tags:
- Video
summary: Convert Video to Animated GIF format
description: Automatically detect video file format and convert it to animated GIF format. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, OGV, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB. Default height is 250 pixels, while preserving the video's aspect ratio.
operationId: Video_ConvertToGif
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: maxWidth
in: header
description: Optional; Maximum width of the output video, up to the original video width. Defaults to 250 pixels, maximum is 500 pixels.
required: false
schema:
type: integer
- name: maxHeight
in: header
description: Optional; Maximum height of the output video, up to the original video width. Defaults to 250 pixels, maximum is 500 pixels.
required: false
schema:
type: integer
- name: preserveAspectRatio
in: header
description: Optional; If false, the original video's aspect ratio will not be preserved, allowing customization of the aspect ratio using maxWidth and maxHeight, potentially skewing the video. Default is true.
required: false
schema:
type: boolean
- name: frameRate
in: header
description: Optional; Specify the frame rate of the output video. Defaults to 24 frames per second.
required: false
schema:
type: integer
- name: startTime
in: header
description: Optional; Specify the desired starting time of the GIF video in TimeSpan format.
required: false
schema:
type: string
format: date-time
- name: timeSpan
in: header
description: Optional; Specify the desired length of the GIF video in TimeSpan format. Limit is 30 seconds. Default is 10 seconds.
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/resize/preserveAspectRatio:
post:
tags:
- Video
summary: Resizes a Video Preserving the Original Aspect Ratio
description: Resizes a video, while maintaining the original aspect ratio and encoding. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB.
operationId: Video_ResizeVideo
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: maxWidth
in: header
description: Optional; Maximum width of the output video, up to the original video width. Defaults to original video width.
required: false
schema:
type: integer
- name: maxHeight
in: header
description: Optional; Maximum height of the output video, up to the original video width. Defaults to original video height.
required: false
schema:
type: integer
- name: frameRate
in: header
description: Optional; Specify the frame rate of the output video. Defaults to original video frame rate.
required: false
schema:
type: integer
- name: quality
in: header
description: Optional; Specify the quality of the output video, where 100 is lossless and 1 is the lowest possible quality with highest compression. Default is 50.
required: false
schema:
type: integer
- name: extension
in: header
description: Optional; Specify the file extension of the input video. This is recommended when inputting a file directly, without a file name. If no file name is available and no extension is provided, the extension will be inferred from the file data, which may cause a different extension to be used in the output.
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/resize/target:
post:
tags:
- Video
summary: Resizes a Video without Preserving Aspect Ratio
description: Resizes a video without maintaining original aspect ratio, allowing fully customizable dimensions. May cause image skewing. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB.
operationId: Video_ResizeVideoSimple
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: maxWidth
in: header
description: Optional; Maximum width of the output video, up to the original video width. Defaults to original video width.
required: false
schema:
type: integer
- name: maxHeight
in: header
description: Optional; Maximum height of the output video, up to the original video width. Defaults to original video height.
required: false
schema:
type: integer
- name: frameRate
in: header
description: Optional; Specify the frame rate of the output video. Defaults to original video frame rate.
required: false
schema:
type: integer
- name: quality
in: header
description: Optional; Specify the quality of the output video, where 100 is lossless and 1 is the lowest possible quality with highest compression. Default is 50.
required: false
schema:
type: integer
- name: extension
in: header
description: Optional; Specify the file extension of the input video. This is recommended when inputting a file directly, without a file name. If no file name is available and no extension is provided, the extension will be inferred from the file data, which may cause a different extension to be used in the output.
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/cut:
post:
tags:
- Video
summary: Cut a Video to a Shorter Length
description: Cuts a video to the specified start and end times. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB.
operationId: Video_CutVideo
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: startTime
in: header
description: Optional; Specify the desired starting time of the cut video in TimeSpan format.
required: false
schema:
type: string
format: date-time
- name: timeSpan
in: header
description: Optional; Specify the desired length of the cut video in TimeSpan format. Leave blank to include the rest of the video. Maximum time is 4 hours.
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
format: byte
type: string
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/split:
post:
tags:
- Video
summary: Split a Video into Two Shorter Videos
description: Cuts a video into two videos based on the specified start time. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time. Maximum output file size is 50GB.
operationId: Video_SplitVideo
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: splitTime
in: header
description: Specify the desired time at which to split the video in TimeSpan format.
required: true
schema:
type: string
format: date-time
- name: timeSpan
in: header
description: Optional; Specify the desired length of the second video in TimeSpan format. Leave blank to include the rest of the video. Maximum time is 4 hours.
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/SplitVideoResult'
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/convert/to/still-frames:
post:
tags:
- Video
summary: Convert Video to PNG Still Frames
description: Automatically detect video file format and convert it to an array of still frame PNG images. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, OGV, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per additional minute of processing time over 5 minutes, up to a maximum of 25 minutes total processing time.
operationId: Video_ConvertToStillFrames
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being used for conversion. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: maxWidth
in: header
description: Optional; Maximum width of the output video, up to the original video width. Defaults to original video width.
required: false
schema:
type: integer
- name: maxHeight
in: header
description: Optional; Maximum height of the output video, up to the original video width. Defaults to original video height.
required: false
schema:
type: integer
- name: framesPerSecond
in: header
description: Optional; How many video frames per second to be returned as PNG images. Minimum value is 0.1, maximum is 60. Default is 1 frame per second. Maximum of 2000 total frames.
required: false
schema:
type: number
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StillFramesResult'
text/json:
schema:
$ref: '#/components/schemas/StillFramesResult'
application/xml:
schema:
$ref: '#/components/schemas/StillFramesResult'
text/xml:
schema:
$ref: '#/components/schemas/StillFramesResult'
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
/video/scan/nsfw:
post:
tags:
- Video
summary: Scan a Video for NSFW content
description: Automatically detect video file format and scan it for Not Safe For Work (NSFW)/Porn/Racy content. Supports many input video formats, including AVI, ASF, FLV, MP4, MPEG/MPG, Matroska/WEBM, 3G2, OGV, MKV, M4V and MOV. Uses 1 API call per 10 MB of file size. Also uses 1 API call per frame scanned.
operationId: Video_ScanForNsfw
parameters:
- name: fileUrl
in: header
description: Optional; URL of a video file being scanned. Use this option for files larger than 2GB.
required: false
schema:
type: string
- name: framesPerSecond
in: header
description: Optional; How many video frames per second to be scanned. Minimum value is 0.05 (1 frame per 20 seconds), maximum is 1. Default is 0.33 frame per second (1 frame scanned every 3 seconds). Maximum of 1000 total frames can be scanned, potentially adjusting the framerate for longer videos.
required: false
schema:
type: number
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NsfwResult'
text/json:
schema:
$ref: '#/components/schemas/NsfwResult'
application/xml:
schema:
$ref: '#/components/schemas/NsfwResult'
text/xml:
schema:
$ref: '#/components/schemas/NsfwResult'
security:
- Apikey: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
inputFile:
type: string
description: Input file to perform the operation on.
format: binary
components:
schemas:
MediaInformation:
description: Result of retrieving information about a video or audio file
type: object
properties:
Successful:
description: True if the operation was successful, false otherwise
type: boolean
FileFormat:
description: The file's short format name
type: string
FileFormatFull:
description: The file's full format name
type: string
ValidFileFormats:
description: A list of the file's valid formats
type: array
items:
type: string
Width:
format: int32
description: The video's width, if file is a video
type: integer
Height:
format: int32
description: The video's height, if file is a video
type: integer
Size:
format: int32
description: The file's size in bytes
type: integer
BitRate:
format: int32
description: The file's bit rate
type: integer
Duration:
format: double
description: The file's duration in seconds
type: number
StartTime:
format: double
description: The file's media start time
type: number
StillFrame:
description: A single still frame from a video
type: object
properties:
FrameNumber:
format: int32
description: The number of the current frame
type: integer
TimeStamp:
description: The playback time of the current frame
type: string
Content:
format: byte
description: The still frame in PNG format as a byte array
type: string
SplitVideoResult:
description: The result of splitting a video
type: object
properties:
Successful:
description: True if the operation was successful, false otherwise
type: boolean
Videos:
description: Individual video files resulting from the split operation
type: array
items:
$ref: '#/components/schemas/VideoFile'
NsfwScannedFrame:
description: An individual frame scanned for NSFW content
type: object
properties:
FrameNumber:
format: int32
description: The number of the current frame
type: integer
TimeStamp:
description: The playback time of the current frame
type: string
Content:
format: byte
description: The still frame in PNG format as a byte array
type: string
ClassificationResult:
description: The NSFW classification of the still frame
type: string
Score:
format: double
description: The NSFW score of the current frame
type: number
StillFramesResult:
description: The result of converting a video into still frames
type: object
properties:
Successful:
description: True if the operation was successful, false otherwise
type: boolean
TotalFrames:
format: int32
description: The total number of frames converted
type: integer
StillFrames:
description: Individual still frames from the conversion operation
type: array
items:
$ref: '#/components/schemas/StillFrame'
NsfwResult:
description: The result of scanning a video file for NSFW content
type: object
properties:
Successful:
description: True if the operation was successful, false otherwise
type: boolean
HighestClassificationResult:
description: The highest NSFW classification of the video
type: string
HighestScore:
format: double
description: The highest NSFW score out of all frames scanned
type: number
TotalRacyFrames:
format: int32
description: The total number of potentially "racy" frames.
type: integer
TotalNsfwFrames:
format: int32
description: The total number of frames with high probability of NSFW.
type: integer
TotalFrames:
format: int32
description: The total number of frames scanned
type: integer
NsfwScannedFrames:
description: The NSFW scanning results for each frame
type: array
items:
$ref: '#/components/schemas/NsfwScannedFrame'
VideoFile:
description: A video file
type: object
properties:
VideoNumber:
format: int32
description: Sequence number of the video
type: integer
Content:
format: byte
description: The video file as a byte array
type: string
securitySchemes:
Apikey:
type: apiKey
description: API Key Authentication
name: Apikey
in: header
x-provenance:
method: harvested
publisher: Cloudmersive
source: https://api.cloudmersive.com/video/docs/v1/swagger
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)