Twitch · Schema

Twitch Video

Represents a video on Twitch, including VODs (archives of past streams), highlights, and uploads.

EntertainmentGamingLive VideoStreamingVideo

Properties

Name Type Description
id string Unique identifier for the video
stream_id stringnull ID of the stream the video was recorded from (null for uploads)
user_id string ID of the user who owns the video
user_login string Login name of the user who owns the video
user_name string Display name of the user who owns the video
title string Title of the video
description string Description of the video
created_at string UTC timestamp when the video was created
published_at string UTC timestamp when the video was published
url string URL to view the video on Twitch
thumbnail_url string URL template for the video thumbnail
viewable string Visibility of the video
view_count integer Number of times the video has been viewed
language string Language of the video
type string Type of video
duration string Duration of the video in ISO 8601 format (e.g., 3h21m10s)
muted_segments arraynull Segments of the video that are muted
View JSON Schema on GitHub

JSON Schema

twitch-video-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://dev.twitch.tv/schemas/twitch/video.json",
  "title": "Twitch Video",
  "description": "Represents a video on Twitch, including VODs (archives of past streams), highlights, and uploads.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the video"
    },
    "stream_id": {
      "type": ["string", "null"],
      "description": "ID of the stream the video was recorded from (null for uploads)"
    },
    "user_id": {
      "type": "string",
      "description": "ID of the user who owns the video"
    },
    "user_login": {
      "type": "string",
      "description": "Login name of the user who owns the video"
    },
    "user_name": {
      "type": "string",
      "description": "Display name of the user who owns the video"
    },
    "title": {
      "type": "string",
      "description": "Title of the video"
    },
    "description": {
      "type": "string",
      "description": "Description of the video"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "UTC timestamp when the video was created"
    },
    "published_at": {
      "type": "string",
      "format": "date-time",
      "description": "UTC timestamp when the video was published"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "URL to view the video on Twitch"
    },
    "thumbnail_url": {
      "type": "string",
      "format": "uri",
      "description": "URL template for the video thumbnail"
    },
    "viewable": {
      "type": "string",
      "enum": ["public", "private"],
      "description": "Visibility of the video"
    },
    "view_count": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of times the video has been viewed"
    },
    "language": {
      "type": "string",
      "description": "Language of the video"
    },
    "type": {
      "type": "string",
      "enum": ["upload", "archive", "highlight"],
      "description": "Type of video"
    },
    "duration": {
      "type": "string",
      "description": "Duration of the video in ISO 8601 format (e.g., 3h21m10s)"
    },
    "muted_segments": {
      "type": ["array", "null"],
      "items": {
        "type": "object",
        "properties": {
          "duration": {
            "type": "integer",
            "description": "Duration of the muted segment in seconds"
          },
          "offset": {
            "type": "integer",
            "description": "Offset in the video where the muted segment begins in seconds"
          }
        }
      },
      "description": "Segments of the video that are muted"
    }
  },
  "required": ["id", "user_id", "user_login", "user_name", "title", "created_at", "published_at", "url", "thumbnail_url", "viewable", "view_count", "language", "type", "duration"]
}

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/twitch-video"
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.