API.Video · Schema
VideoStatus
Artificial IntelligenceAnalyticsCDNEncodingLive StreamingTranscriptionVideoVideo-on-Demand
Properties
| Name | Type | Description |
|---|---|---|
| ingest | object | |
| encoding | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/api-video/json-schema/api-video-video-status-schema.json",
"title": "VideoStatus",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/api-video-videos-api-openapi.yml#/components/schemas/video-status",
"type": "object",
"properties": {
"ingest": {
"$ref": "#/$defs/video-status-ingest"
},
"encoding": {
"$ref": "#/$defs/video-status-encoding"
}
},
"$defs": {
"bytes-range": {
"title": "BytesRange",
"type": "object",
"properties": {
"from": {
"type": "integer",
"description": "The starting point for the range of bytes for a chunk of a video."
},
"to": {
"type": "integer",
"description": "The ending point for the range of bytes for a chunk of a video."
},
"total": {
"type": "integer",
"description": "The total number of expected bytes."
}
}
},
"quality": {
"title": "Quality",
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of video (hls or mp4).",
"enum": [
"hls",
"mp4"
]
},
"quality": {
"type": "string",
"description": "The quality of the video you have, in pixels. Choices include 360p, 480p, 720p, 1080p, and 2160p.",
"enum": [
"240p",
"360p",
"480p",
"720p",
"1080p",
"2160p"
]
},
"status": {
"type": "string",
"description": "The status of your video. Statuses include waiting - the video is waiting to be encoded. encoding - the video is in the process of being encoded. encoded - the video was successfully encoded. failed - the video failed to be encoded.",
"enum": [
"waiting",
"encoding",
"encoded",
"failed"
]
}
}
},
"video-status-encoding": {
"title": "VideoStatusEncoding",
"type": "object",
"properties": {
"playable": {
"type": "boolean",
"description": "Whether the video is playable or not."
},
"qualities": {
"type": "array",
"description": "Available qualities the video can be viewed in.",
"items": {
"$ref": "#/$defs/quality"
}
},
"metadata": {
"$ref": "#/$defs/video-status-encoding-metadata"
}
}
},
"video-status-encoding-metadata": {
"title": "VideoStatusEncodingMetadata",
"type": "object",
"properties": {
"width": {
"type": [
"integer",
"null"
],
"description": "The width of the video in pixels."
},
"height": {
"type": [
"integer",
"null"
],
"description": "The height of the video in pixels."
},
"bitrate": {
"type": [
"number",
"null"
],
"description": "The number of bits processed per second."
},
"duration": {
"type": [
"integer",
"null"
],
"description": "The length of the video."
},
"framerate": {
"type": [
"integer",
"null"
],
"description": "The frequency with which consecutive images or frames appear on a display. Shown in this API as frames per second (fps)."
},
"samplerate": {
"type": [
"integer",
"null"
],
"description": "How many samples per second a digital audio system uses to record an audio signal. The higher the rate, the higher the frequencies that can be recorded. They are presented in this API using hertz."
},
"videoCodec": {
"type": [
"string",
"null"
],
"description": "The method used to compress and decompress digital video. API Video supports all codecs in the libavcodec library. "
},
"audioCodec": {
"type": [
"string",
"null"
],
"description": "The method used to compress and decompress digital audio for your video."
},
"aspectRatio": {
"type": [
"string",
"null"
]
}
}
},
"video-status-ingest": {
"title": "VideoStatusIngest",
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "There are four possible statuses depending on how you provide a video file:\n- `uploading` - the API is gathering the video source file from an upload.\n- `uploaded` - the video file is fully uploaded.\n- `ingesting` - the API is gathering the video source file from either a URL, or from cloning.\n- `ingested` - the video file is fully stored.\n",
"enum": [
"uploading",
"uploaded",
"ingesting",
"ingested"
]
},
"filesize": {
"type": [
"integer",
"null"
],
"description": "The size of your file in bytes."
},
"receivedBytes": {
"type": "array",
"description": "The total number of bytes received, listed for each chunk of the upload.",
"items": {
"$ref": "#/$defs/bytes-range"
}
},
"receivedParts": {
"type": "object",
"properties": {
"parts": {
"type": "array",
"description": "The parts that have been uploaded, ordered. For example, if part 2 was sent before part 1, and both have been uploaded, the output will be [1, 2].",
"items": {
"type": "integer"
}
},
"total": {
"type": [
"integer",
"null"
],
"description": "Contains the number of expected parts. The total will be listed as \"null\" until the total number of parts is known."
}
}
}
},
"description": "Details about the capturing, transferring, and storing of your video for use immediately or in the future."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/api-video-video-status"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.