Every API here is available over the APIs.io API and to AI agents over MCP.
{
"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