Schema.org · Schema

Schema.org VideoObject

A video file.

Schema.orgStructured DataLinked DataJSON-LDVocabularySEOWeb StandardsRDFOntology

Properties

Name Type Description
@type string The Schema.org type.
@context string
name string The name of the video.
description string A description of the video.
url string URL of the video.
contentUrl string Actual bytes of the media object.
embedUrl string A URL pointing to a player for a specific video.
thumbnailUrl object A thumbnail image relevant to the video.
duration string The duration of the video in ISO 8601 format.
uploadDate string Date when this video was uploaded.
caption string The caption for this video.
transcript string If this MediaObject is an AudioObject or VideoObject, the transcript of that object.
videoFrameSize string The frame size of the video.
videoQuality string The quality of the video.
width integer The width of the video in pixels.
height integer The height of the video in pixels.
encodingFormat string Media type expressed using a MIME format.
contentSize string File size in bytes.
bitrate string The bitrate of the media object.
isFamilyFriendly boolean Whether the video is family friendly.
requiresSubscription boolean Indicates if use of the media requires a subscription.
regionsAllowed string The regions where the video is allowed.
author object The author of this video.
publisher object The publisher of this video.
datePublished string Date of first publication.
interactionStatistic object The number of interactions for the video.
sameAs object URL of a reference Web page that unambiguously indicates the item's identity.
View JSON Schema on GitHub

JSON Schema

schema-org-video-object-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schema.org/schemas/video-object.json",
  "title": "Schema.org VideoObject",
  "description": "A video file.",
  "type": "object",
  "required": ["@type", "name"],
  "properties": {
    "@type": {
      "type": "string",
      "const": "VideoObject",
      "description": "The Schema.org type."
    },
    "@context": {
      "type": "string",
      "default": "https://schema.org"
    },
    "name": {
      "type": "string",
      "description": "The name of the video."
    },
    "description": {
      "type": "string",
      "description": "A description of the video."
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "URL of the video."
    },
    "contentUrl": {
      "type": "string",
      "format": "uri",
      "description": "Actual bytes of the media object."
    },
    "embedUrl": {
      "type": "string",
      "format": "uri",
      "description": "A URL pointing to a player for a specific video."
    },
    "thumbnailUrl": {
      "oneOf": [
        { "type": "string", "format": "uri" },
        { "type": "array", "items": { "type": "string", "format": "uri" } }
      ],
      "description": "A thumbnail image relevant to the video."
    },
    "duration": {
      "type": "string",
      "description": "The duration of the video in ISO 8601 format."
    },
    "uploadDate": {
      "type": "string",
      "format": "date",
      "description": "Date when this video was uploaded."
    },
    "caption": {
      "type": "string",
      "description": "The caption for this video."
    },
    "transcript": {
      "type": "string",
      "description": "If this MediaObject is an AudioObject or VideoObject, the transcript of that object."
    },
    "videoFrameSize": {
      "type": "string",
      "description": "The frame size of the video."
    },
    "videoQuality": {
      "type": "string",
      "description": "The quality of the video."
    },
    "width": {
      "type": "integer",
      "description": "The width of the video in pixels."
    },
    "height": {
      "type": "integer",
      "description": "The height of the video in pixels."
    },
    "encodingFormat": {
      "type": "string",
      "description": "Media type expressed using a MIME format."
    },
    "contentSize": {
      "type": "string",
      "description": "File size in bytes."
    },
    "bitrate": {
      "type": "string",
      "description": "The bitrate of the media object."
    },
    "isFamilyFriendly": {
      "type": "boolean",
      "description": "Whether the video is family friendly."
    },
    "requiresSubscription": {
      "type": "boolean",
      "description": "Indicates if use of the media requires a subscription."
    },
    "regionsAllowed": {
      "type": "string",
      "description": "The regions where the video is allowed."
    },
    "author": {
      "oneOf": [
        { "$ref": "schema-org-person-schema.json" },
        { "$ref": "schema-org-organization-schema.json" }
      ],
      "description": "The author of this video."
    },
    "publisher": {
      "oneOf": [
        { "$ref": "schema-org-person-schema.json" },
        { "$ref": "schema-org-organization-schema.json" }
      ],
      "description": "The publisher of this video."
    },
    "datePublished": {
      "type": "string",
      "format": "date",
      "description": "Date of first publication."
    },
    "interactionStatistic": {
      "type": "object",
      "description": "The number of interactions for the video.",
      "properties": {
        "@type": { "type": "string", "const": "InteractionCounter" },
        "interactionType": { "type": "string" },
        "userInteractionCount": { "type": "integer" }
      }
    },
    "sameAs": {
      "oneOf": [
        { "type": "string", "format": "uri" },
        { "type": "array", "items": { "type": "string", "format": "uri" } }
      ],
      "description": "URL of a reference Web page that unambiguously indicates the item's identity."
    }
  }
}

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/schema-org-video-object"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.