API.Video · Schema

Video

Artificial IntelligenceAnalyticsCDNEncodingLive StreamingTranscriptionVideoVideo-on-Demand

Properties

Name Type Description
videoId string The unique identifier of the video object.
createdAt string When a video was created, presented in ATOM UTC format.
title string The title of the video content.
description string A description for the video content.
publishedAt string The date and time the API created the video. Date and time are provided using ATOM UTC format.
updatedAt string The date and time the video was updated. Date and time are provided using ATOM UTC format.
discardedAt stringnull The date and time the video was discarded. The API populates this field only if you have the Video Restore feature enabled and discard a video. Date and time are provided using ATOM UTC format.
deletesAt stringnull The date and time the video will be permanently deleted. The API populates this field only if you have the Video Restore feature enabled and discard a video. Discarded videos are pemanently deleted af
discarded boolean Returns `true` for videos you discarded when you have the Video Restore feature enabled. Returns `false` for every other video.
language string Returns the language of a video in [IETF language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. You can set the language during video creation via the API, otherwise it is detected aut
languageOrigin stringnull Returns the origin of the last update on the video's `language` attribute. - `api` means that the last update was requested from the API. - `auto` means that the last update was done automatically by
tags array One array of tags (each tag is a string) in order to categorize a video. Tags may include spaces.
metadata array Metadata you can use to categorise and filter videos. Metadata is a list of dictionaries, where each dictionary represents a key value pair for categorising a video.
source object
assets object
playerId string The id of the player that will be applied on the video.
public boolean Defines if the content is publicly reachable or if a unique token is needed for each play session. Default is true. Tutorials on [private videos](https://api.video/blog/endpoints/private-videos/).
panoramic boolean Defines if video is panoramic.
mp4Support boolean This lets you know whether mp4 is supported. If enabled, an mp4 URL will be provided in the response for the video.
View JSON Schema on GitHub

JSON Schema

api-video-video-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/api-video/json-schema/api-video-video-schema.json",
  "title": "Video",
  "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",
  "type": "object",
  "properties": {
    "videoId": {
      "type": "string",
      "description": "The unique identifier of the video object."
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "When a video was created, presented in ATOM UTC format."
    },
    "title": {
      "type": "string",
      "description": "The title of the video content.\n"
    },
    "description": {
      "type": "string",
      "description": "A description for the video content.\n"
    },
    "publishedAt": {
      "type": "string",
      "description": "The date and time the API created the video. Date and time are provided using ATOM UTC format.",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "description": "The date and time the video was updated. Date and time are provided using ATOM UTC format.",
      "format": "date-time"
    },
    "discardedAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "The date and time the video was discarded. The API populates this field only if you have the Video Restore feature enabled and discard a video. Date and time are provided using ATOM UTC format.",
      "format": "date-time"
    },
    "deletesAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "The date and time the video will be permanently deleted. The API populates this field only if you have the Video Restore feature enabled and discard a video. Discarded videos are pemanently deleted after 90 days. Date and time are provided using ATOM UTC format.",
      "format": "date-time"
    },
    "discarded": {
      "type": "boolean",
      "description": "Returns `true` for videos you discarded when you have the Video Restore feature enabled. Returns `false` for every other video."
    },
    "language": {
      "type": "string",
      "description": "Returns the language of a video in [IETF language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format. You can set the language during video creation via the API, otherwise it is detected automatically."
    },
    "languageOrigin": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "api",
        "auto"
      ],
      "description": "Returns the origin of the last update on the video's `language` attribute.\n\n- `api` means that the last update was requested from the API.\n- `auto` means that the last update was done automatically by the API."
    },
    "tags": {
      "type": "array",
      "description": "One array of tags (each tag is a string) in order to categorize a video. Tags may include spaces. \n",
      "items": {
        "type": "string"
      }
    },
    "metadata": {
      "type": "array",
      "description": "Metadata you can use to categorise and filter videos. Metadata is a list of dictionaries, where each dictionary represents a key value pair for categorising a video.\n",
      "items": {
        "$ref": "#/$defs/metadata"
      }
    },
    "source": {
      "$ref": "#/$defs/video-source"
    },
    "assets": {
      "$ref": "#/$defs/video-assets"
    },
    "playerId": {
      "type": "string",
      "description": "The id of the player that will be applied on the video.\n"
    },
    "public": {
      "type": "boolean",
      "description": "Defines if the content is publicly reachable or if a unique token is needed for each play session. Default is true. Tutorials on [private videos](https://api.video/blog/endpoints/private-videos/).\n"
    },
    "panoramic": {
      "type": "boolean",
      "description": "Defines if video is panoramic.\n"
    },
    "mp4Support": {
      "type": "boolean",
      "description": "This lets you know whether mp4 is supported. If enabled, an mp4 URL will be provided in the response for the video.\n"
    }
  },
  "required": [
    "videoId"
  ],
  "$defs": {
    "metadata": {
      "title": "Metadata",
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "The constant that defines the data set."
        },
        "value": {
          "type": "string",
          "description": "A variable which belongs to the data set."
        }
      },
      "x-client-all-args-constructor": true
    },
    "video-assets": {
      "title": "VideoAssets",
      "type": "object",
      "properties": {
        "hls": {
          "type": "string",
          "description": "This is the manifest URL. For HTTP Live Streaming (HLS), when a HLS video stream is initiated, the first file to download is the manifest. This file has the extension M3U8, and provides the video player with information about the various bitrates available for streaming.",
          "format": "uri"
        },
        "iframe": {
          "type": "string",
          "description": "Code to use video from a third party website"
        },
        "player": {
          "type": "string",
          "description": "Raw url of the player.",
          "format": "uri"
        },
        "thumbnail": {
          "type": "string",
          "description": "Poster of the video.",
          "format": "uri"
        },
        "mp4": {
          "type": "string",
          "description": "Available only if mp4Support is enabled. Raw mp4 url.",
          "format": "uri"
        }
      },
      "description": "Collection of details about the video object that you can use to work with the video object."
    },
    "video-source": {
      "title": "VideoSource",
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "The URL where the video is stored."
        },
        "type": {
          "type": "string"
        },
        "liveStream": {
          "$ref": "#/$defs/video-source-live-stream"
        }
      },
      "description": "Source information about the video."
    },
    "video-source-live-stream": {
      "type": "object",
      "properties": {
        "liveStreamId": {
          "type": "string",
          "description": "The unique identifier for the live stream."
        },
        "links": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/video-source-live-stream-link"
          }
        }
      },
      "description": "This appears if the video is from a Live Record."
    },
    "video-source-live-stream-link": {
      "type": "object",
      "properties": {
        "rel": {
          "type": "string"
        },
        "uri": {
          "type": "string"
        }
      }
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/api-video-video"
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.