Zype Platform API

The core Zype content API: videos, playlists, categories, subtitles and subtitle playlists, transcriptions and translations, AI metadata suggestions, segments, program guides, video imports and sources, devices, GeoIP, admin users and legacy live encoders. 88 operations.

Operations 88

GET /videos List Videos #
POST /videos Create Video #
GET /videos/{id} View Video #
PUT /videos/{id} Update Video #
DELETE /videos/{id} Delete Video #
POST /videos/ai_metadata/suggestions Bulk Create AI Metadata #
POST /videos/{id}/ai_metadata/suggestions Create AI Metadata #
GET /videos/{id}/ai_metadata/suggestions/{session_id} Get AI Metadata #
POST /videos/{id}/ai_metadata/suggestions/{session_id}/apply Apply AI Metadata #
PUT /videos/{id}/add_zobjects Add Zobject(s) #
PUT /videos/{id}/remove_zobjects Remove Zobject #
GET /videos/{id}/download Download Video #
GET /videos/{id}/ad_timings List Ad Timings #
GET /videos/{id}/data_sources/{data_source_id}/ad_timings List Ad Timings for Single Data Source #
POST /videos/{id}/data_sources/{data_source_id}/ad_timings Create Ad Timing #
GET /videos/{id}/data_sources/{data_source_id}/ad_timings/{ad_timing_id} View Ad Timing #
PUT /videos/{id}/data_sources/{data_source_id}/ad_timings/{ad_timing_id} Update Ad Timing #
DELETE /videos/{id}/data_sources/{data_source_id}/ad_timings/{ad_timing_id} Destroy Ad Timing #
GET /videos/{id}/video_sources List Video Sources for a Video #
GET /playlists List Playlists #
POST /playlists Create Playlist #
GET /playlists/{id} View Playlist #
PUT /playlists/{id} Update Playlist #
DELETE /playlists/{id} Delete Playlist #
GET /playlists/{id}/videos List Playlist Videos #
GET /playlists/{id}/videos/relative List Relative Playlist Videos #
PUT /playlists/{id}/add_videos Add Videos #
PUT /playlists/{id}/remove_videos Remove Videos #
GET /playlists/relationships View Relationships #
GET /categories List Categories #
POST /categories Create Category #
GET /categories/{id} View Category #
PUT /categories/{id} Update category #
DELETE /categories/{id} Delete Category #
GET /app View App #
GET /videos/{video_id}/subtitles List Subtitles #
POST /videos/{video_id}/subtitles Create Subtitle #
GET /videos/{video_id}/subtitles/{id} View Subtitle #
PUT /videos/{video_id}/subtitles/{id} Update Subtitle #
POST /videos/{video_id}/subtitle_playlists Create Subtitle Playlist #
DELETE /videos/{video_id}/subtitle_playlists/{language} Delete Subtitle Playlist #
GET /program_guides List Program Guides #
POST /program_guides Create Program Guide #
GET /program_guides/{id} View Program Guide #
PUT /program_guides/{id} Update Program Guide #
DELETE /program_guides/{id} Delete Program Guide #
GET /program_guides/{id}/entries List Program Guide Entries #
GET /devices List Devices #
GET /devices/{id} View Device #
GET /device_categories List Devices Categories #
GET /device_categories/{id} View Device Category #
GET /geoip View GeoIP #
GET /videos/{video_id}/segments List Segments #
POST /videos/{video_id}/segments Create Segment #
GET /videos/{video_id}/segments/{id} View Segment #
PUT /videos/{video_id}/segments/{id} Update Segment #
DELETE /videos/{video_id}/segments/{id} Delete Segment #
POST /videos/self_hosted Create Self Hosted Video #
GET /videos/{video_id}/self_hosted List Self Hosted Video Data Sources #
POST /videos/{video_id}/self_hosted Create a Self Hosted Video Data Source #
GET /videos/{video_id}/self_hosted/{data_source_id} View Self Hosted Video Data Source #
PUT /videos/{video_id}/self_hosted/{data_source_id} Update Self Hosted Video Data Source #
DELETE /videos/{video_id}/self_hosted/{data_source_id} Delete Self Hosted Video Data Source #
GET /videos/{id}/transcriptions List Transcriptions #
GET /videos/{id}/transcriptions/{transcription_id} View Transcription #
POST /videos/{id}/transcriptions/transcribe Transcribe video #
POST /videos/{id}/transcriptions/translate Translate video #
GET /videos/{id}/transcriptions/translation_languages List translation languages #
GET /video_imports List Video Imports #
POST /video_imports Create Video Import #
PUT /video_imports/{id}/add_video Attach a Video to a Video Import #
GET /video_imports/{id} View Video Import #
GET /video_sources List Video Sources #
POST /video_sources Create Video Source #
GET /video_sources/{id} View Video Source #
PUT /video_sources/{id} Update Video Source #
DELETE /video_sources/{id} Delete a Video Source #
GET /site/users List Admin Users #
POST /site/users Create User #
GET /site/users/{id} View User #
PUT /site/users/{id} Update user #
PUT /site/users/{id}/remove Remove an admin user from your property. #
GET /live/encoders List Encoders #
GET /live/encoders/{encoder_name} View Encoder #
POST /live/encoders/{encoder_name}/start Start an Encoder #
POST /live/encoders/{encoder_name}/stop Stop an Encoder #
GET /live/encoders/{encoder_name}/target_rtmp List Targets RTMP entries #
GET /live/encoders/{encoder_name}/target_rtmp/{target_rtmp_name} View Target RTMP entry #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/platform"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

zype-platform.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Platform",
    "version": "1.0.0",
    "description": ""
  },
  "servers": [
    {
      "url": "https://api.zype.com/"
    }
  ],
  "security": [
    {
      "api_key": []
    }
  ],
  "components": {
    "securitySchemes": {
      "api_key": {
        "type": "apiKey",
        "name": "api_key",
        "in": "query"
      },
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "OAuth access token",
        "description": "OAuth access token of the consumer"
      }
    }
  },
  "paths": {
    "/videos": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "List Videos",
        "description": "Retrieve a list of videos from your library",
        "operationId": "listVideos",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Filter records by ID\nExample: `id=5992f328ce593000ef000008`",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Filters by keyword, title, source id, id, zobject title",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "Filter by active, inactive, or all.  If excluded, query will default to 'true'",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "all"
              ],
              "nullable": true
            }
          },
          {
            "name": "friendly_title",
            "in": "query",
            "description": "Filter records by friendly title",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_id",
            "in": "query",
            "description": "Filter records by source identifier",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "on_air",
            "in": "query",
            "description": "Filter records that are either on or off air",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "live_event",
            "in": "query",
            "description": "Filter records that are live events",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "video_source_type",
            "in": "query",
            "description": "Filter records by video source type. Multiple types can be provided by passing a comma-separated list. Examples: `zype`, `hulu`, `youtube`, `crunchyroll`",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "crunchyroll_id",
            "in": "query",
            "description": "Filter records by Crunchyroll ID",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vimeo_id",
            "in": "query",
            "description": "Filter records by Vimeo ID",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "youtube_id",
            "in": "query",
            "description": "Filter records by YouTube ID",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hulu_id",
            "in": "query",
            "description": "Filter records by Hulu ID",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mature_content",
            "in": "query",
            "description": "Filter records flagged as mature",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "parental_guidelines_rating",
            "in": "query",
            "description": "Parental guidance rating of the video",
            "style": "form",
            "explode": true,
            "schema": {
              "title": "ParentalGuidelinesRatingProperties",
              "enum": [
                "tv-y",
                "tv-y7",
                "tv-y7_fv",
                "tv-g",
                "tv-pg",
                "tv-14",
                "tv-ma",
                "g",
                "pg",
                "pg-13",
                "r",
                "nc-17",
                "10",
                "12",
                "13",
                "14",
                "16",
                "18",
                "l",
                "a",
                "aa",
                "b",
                "b15",
                "c",
                "d",
                "not_rated",
                "tv-15-17",
                "tv-ao",
                "atp"
              ],
              "type": "string",
              "nullable": true,
              "description": "Parental guidance rating of the video"
            }
          },
          {
            "name": "dpt",
            "in": "query",
            "description": "Filter records by Dynamic Player Technology conditions (Geo-location and device restrictions). If set to `true` this will return videos that are playable from your location/device.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter records by created date using times in ISO8601 format (Example: `2017-01-01T00:00:00-00:00`) or Unix timestamps (Example: `1483228800`) **Note**: Range filters can be applied by adding a suffix: \u2018.gt\u2019, \u2018.gte\u2019, \u2018.lt\u2019, \u2018lte\u2019 (Example: `created_at.gte`)",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "published_at",
            "in": "query",
            "description": "Filter records by published date using times in ISO8601 format Example: `2017-01-01T00:00:00-00:00` or Unix timestamps `1483228800`.\nNote: Range filters can be applied by adding a suffix: `.gt`, `.gte`, `.lt`, `.lte` Example: `published_at.gte=2017-01-01T00:00:00-00:00`",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "style": "deepObject",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "Filter records that match all category values listed.\nExample: `category[genre][]=comedy&category[language][]=english` Matches all playlists having ALL of the category name/value pairs listed."
          },
          {
            "name": "category_or",
            "in": "query",
            "required": false,
            "style": "deepObject",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "Filter records that match any category values listed.\nExample: `category_or[genre][]=comedy&category_or[language][]=english` Matches all playlists that have ANY of the category name/value pairs listed."
          },
          {
            "name": "category_and",
            "in": "query",
            "required": false,
            "style": "deepObject",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "description": "Filter records that match all category values listed.\nExample: `category[genre][]=comedy&category[language][]=english` Matches all playlists having ALL of the category name/value pairs listed."
          },
          {
            "name": "zobject_id",
            "in": "query",
            "description": "Filter records that match any of the Zobject IDs listed",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "zobject_id_or",
            "in": "query",
            "description": "Filter records that match any of the Zobject IDs listed",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "zobject_id_and",
            "in": "query",
            "description": "Filter records that match all of the Zobject IDs listed",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "zobject_details",
            "$ref": "#/paths/~1playlists~1%7Bid%7D~1videos/get/parameters/5"
          },
          {
            "name": "zobject_types",
            "$ref": "#/paths/~1playlists~1%7Bid%7D~1videos/get/parameters/6"
          },
          {
            "name": "zobject_fields",
            "$ref": "#/paths/~1playlists~1%7Bid%7D~1videos/get/parameters/7"
          },
          {
            "name": "include_related_videos",
            "in": "query",
            "description": "When it's set to true, it will include the related videos in the API response",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "expand_related_videos",
            "in": "query",
            "description": "When it's set to true along with the include_related_videos flag, the API response will also include the data of linked videos appart from the target one.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "response_fields",
            "in": "query",
            "description": "Filter returned fields. Example: response_fields=id,title,description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            },
            "description": "Filter by ascending or descending order"
          },
          {
            "name": "sort",
            "$ref": "#/paths/~1playlists~1%7Bid%7D~1videos/get/parameters/3"
          },
          {
            "name": "page",
            "$ref": "#/paths/~1playlists~1%7Bid%7D~1videos/get/parameters/1"
          },
          {
            "name": "per_page",
            "$ref": "#/paths/~1playlists~1%7Bid%7D~1videos/get/parameters/2"
          }
        ],
        "responses": {
          "200": {
            "description": "Response will contain an array of videos",
            "content": {
              "application/json": {
                "schema": {
                  "title": "VideosResponse",
                  "type": "object",
                  "properties": {
                    "response": {
                      "type": "array",
                      "items": {
                        "$ref": "#/paths/~1videos/post/responses/201/content/application~1json/schema/properties/response"
                      },
                      "description": ""
                    },
                    "pagination": {
                      "title": "Pagination",
                      "type": "object",
                      "properties": {
                        "current": {
                          "type": "number",
                          "format": "int32",
                          "description": "The current page of results"
                        },
                        "previous": {
                          "type": "number",
                          "format": "int32",
                          "description": "the previous page of results",
                          "nullable": true
                        },
                        "next": {
                          "type": "number",
                          "format": "int32",
                          "description": "the next page of results",
                          "nullable": true
                        },
                        "per_page": {
                          "type": "number",
                          "format": "int32",
                          "description": "the number of results returned per page"
                        },
                        "pages": {
                          "type": "number",
                          "format": "int32",
                          "description": "the total number of pages available, using per_page"
                        }
                      },
                      "example": {
                        "current": 1,
                        "previous": null,
                        "next": 2,
                        "per_page": 10,
                        "pages": 20
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Unprocessable Entity",
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "tags": [
          "Videos"
        ],
        "summary": "Create Video",
        "description": "Add a video to your library",
        "operationId": "createVideo",
        "parameters": [],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "title": "VideoRequest",
                "type": "object",
                "required": [
                  "video"
                ],
                "properties": {
                  "video": {
                    "title": "VideoProperties",
                    "required": [
                      "title"
                    ],
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string"
                      },
                      "active": {
                        "type": "boolean",
                        "description": "Indicate if the video is ready to be watched"
                      },
                      "country": {
                        "type": "string",
                        "description": "The country the video was created in"
                      },
                      "description": {
                        "type": "string",
                        "description": "Full length description of the video"
                      },
                      "short_description": {
                        "type": "string",
                        "description": "Brief description of the video"
                      },
                      "enable_at": {
                        "type": "string",
                        "description": "Timestamp of when your video will become active"
                      },
                      "disable_at": {
                        "type": "string",
                        "description": "Timestamp of when your video will become inactive"
                      },
                      "live_event": {
                        "type": "boolean",
                        "description": "Indicates if the video is a live event"
                      },
                      "on_air": {
                        "type": "boolean",
                        "description": "Indicates if the video is on air"
                      },
                      "on_air_at": {
                        "type": "string",
                        "description": "Timestamp of when your video will go on air"
                      },
                      "off_air_at": {
                        "type": "string",
                        "description": "Timestamp of when your video will go off air"
                      },
                      "episode": {
                        "type": "number",
                        "description": "Episode number"
                      },
                      "season": {
                        "type": "number",
                        "description": "Season number"
                      },
                      "series_id": {
                        "type": "string",
                        "description": "A string indicating the unique Series ID of the video series."
                      },
                      "source_id": {
                        "type": "string",
                        "description": "Optional identifier to relate this video to other platforms."
                      },
                      "featured": {
                        "type": "boolean"
                      },
                      "friendly_title": {
                        "type": "string",
                        "description": "The URL friendly title of the video"
                      },
                      "keywords": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Keywords for the video"
                      },
                      "language": {
                        "type": "string",
                        "description": "The language of the video's audio, as ISO 2 Letter Language Codes for example 'en' for english or 'es' for spanish"
                      },
                      "mature_content": {
                        "type": "boolean",
                        "description": "Indicates if the video requires the viewer to be 18+ to view"
                      },
                      "parental_guidelines_rating": {
                        "$ref": "#/paths/~1videos/get/parameters/13/schema"
                      },
                      "preview_ids": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Id's of the video to be the preview for your video. Please note that at this time a preview can only be a Zype type video and cannot be a paid video."
                      },
                      "purchase_required": {
                        "type": "boolean",
                        "description": "Whether or not the video must be purchased"
                      },
                      "purchase_price": {
                        "type": "number",
                        "description": "Amount to purchase the video"
                      },
                      "marketplace_ids": {
                        "title": "MarketplaceIdsProperties",
                        "type": "object",
                        "properties": {
                          "itunes": {
                            "type": "string",
                            "description": "Apple iTunes"
                          },
                          "googleplay": {
                            "type": "string",
                            "description": "Google Play Store"
                          },
                          "roku": {
                            "type": "string",
                            "description": "Roku Channel Store"
                          },
                          "amazon_fire_tv": {
                            "type": "string",
                            "description": "Amazon Fire Marketplace"
                          },
                          "apple_tv": {
                            "type": "string",
                            "description": "Apple iTunes for AppleTV-only not sharing assets with iOS."
                          },
                          "samsung": {
                            "type": "string",
                            "description": "Samsung Marketplace"
                          },
                          "samsung_tizen": {
                            "type": "string",
                            "description": "Samsung Tizen Marketplace"
                          }
                        },
                        "description": "Override default Marketplace IDs for this video. Marketplace IDs map Zype purchaseable products to 3rd party marketplaces such as Apple iTunes and Google Play Store."
                      },
                      "rental_duration": {
                        "type": "number",
                        "description": "Number of days a video can be rented"
                      },
                      "rental_price": {
                        "type": "number",
                        "description": "Price to rent the video"
                      },
                      "rental_required": {
                        "type": "boolean",
                        "description": "Whether or not the video must be rented"
                      },
                      "pass_required": {
                        "type": "boolean"
                      },
                      "published_at": {
                        "type": "string"
                      },
                      "subscription_required": {
                        "type": "boolean"
                      },
                      "registration_required": {
                        "type": "boolean"
                      },
                      "discovery_url": {
                        "type": "string",
                        "description": "URL where your video can be discovered"
                      },
                      "custom_thumbnail_url": {
                        "type": "string",
                        "description": "URL where your custom thumbnail is stored. Thumbnail will be processed asynchronously, and available in API response upon completion."
                      },
                      "subscription_ads_enabled": {
                        "type": "boolean",
                        "description": "Whether or not ads are shown to consumers with an active subscription"
                      },
                      "genre": {
                        "type": "string"
                      },
                      "redemption_code_required": {
                        "type": "boolean"
                      },
                      "playout_ad": {
                        "type": "boolean",
                        "description": "Setting a video as a playout ad allows it to be used as an ad slate for playout channels."
                      },
                      "playout_bumper": {
                        "type": "boolean",
                        "description": "Setting a video as a playout bumper allows it to be used as a bumper for playout scheduler channels."
                      },
                      "playout_slate": {
                        "type": "boolean",
                        "description": "Setting a video as a playout slate allows it to be used as a slate for playout scheduler channels."
                      },
                      "custom_attributes": {
                        "type": "object",
                        "description": "Custom meta Name and Value keywords to be used for key value pairing with external services like ad servers."
                      },
                      "transcriptions_enabled": {
                        "type": "boolean",
                        "description": "If enabled, an AI transcription with SRT and VTT subtitles will be created"
                      },
                      "translations_enabled": {
                        "type": "boolean",
                        "description": "If enabled, the video will be translated using the site's translation languages"
                      },
                      "zobject_id": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "IDs of Zobjects"
                        }
                      },
                      "categories_attributes": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "title": "Category Attributes",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "ID of the category playlist to update, **only required when updating values**.",
                              "example": "5b0c20ec3830f80034000020"
                            },
                            "category_id": {
                              "type": "string",
                              "description": "ID of the main Category you wish to add to the video",
                              "example": "5955293d805cd90024000000"
                            },
                            "value": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "description": "List of values you wish to add to the category. Values must exist in the main Category first. Send an empty array if you wish to remove all values from the category."
                            }
                          }
                        },
                        "description": ""
                      },
                      "content_rule_profile_id": {
                        "type": "string",
                        "description": "ID of the content rule profile assigned to the video."
                      },
                      "segments": {
                        "type": "array",
                        "items": {
                          "$ref": "#/paths/~1videos~1%7Bvideo_id%7D~1segments/post/requestBody/content/application~1json/schema/properties/segment"
                        },
                        "description": ""
                      },
                      "images_attributes": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "title": "Image Attribute",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Used to update an existing image. When it's not specified, a new image will be created."
                            },
                            "title": {
                              "type": "string"
                            },
                            "caption": {
                              "type": "string"
                            },
                            "layout": {
                              "type": "string"
                            },
                            "height": {
                              "type": "number"
                            },
                            "width": {
                              "type": "number"
                            },
                            "aspect_ratio": {
                              "type": "number"
                            },
                            "_destroy": {
                              "type": "boolean",
                              "description": "True if you want to remove the image"
                            }
                          }
                        },
                        "description": ""
                      },
                      "related_videos_attributes": {
                        "description": "List of videos that are linked(aka related) to the target video",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "title": "Related Video",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Used to update an existing related video relation. When it's not specified, a new related video will be created."
                            },
                            "linked_video_id": {
                              "type": "string",
                              "description": "The id of the video that is being related to the target one."
                            },
                            "source": {
                              "type": "string",
                              "description": "Represents the Source of the related video"
                            },
                            "source_id": {
                              "type": "string",
                              "description": "Represents the Source ID of the related video"
                            },
                            "group": {
                              "type": "string",
                              "description": "Represents the Group of the related video"
                            },
                            "_destroy": {
                              "type": "boolean",
                              "description": "True if you want to remove the related video"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "title": "VideoResponse",
                  "type": "object",
                  "properties": {
                    "response": {
                      "title": "Video",
                      "type": "object",
                      "properties": {
                        "_id": {
                          "type": "string"
                        },
                        "created_at": {
                          "type": "string"
                        },
                        "deleted_at": {
                          "type": "string"
                        },
                        "updated_at": {
                          "type": "string"
                        },
                        "on_air": {
                          "type": "boolean"
                        },
                        "purchase_price": {
                      

# --- truncated at 32 KB (251 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zype/refs/heads/main/openapi/zype-platform.json