{
  "openapi": "3.0.1",
  "info": {
    "title": "Streaming Platform",
    "description": "EdgeЦентр provides an API that allows you to interact with the Streaming Platform.  \n\nStreaming Platform allows for managing videos, live streams, features, and getting statistics.\n# Overview\nOur API has resource-oriented, predictable URLs and uses the HTTP response codes to indicate API errors. We use standard HTTP features, such as HTTP authentication and HTTP terminology, that HTTP clients can understand. JSON is returned in all API responses, including errors.\n### Maximum body request\nMaximum API body request size is 1MB.\n### Rate limits\nThere is a general limit of 4 requests per second. If you go over the rate limit, you will receive a response status of 429.\n",
    "version": "1.6.5",
    "contact": {}
  },
  "servers": [
    {
      "url": "https://api.edgecenter.ru/streaming"
    }
  ],
  "security": [
    {
      "APIKey": []
    }
  ],
  "tags": [
    {
      "name": "Videos",
      "description": "Manages the videos in your account.\n"
    },
    {
      "name": "Subtitles",
      "description": "Manages the subtitles in your videos.\n"
    },
    {
      "name": "Playlists",
      "description": "Playlists are a feature that allows you to group multiple videos into a playlist and play them alternately.  \n\nThe option is paid. To activate it, contact the support team or your account manager.\n"
    },
    {
      "name": "Directories",
      "description": "Manages the video directories in your account."
    },
    {
      "name": "Live Streams",
      "description": "Manages the live streams in your account.\n"
    },
    {
      "name": "Multicamera",
      "description": "Multicamera is an option for combining two or more live streams. You deliver multiple live streams at once, and a user can switch between them using a button in the player.\n"
    },
    {
      "name": "Restreams",
      "description": "Restreams is an option that allows you to broadcast your live streams or playlists to YouTube, Twitch, and other platforms at the same time.  \n\nThe option is paid. To activate it, contact the support team or your account manager.\n"
    },
    {
      "name": "Players",
      "description": "Player is an option that allows customizing the default player.  \n\nThe option is paid. To activate it, contact the support team or your account manager.\n"
    },
    {
      "name": "Adverts",
      "description": "Adverts is an option that adds custom ads in any part of videos and live streams to monetize your content. We support different ad formats: videos, banners, hyperlinks, and various advertising vendors such as Google, Criteo, Adfox, etc.  \n\nThe option is paid. To activate it, contact the support team or your account manager.\n"
    },
    {
      "name": "Computer Vision",
      "description": "Analyzes your submitted videos using traditional algorithms and machine learning methods to \ndetect the specified objects. The recognized object information includes its frame, placement \nand probability.  \n\nComputer vision can check your videos in 3 modes:\n1. **Nudity detection** detects naked human body parts in the video. Video processing speed is about 1:5. The mode detects objects such as female faces, male faces, covered bellies, exposed bellies, etc.\n2. **Quick detection** of a few objects scans the video for specified objects. Video processing speed is about 1:5. Over 70 objects are included in this mode: animals, accessories, food, vehicles, etc.\n3. **(beta) Detection of over 1000 objects per frame** uses a neural network to recognize a large number of objects in a short time. Video processing speed is about 1:1.  \n\nGet the full list of objects [here](https://vplatform.edgevideo.ru/videoplatform/cv/Computer%20vision%20objects.pdf).\n"
    },
    {
      "name": "Views statistics",
      "description": "Returns statistics of the views based on various filters."
    },
    {
      "name": "Video statistics",
      "description": "Returns various video statistics, including the number of unique viewers, total video duration, storage usage, etc."
    },
    {
      "name": "Live stream statistics",
      "description": "Returns various live stream statistics, including the number of unique viewers, total live stream transcoding time, number of concurrent live streams, an ffprobe, etc."
    },
    {
      "name": "Restream statistics",
      "description": "Returns various restream statistics."
    },
    {
      "name": "EdgeConf statistics",
      "description": "Returns various EdgeConf statistics, including usage time and user logs."
    },
    {
      "name": "Computer vision statistics",
      "description": "Returns various Computer vision statistics."
    },
    {
      "name": "Webhooks",
      "description": "Manages a webhook configuration in your account.\n"
    }
  ],
  "paths": {
    "/adverts": {
      "get": {
        "tags": [
          "Adverts"
        ],
        "summary": "Get all ads",
        "description": "Returns a list of ads created in your account and their details.",
        "operationId": "get_ads",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ad"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Adverts"
        ],
        "summary": "Create an ad",
        "description": "Creates an ad in your account.",
        "operationId": "post_ads",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the ad details",
                "properties": {
                  "ad": {
                    "$ref": "#/components/schemas/createAd"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ad"
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages:\n```\n{\n    \"errors\": {\n        \"name\": [\n            \"can't be blank\"\n        ]\n    }\n}\n```\n"
          }
        },
        "x-codegen-request-body-name": "body",
        "parameters": []
      }
    },
    "/adverts/{advert_id}": {
      "get": {
        "tags": [
          "Adverts"
        ],
        "summary": "Get an ad",
        "description": "Returns information about a specific ad.",
        "operationId": "get_ads_id",
        "parameters": [
          {
            "name": "advert_id",
            "in": "path",
            "description": "Ad ID. Get the ad ID via the [Get all ads request](#operation/get_ads)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ad"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Adverts"
        ],
        "summary": "Update an ad",
        "description": "Changes the details of a specific ad.",
        "operationId": "patch_ads_id",
        "parameters": [
          {
            "name": "advert_id",
            "in": "path",
            "description": "Ad ID. Get the ad ID via the [Get all ads request](#operation/get_ads)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ad": {
                    "$ref": "#/components/schemas/createAd"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ad"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "Adverts"
        ],
        "summary": "Deletes an ad",
        "description": "Deletes an ad from your account.",
        "operationId": "delete_ads_id",
        "parameters": [
          {
            "name": "advert_id",
            "in": "path",
            "description": "Ad ID. Get the ad ID via the [Get all ads request](#operation/get_ads)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The ad has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/live/multicameras": {
      "get": {
        "tags": [
          "Multicamera"
        ],
        "summary": "Get all multicameras",
        "description": "Returns a list of multicameras created in your account and their details.",
        "operationId": "get_broadcasts",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/broadcast"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Multicamera"
        ],
        "summary": "Create a multicamera",
        "description": "Creates a multicamera in your account.",
        "operationId": "post_broadcasts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the multicamera details",
                "properties": {
                  "broadcast": {
                    "$ref": "#/components/schemas/createBroadcast"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/broadcast"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages:\n```\n{\n    \"errors\": {\n        \"name\": [\"can't be blank\"]\n    }\n}\n```\n`Name`` is a required parameter, so it must be specified\n```\n{\n    \"errors\": {\n        \"status\": [\"can't be blank\"]\n    }\n}\n```\n`Status` is a required parameter, so it must be specified\n",
            "content": {}
          }
        },
        "x-codegen-request-body-name": "body",
        "parameters": []
      }
    },
    "/live/multicameras/{multicamera_id}": {
      "get": {
        "tags": [
          "Multicamera"
        ],
        "summary": "Get a multicamera",
        "description": "Returns information about a specific multicamera.",
        "operationId": "get_broadcasts_id",
        "parameters": [
          {
            "name": "multicamera_id",
            "in": "path",
            "description": "Multicamera ID. Get the multicamera ID via the [Get all multicameras request](#operation/get_broadcasts)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/broadcast"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Multicamera"
        ],
        "summary": "Update a multicamera",
        "description": "Changes the details of a specific multicamera.",
        "operationId": "patch_broadcasts_id",
        "parameters": [
          {
            "name": "multicamera_id",
            "in": "path",
            "description": "Multicamera ID. Get the multicamera ID via the [Get all multicameras request](#operation/get_broadcasts)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "broadcast": {
                    "$ref": "#/components/schemas/createBroadcast"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/broadcast"
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages: \n```\n{\n    \"errors\": {\n        \"name\": [\"can't be blank\"]\n    }\n}\n```\n`Name` is a required parameter, so it can't be blank\n```\n{\n    \"errors\": {\n        \"status\": [\"can't be blank\"]\n    }\n}\n```\n`Status` is a required parameter, so it can't be blank\n",
            "content": {}
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "Multicamera"
        ],
        "summary": "Delete a multicamera",
        "description": "Deletes a multicamera from your account.",
        "operationId": "delete_broadcasts_id",
        "parameters": [
          {
            "name": "multicamera_id",
            "in": "path",
            "description": "Multicamera ID. Get the multicamera ID via the [Get all multicameras request](#operation/get_broadcasts)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The multicamera has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/live/multicameras/{multicamera_id}/spectators": {
      "get": {
        "tags": [
          "Multicamera"
        ],
        "summary": "Get multicamera viewers count",
        "description": "Returns the number of people watching the multicamera at the current time.",
        "operationId": "get_broadcasts_spectators",
        "parameters": [
          {
            "name": "multicamera_id",
            "in": "path",
            "description": "Multicamera ID. Get the multicamera ID via the [Get all multicameras request](#operation/get_broadcasts)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/broadcastSpectators"
                }
              }
            }
          }
        }
      }
    },
    "/cv/tasks.json": {
      "post": {
        "summary": "Submit a video for analysis",
        "description": "Queues your video for analysis and detection of specified objects.\n",
        "operationId": "post_task_new",
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/taskid"
                }
              }
            }
          },
          "500": {
            "description": "Service error:  \n* URL is not specified\n* Queue limit reached (100), try later\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cv_task_error"
                }
              }
            }
          }
        },
        "tags": [
          "Computer Vision"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/task"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/cv/tasks/{cv_task_id}.json": {
      "get": {
        "summary": "Get video analysis details",
        "description": "Returns the status or the result of the video analysis process.  \nIf the process is not over yet, it can return one of the statuses:\n* **new** — the task is in the queue and is about to be processed\n* **processing** — the task is in progress and has not yet been completed\n",
        "parameters": [
          {
            "name": "cv_task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Task ID. Get the task ID via the [Submit a video for analysis request](#operation/post_task_new)\n"
          }
        ],
        "operationId": "get_task",
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cv_recognition"
                }
              }
            }
          }
        },
        "tags": [
          "Computer Vision"
        ]
      }
    },
    "/directories": {
      "get": {
        "tags": [
          "Directories"
        ],
        "summary": "List a root directory",
        "description": "Returns the items in your root directory, including details about your directories and videos.",
        "operationId": "get_directories",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sorted by key and direction. Valid values are **id**, **name**, or **created_at**. Use \"-\" to set the DESC direction, and use nothing to set the ASC direction",
            "examples": {
              "id": {
                "value": "id"
              },
              "-id": {
                "value": "-id"
              },
              "name": {
                "value": "name"
              },
              "-name": {
                "value": "-name"
              },
              "created_at": {
                "value": "created_at"
              },
              "-created_at": {
                "value": "-created_at"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Array of directory objects",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/directories"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Directories"
        ],
        "summary": "Create a directory",
        "description": "Creates a directory in your account.",
        "operationId": "add_directory",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/createDirectory"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/directory"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/directories/{directory_id}": {
      "get": {
        "tags": [
          "Directories"
        ],
        "summary": "Get a directory",
        "description": "Returns information about a specific directory.",
        "operationId": "get_directory",
        "parameters": [
          {
            "name": "directory_id",
            "in": "path",
            "description": "Directory ID. Get the directory ID via the [Get all directories request](#operation/get_directories)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Directory details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/directory"
                  }
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Directories"
        ],
        "summary": "Update a directory",
        "description": "Changes the details of a specific directory. The PUT method can also be used.",
        "operationId": "update_directory",
        "parameters": [
          {
            "name": "directory_id",
            "in": "path",
            "description": "Directory ID. Get the directory ID via the [Get all directories request](#operation/get_directories)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/createDirectory"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Directory details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/directory"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Directories"
        ],
        "summary": "Delete a directory",
        "description": "Deletes a directory from your account.",
        "operationId": "delete_directory",
        "parameters": [
          {
            "name": "directory_id",
            "in": "path",
            "description": "Directory ID. Get the directory ID via the [Get all directories request](#operation/get_directories)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful."
          }
        }
      }
    },
    "/directories/tree": {
      "get": {
        "tags": [
          "Directories"
        ],
        "summary": "Get all directories",
        "description": "Returns a list of directories created in your account and their details.",
        "operationId": "get_directories_tree",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Directories details in tree form",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/directories_tree"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vod/playlists": {
      "get": {
        "tags": [
          "Playlists"
        ],
        "summary": "Get all playlists",
        "description": "Returns a list of the playlists in your account.",
        "operationId": "get_playlists",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/playlists"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Playlists"
        ],
        "summary": "Create a playlist",
        "description": "Creates a playlist in your account.",
        "operationId": "post_playlists",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the playlist details",
                "properties": {
                  "playlist": {
                    "$ref": "#/components/schemas/createPlaylist"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/playlists"
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/vod/playlists/{playlist_id}": {
      "get": {
        "tags": [
          "Playlists"
        ],
        "summary": "Get a playlist",
        "description": "Returns details about the specific playlist created on your account.",
        "operationId": "get_playlists_id",
        "parameters": [
          {
            "name": "playlist_id",
            "in": "path",
            "description": "Playlist ID. Get the playlist ID via the [Get all playlists request](#operation/get_playlists)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/playlist"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Playlists"
        ],
        "summary": "Update a playlist",
        "description": "Changes the details of a specific playlist.",
        "operationId": "patch_playlists_id",
        "parameters": [
          {
            "name": "playlist_id",
            "in": "path",
            "description": "Playlist ID. Get the playlist ID via the [Get all playlists request](#operation/get_playlists)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playlist": {
                    "$ref": "#/components/schemas/updatePlaylist"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/playlist"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Playlists"
        ],
        "summary": "Delete a playlist",
        "description": "Deletes a playlist from your account.",
        "operationId": "delete_playlists_id",
        "parameters": [
          {
            "name": "playlist_id",
            "in": "path",
            "description": "Playlist ID. Get the playlist ID via the [Get all playlists request](#operation/get_playlists)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The playlist has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/vod/playlists/{playlist_id}/items": {
      "get": {
        "tags": [
          "Playlists"
        ],
        "summary": "Get playlist videos",
        "description": "Returns a list of videos grouped into a playlist and their details.",
        "operationId": "get_playlists_id_videos",
        "parameters": [
          {
            "name": "playlist_id",
            "in": "path",
            "description": "Playlist ID. Get the playlist ID via the [Get all playlists request](#operation/get_playlists)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/video"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/players": {
      "get": {
        "tags": [
          "Players"
        ],
        "summary": "Get all players",
        "description": "Returns a list of players created in your account and their details.",
        "operationId": "get_players",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/player"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Players"
        ],
        "summary": "Create a player",
        "description": "Creates a player in your account.",
        "operationId": "post_players",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the player details. Leave the fields blank to inherit the values from our default player",
                "properties": {
                  "player": {
                    "$ref": "#/components/schemas/createPlayer"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/player"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages: \n```\n{\n    \"errors\": {\n        \"name\": [\"can't be blank\"]\n    }\n}\n```\n`Name` is a required parameter, so it must be specified\n",
            "content": {}
          }
        },
        "x-codegen-request-body-name": "body",
        "parameters": []
      }
    },
    "/players/{player_id}": {
      "get": {
        "tags": [
          "Players"
        ],
        "summary": "Get a player",
        "description": "Returns information about a specific player.",
        "operationId": "get_players_id",
        "parameters": [
          {
            "name": "player_id",
            "in": "path",
            "description": "Player ID. Get the player ID via the [Get all players request](#operation/get_players)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/player"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Players"
        ],
        "summary": "Update a player",
        "description": "Changes the details of a specific player.",
        "operationId": "patch_players_id",
        "parameters": [
          {
            "name": "player_id",
            "in": "path",
            "description": "Player ID. Get the player ID via the [Get all players request](#operation/get_players)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "player": {
                    "$ref": "#/components/schemas/createPlayer"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/player"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "Players"
        ],
        "summary": "Delete a player",
        "description": "Deletes a player from your account.",
        "operationId": "delete_player_id",
        "parameters": [
          {
            "name": "player_id",
            "in": "path",
            "description": "Player ID. Get the player ID via the [Get all players request](#operation/get_players)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The player has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/players/{player_id}/preview.html": {
      "get": {
        "tags": [
          "Players"
        ],
        "summary": "Preview a player",
        "description": "Returns player configuration in HTML format.\n",
        "operationId": "get_players_id_preview",
        "parameters": [
          {
            "name": "player_id",
            "in": "path",
            "description": "Player ID. Get the player ID via the [Get all players request](#operation/get_players)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {}
          }
        }
      }
    },
    "/live/restreams": {
      "get": {
        "tags": [
          "Restreams"
        ],
        "summary": "Get all restreams",
        "description": "Returns a list of restreams created in your account and their details.",
        "operationId": "get_restreams",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/restream"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Restreams"
        ],
        "summary": "Create a restream",
        "description": "Creates a restream in your account.",
        "operationId": "post_restreams",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the restream details",
                "properties": {
                  "restream": {
                    "$ref": "#/components/schemas/createRestream"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/restream"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages:\n```\n{\n    \"errors\": {\n        \"stream\": [\"must exist\"]\n    }\n}\n```\nA required parameter stream_id wasn't specified or a stream with such ID hasn't been created.\n```\n{\n    \"errors\": {\n        \"stream\": [\"does not belong to the same client\"]\n    }\n}\n```\nA stream with specified ID belongs to another client.\n```\n{\n    \"errors\": {\n        \"uri\": [\"can't be blank\", \"is invalid\"]\n    }\n}\n```\nA required parameter uri wasn't specified or the input is incorrect\n",
            "content": {}
          }
        },
        "x-codegen-request-body-name": "body",
        "parameters": []
      }
    },
    "/live/restreams/{restream_id}": {
      "get": {
        "tags": [
          "Restreams"
        ],
        "summary": "Get a restream",
        "description": "Returns information about a specific restream.",
        "operationId": "get_restreams_id",
        "parameters": [
          {
            "name": "restream_id",
            "in": "path",
            "description": "Restream ID. Get the restream ID via the [Get all restreams request](#operation/get_restreams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/restream"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Restreams"
        ],
        "summary": "Update a restream",
        "description": "Changes the details of a specific restream.",
        "operationId": "patch_restreams_id",
        "parameters": [
          {
            "name": "restream_id",
            "in": "path",
            "description": "Restream ID. Get the restream ID via the [Get all restreams request](#operation/get_restreams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "restream": {
                    "$ref": "#/components/schemas/createRestream"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/restream"
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages: \n```\n{\n    \"errors\": {\n        \"stream\": [\"must exist\"]\n    }\n}\n```\nA stream with such ID was deleted or hasn 't been created yet.\n```\n{\n    \"errors\": {\n        \"stream\": [\"does not belong to the same client\"]\n    }\n}\n```\nA stream with specified ID belongs to another client. \n```\n{\n    \"errors\": {\n        \"uri\": [\"can't be blank\", \"is invalid\"]\n    }\n}\n```\nA `uri` parameter input is incorrect\n",
            "content": {}
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "Restreams"
        ],
        "summary": "Delete a restream",
        "description": "Deletes a restream from your account.",
        "operationId": "delete_restreams_id",
        "parameters": [
          {
            "name": "restream_id",
            "in": "path",
            "description": "Restream ID. Get the restream ID via the [Get all restreams request](#operation/get_restreams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The restream has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/stats/views": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getViews",
        "summary": "Get all views",
        "description": "Returns the number of video, live stream, and playlist views.  The specified query parameters determine which response fields are displayed.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID, or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group",
            "in": "query",
            "description": "Group the filters for receiving the data. You can specify multiple filters.\nChoose any of the values:\n* **date** — to filter by date\n* **host** — to filter by host\n* **os** — to filter by OS\n* **browser** — to filter by browser\n* **platform** — to filter by platform\n* **ip** — to filter by IP address\n* **country** — to filter by country\n* **event** — to filter by event name\n* **id** — to filter by content ID (video ID, live stream ID or a playlist ID)\n",
            "examples": {
              "1": {
                "value": [
                  "country"
                ]
              },
              "2": {
                "value": [
                  "host",
                  "id"
                ]
              }
            },
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "host",
                  "os",
                  "browser",
                  "platform",
                  "ip",
                  "country",
                  "event",
                  "id"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_views"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/countries": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getCountries",
        "summary": "Get views by country",
        "description": "Returns the number of views grouped by country.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_countries"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/regions": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getRegions",
        "summary": "Get views by region",
        "description": "Returns the number of views grouped by region.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_regions"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/browsers": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getBrowsers",
        "summary": "Get views by browsers",
        "description": "Returns the number of views grouped by browser.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_browsers"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/systems": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getSystems",
        "summary": "Get views by operating system",
        "description": "Returns the number of views grouped by the operating system.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_systems"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/embeds": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getEmbeds",
        "summary": "Get views by URL",
        "description": "Returns the number of views grouped by URL.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_embeds"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/hosts": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getHosts",
        "summary": "Get views by host",
        "description": "Returns the number of views grouped by host.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_hosts"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/popular": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getPopular",
        "summary": "Get popular content",
        "description": "Returns the number of views for content, sorted from most popular to least popular,  grouped by video ID, live stream ID, or playlist ID.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of cities to display in the output",
            "schema": {
              "default": 10,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_popular"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/uniqs": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getUniqs",
        "summary": "Get unique views",
        "description": "Returns the number of unique viewers, who viewed your content.  The specified query parameters determine which response fields are displayed.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID or a playlist ID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Specify the event name for which you'd like to get the statistics.\nChoose one of the values:\n* **init** — to get the number of times a video or live stream has been loaded\n* **start** — to get the number of times a video or live stream has been started\n* **watch** — to get the number of times a video or live stream has been watched\n",
            "schema": {
              "type": "string",
              "enum": [
                "init",
                "start",
                "watch"
              ]
            }
          },
          {
            "name": "host",
            "in": "query",
            "description": "Specify the host to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Specify the country to filter the data",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group",
            "in": "query",
            "description": "Group the filters for receiving the data. You can specify multiple filters.\nChoose any of the values:\n* **date** — to filter by date\n* **host** — to filter by host\n* **os** — to filter by OS\n* **browser** — to filter by browser\n* **platform** — to filter by platform\n* **ip** — to filter by IP address\n* **country** — to filter by country\n* **event** — to filter by event name\n* **id** — to filter by content ID (video ID, live stream ID, or a playlist ID)\n",
            "examples": {
              "1": {
                "value": [
                  "country"
                ]
              },
              "2": {
                "value": [
                  "host",
                  "id"
                ]
              }
            },
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "date",
                  "host",
                  "os",
                  "browser",
                  "platform",
                  "ip",
                  "country",
                  "event",
                  "id"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_uniqs"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/heatmap": {
      "get": {
        "tags": [
          "Views statistics"
        ],
        "operationId": "getHeatmap",
        "summary": "Get a heatmap",
        "description": "Returns information about the distribution of viewers along the length of the video, live stream, or playlist.  The specified query parameters determine which response fields are displayed.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": true,
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** - to get the data for videos,\n* **live** — to get the data for live streams\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "enum": [
                "live",
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "stream_id",
            "in": "query",
            "description": "Specify the content ID (video ID, live stream ID, or a playlist ID)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_heatmap"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/vod/viewers": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodViewersChart",
        "summary": "Get unique viewers for all videos",
        "description": "Returns a time series of the total number of unique viewers who have watched your videos.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_vod"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/vod/uniqs": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodUniq",
        "summary": "Get unique viewers for a video",
        "description": "Returns the number of unique viewers for a specified video.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slug",
            "in": "query",
            "required": true,
            "description": "Enter a video slug. Get the slug via the [Get a video request](#/operation/get_api_videos_id)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "vod",
                "playlist"
              ]
            }
          },
          {
            "name": "group",
            "in": "query",
            "description": "Group the filters for receiving the data. You can specify multiple filters.\nChoose any of the values:\n* **date** — to filter by date\n* **segment** - to filter by segment\n",
            "examples": {
              "1": {
                "value": [
                  "country"
                ]
              },
              "2": {
                "value": [
                  "host",
                  "id"
                ]
              }
            },
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "date",
                  "segment"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_uniqs"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/vod/cities": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodCities",
        "summary": "Get unique video viewers by city",
        "description": "Returns the number of unique viewers for a specified video, grouped by city.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slug",
            "in": "query",
            "description": "Enter a video slug. Get the slug via the [Get a video request](#/operation/get_api_videos_id)",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of cities to display in the output",
            "schema": {
              "default": 10,
              "type": "integer"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "vod",
                "playlist"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_cities"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/vod/countries": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodCountries",
        "summary": "Get unique video viewers by country",
        "description": "Returns the number of unique viewers for a specified video, grouped by country.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slug",
            "in": "query",
            "required": true,
            "description": "Enter a video slug. Get the slug via the [Get a video request](#/operation/get_api_videos_id)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Specify the type of content for which you'd like to get the statistics.\nChoose one of the values:\n* **vod** — to get the data for videos\n* **playlist** — to get the data for playlists\n",
            "schema": {
              "type": "string",
              "description": "Choose one of the values",
              "enum": [
                "vod",
                "playlist"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_countries"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/vod/popular": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodPopular",
        "summary": "Get popular video content",
        "description": "Returns the number of viewers for the top 10 most popular video content,  grouped by video or playlist name and slug.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_popularvod"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/vod/watching_duration": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodWatchingDurationChart",
        "summary": "Get video viewing time",
        "description": "Returns a time series of the total viewing time of all videos in minutes.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_vod"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/vod/transcoding_duration": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodTranscodingChart",
        "summary": "Get video transcoding time",
        "description": "Returns a time series of transcoding minutes for all videos. Data is updated every 8 hours.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_vod_transcoding"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/storage": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getStorageChart",
        "summary": "Get video storage usage",
        "description": "Returns a time series of video storage usage in bytes. Data is updated every 8 hours.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_storage"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/vod/storage_duration": {
      "get": {
        "tags": [
          "Video statistics"
        ],
        "operationId": "getVodStorageChart",
        "summary": "Get total video duration",
        "description": "Returns a time series of video storage usage in minutes. Data is updated every 8 hours.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_storage"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/stream/viewers": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getStreamViewersChart",
        "summary": "Get unique viewers for all live streams",
        "description": "Returns a time series of the number of unique viewers who have watched your live streams.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stream"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/live/uniqs": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getLiveUniq",
        "summary": "Get unique viewers for a live stream",
        "description": "Returns the number of unique viewers for a specified live stream.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Enter a live stream. Get the live stream ID via the [Get all live request](#/operation/get_streams)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "group",
            "in": "query",
            "description": "Group the filters for receiving the data. You can specify multiple filters.\nChoose any of the values:\n* **date** — to filter by date\n* **quality** — to filter by quality\n",
            "examples": {
              "1": {
                "value": [
                  "country"
                ]
              },
              "2": {
                "value": [
                  "host",
                  "id"
                ]
              }
            },
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "date",
                  "quality"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_uniqs"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/live/cities": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getLiveCities",
        "summary": "Get unique live stream viewers by city",
        "description": "Returns the number of unique viewers for a specified live stream, grouped by city.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Enter a live stream. Get the live stream ID via the [Get all live request](#/operation/get_streams)",
            "schema": {
              "type": "integer"
            },
            "required": true
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of cities to display in the output",
            "schema": {
              "default": 10,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_cities"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/live/countries": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getLiveCountries",
        "summary": "Get unique live stream viewers by country",
        "description": "Returns the number of unique viewers for a specified live stream, grouped by country.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "Enter a live stream. Get the live stream ID via the [Get all live request](#/operation/get_streams)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_countries"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cdn/live/popular": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getLivePopular",
        "summary": "Get popular live streams",
        "description": "Returns the number of viewers for the top 10 most popular live streams,  grouped by the live stream name and ID.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cdn_popularlive"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/stream/watching_duration": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getStreamWatchingDurationChart",
        "summary": "Get live stream viewing time",
        "description": "Returns a time series of the total viewing time of all live streams in minutes\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_stream_transcoding"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/stream": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getStreamChart",
        "summary": "Get live stream transcoding time",
        "description": "Returns a time series of transcoding minutes for all live streams.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_stream_transcoding"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/reseller/stream": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getResellerStreamChart",
        "summary": "Get live stream transcoding time (reseller)",
        "description": "Returns a time series of transcoding minutes for all live streams of all your clients.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data.",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          },
          {
            "name": "by_streams",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false,
              "description": "Decide whether to group the data by live streams or by clients.\nChoose one of the values:\n* **true** — to group the data by live streams\n* **false** — to group the data by clients\n\nThe default value is false \n"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_stream"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/max_stream": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getMaxStreamChart",
        "summary": "Get concurrent live streams",
        "description": "Returns a time series of the number of concurrent live streams\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_max_stream"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/ffprobe": {
      "get": {
        "tags": [
          "Live stream statistics"
        ],
        "operationId": "getFfprobe",
        "summary": "Get an ffprobe",
        "description": "Returns your live stream input information, including average bitrate, fps, frame count and their size.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stream_id",
            "in": "query",
            "required": true,
            "description": "Enter the live stream ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "interval",
            "in": "query",
            "description": "Specify a time interval for grouping the data.  Note: The parameter works only with the units parameter The default value is 10\n",
            "example": 30,
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "units",
            "description": "Specify a time unit for grouping the data.\nChoose one of the values:\n* **second**\n* **minute**\n* **hour**\n* **day**\n* **week**\n* **month**\n\nNote:\nThe parameter works only with the interval parameter\nThe default value is second\n",
            "in": "query",
            "example": "hour",
            "schema": {
              "type": "string",
              "enum": [
                "second",
                "minute",
                "hour",
                "day",
                "week",
                "month"
              ],
              "default": "second"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_ffprobe"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/restream": {
      "get": {
        "tags": [
          "Restream statistics"
        ],
        "operationId": "getReStreamChart",
        "summary": "Get restream transcoding time",
        "description": "Returns a time series of transcoding minutes for all restreams.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/restream"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/meet": {
      "get": {
        "tags": [
          "EdgeConf statistics"
        ],
        "operationId": "getMeetChart",
        "summary": "Get EdgeConf rooms usage",
        "description": "Returns a time series of the maximum number of users who have been in your EdgeConf rooms at the same time.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_meet"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/peers": {
      "get": {
        "tags": [
          "EdgeConf statistics"
        ],
        "operationId": "getPeers",
        "summary": "Get EdgeConf user logs",
        "description": "Returns information about all users who entered your EdgeConf room,  including their ID and the amount of time they spent in the room.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "room_id",
            "in": "query",
            "required": true,
            "description": "Enter your EdgeConf room ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_peers"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/peers/summary": {
      "get": {
        "tags": [
          "EdgeConf statistics"
        ],
        "operationId": "getPeersSummary",
        "summary": "Get EdgeConf user summary",
        "description": "Returns a summary of all users who entered your EdgeConf room,  including the total number of users and the amount of time they spent in the room.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "room_id",
            "in": "query",
            "required": true,
            "description": "Enter your EdgeConf room ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_peers_summary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/stats/cv": {
      "get": {
        "tags": [
          "Computer vision statistics"
        ],
        "operationId": "getCVChart",
        "summary": "Get Computer vision usage",
        "description": "Returns a time series of Computer vision usage in minutes.\n",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "description": "Specify the starting point of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-05-25"
              },
              "2": {
                "value": "2006-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "description": "Specify the end of the required period in the YYYY-MM-DD , YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD HH:MM:SS formats",
            "examples": {
              "1": {
                "value": "2023-06-25"
              },
              "2": {
                "value": "2023-01-02T15:04:05"
              }
            },
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "Set the time interval for grouping the data. \nChoose one of the values:\n* **1m** — 1 minute\n* **5m** — 5 minutes\n* **15m** — 15 minutes\n* **1h** — 1 hour\n* **1d** — 1 day\n",
            "example": "1h",
            "schema": {
              "type": "string",
              "default": "1h",
              "enum": [
                "1m",
                "5m",
                "15m",
                "1h",
                "1d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stats_cv"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_bad_request"
          },
          "500": {
            "$ref": "#/components/responses/error_internal_server"
          }
        }
      }
    },
    "/live/streams": {
      "get": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Get all live streams",
        "description": "Returns a list of live streams created in your account and their details.\n",
        "operationId": "get_streams",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "with_broadcasts",
            "in": "query",
            "description": "Decide whether to get details about the multicamera that uses a live stream.\n",
            "examples": {
              "to get the multicamera details": {
                "value": 1,
                "description": "to get the multicamera details"
              },
              "not to get the multicamera details": {
                "value": 0,
                "description": "not to get the multicamera details"
              }
            },
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/streams"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Create a live stream",
        "description": "Creates a live stream in your account.",
        "operationId": "post_streams_id",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the live stream details",
                "properties": {
                  "stream": {
                    "$ref": "#/components/schemas/createStream"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/streams"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages:\n```\n{\n    \"errors\": {\n        \"name\": [\"can't be blank\"]\n    }\n}\n```\nit's a required parameter, so it must be specified\n",
            "content": {}
          }
        }
      }
    },
    "/live/streams/{stream_id}": {
      "get": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Get a live stream",
        "description": "Returns information about a specific live stream.",
        "operationId": "get_streams_id",
        "parameters": [
          {
            "name": "stream_id",
            "in": "path",
            "description": "Live stream ID. Get the live stream ID via the [Get all live streams request](#operation/get_streams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stream"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Update a live stream",
        "description": "Changes the details of a specific live stream.",
        "operationId": "patch_streams_id",
        "parameters": [
          {
            "name": "stream_id",
            "in": "path",
            "description": "Live stream ID. Get the live stream ID via the [Get all live streams request](#operation/get_streams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "stream": {
                    "$ref": "#/components/schemas/createStream"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stream"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Delete a live stream",
        "description": "Deletes a live stream from your account.",
        "operationId": "delete_streams_id",
        "parameters": [
          {
            "name": "stream_id",
            "in": "path",
            "description": "Live stream ID. Get the live stream ID via the [Get all live streams request](#operation/get_streams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The live stream has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/live/streams/{stream_id}/recording/start": {
      "put": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Start live stream recording",
        "description": "Activates the Record option and starts recording the live stream. Recording starts when the live stream goes live.  \n\nThe option is paid. To activate it, contact the support team or your account manager.\n",
        "operationId": "put_streams_id_start_recording",
        "parameters": [
          {
            "name": "stream_id",
            "in": "path",
            "description": "Live stream ID. Get the live stream ID via the [Get all live streams request](#operation/get_streams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Live stream recording has started."
          },
          "404": {
            "description": "Live stream not found"
          },
          "422": {
            "description": "Validation errors"
          }
        }
      }
    },
    "/live/streams/{stream_id}/recording/stop": {
      "put": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Stop live stream recording",
        "description": "Stops recording the live stream.  \n\nThe option is paid. To activate it, contact the support team or your account manager.\n",
        "operationId": "put_streams_id_stop_recording",
        "parameters": [
          {
            "name": "stream_id",
            "in": "path",
            "description": "Live stream ID. Get the live stream ID via the [Get all live streams request](#operation/get_streams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Stream recording has been stopped successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/record"
                }
              }
            }
          }
        }
      }
    },
    "/live/streams/{stream_id}/dvr_cleanup": {
      "put": {
        "tags": [
          "Live Streams"
        ],
        "summary": "Clear DVR cache",
        "description": "Clears the DVR cache. Use it every time you start a new live stream. Otherwise, your viewers may see the end of the previous live stream from the cache.",
        "operationId": "put_streams_id_dvr_cleanup",
        "parameters": [
          {
            "name": "stream_id",
            "in": "path",
            "description": "Live stream ID. Get the live stream ID via the [Get all live streams request](#operation/get_streams)\n",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The DVR cache has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/vod/videos": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Get all videos",
        "description": "Returns a list of videos uploaded to your account and their details.",
        "operationId": "get_api_videos",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "q[status_eq]",
            "in": "query",
            "description": "Filter the videos by their status.  \nChoose one of the values:\n* **0** - to get \"empty\" videos (video has not been uploaded yet)\n* **1** - to get \"pending\" videos (video is being processed)\n* **2** - to get \"viewable\" videos (video is being processed but can be viewed)\n* **3** - to get \"ready\" videos (video is ready to be viewed)\n",
            "example": 2,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/video"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Videos"
        ],
        "summary": "Create a video",
        "description": "Creates a video in your account. You can upload it in 2 ways:  \n* By specifying the `origin_url` field\n* By using a script for a [TUS uploader client](#operation/get_api_videos_id_upload)\n",
        "operationId": "post_api_videos",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the video details",
                "properties": {
                  "video": {
                    "$ref": "#/components/schemas/createVideo"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/createVideoResponse"
                }
              }
            }
          },
          "422": {
            "description": "Possible error messages:\n```\n{\n    \"errors\": {\n        \"name\": [\"can't be blank\"]\n    }\n}\n```\nit's a required parameter, so it must be specified\n",
            "content": {}
          }
        },
        "x-codegen-request-body-name": "body",
        "parameters": []
      }
    },
    "/vod/videos/search": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Find a video",
        "description": "Searches for a video uploaded to your account by video name.",
        "operationId": "get_api_videos_search",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "<p>Video name that should be displayed in the output.</p> <p>Note:</p> <ul>\n    <li>If you type any letter, all video names that contain that letter will be displayed</li>\n</ul>",
            "required": true,
            "example": "Big Buck Bunny",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/searchVideo"
                }
              }
            }
          }
        }
      }
    },
    "/vod/videos/names": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Get video names",
        "description": "Returns the names of the specified video IDs.",
        "operationId": "get_api_videos_names",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "Video IDs that should be displayed in the output. You can add multiple IDs. \nGet the video ID via the [Get all videos request](#operation/get_api_videos)\n",
            "required": true,
            "example": "100000,102020",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "example": [
                  [
                    100000,
                    "video name 1"
                  ],
                  [
                    102020,
                    "video name 2"
                  ]
                ]
              }
            }
          }
        }
      }
    },
    "/vod/videos/{video_id}": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Get a video",
        "description": "Returns details about the specific video uploaded to your account.",
        "operationId": "get_api_videos_id",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/createVideoResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Videos"
        ],
        "summary": "Update a video",
        "description": "Changes the details of a specific video. You can also use the PATCH method instead of PUT.",
        "operationId": "put_api_videos_id",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "video": {
                    "$ref": "#/components/schemas/createVideo"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/video"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "tags": [
          "Videos"
        ],
        "summary": "Delete a video",
        "description": "Deletes a video from your account.",
        "operationId": "delete_api_videos_id",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "permanently",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false,
              "description": "Decide if you want to permanently delete a video without recovery.\nChoose one of the values:\n* **true** — to permanently delete it\n* **false** — to move it to the trash\n\nThe default value is **false** \n"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The video has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/vod/videos/{video_id}/upload_data": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Get data for TUS uploader",
        "description": "Returns an upload URL and token for video upload via a TUS client.\nUse the following template to build the upload URL: *https://{hostname}/upload/*. \nProvide `token`, `client_id` and `video_id` values as metadata. Refer to [TUS uploader documentation](https://tus.io/) for more details. \nAn example is given below. Data variables are the output of this API request.\n```\nupload_url = \"https://\" + data.servers[0].hostname + \"/upload/\";\nuploads[data.video.id] = new tus.Upload(file, {\n  endpoint: upload_url,\n  metadata: {\n    filename: data.video.name,\n    client_id: data.video.client_id,\n    video_id: data.video.id,\n    token: data.token\n  },\n  onSuccess: function () {\n      ...\n    }\n  }\n  uploads[data.video.id].start();\n```\n",
        "operationId": "get_api_videos_id_upload",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getUrlAndTokenToUploadVideo"
                }
              }
            }
          }
        }
      }
    },
    "/vod/videos/trash": {
      "get": {
        "tags": [
          "Videos"
        ],
        "summary": "Get all deleted videos",
        "description": "Returns a list of your deleted videos and their details.",
        "operationId": "get_videos_trash",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of items to fetch per page",
            "example": 25,
            "schema": {
              "type": "integer",
              "default": 25,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "headers": {
              "X-Page": {
                "$ref": "#/components/headers/X-Page"
              },
              "X-Per-Page": {
                "$ref": "#/components/headers/X-Per-Page"
              },
              "X-Total": {
                "$ref": "#/components/headers/X-Total"
              },
              "X-Total-Pages": {
                "$ref": "#/components/headers/X-Total-Pages"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/video"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vod/videos/trash/{video_id}": {
      "delete": {
        "tags": [
          "Videos"
        ],
        "summary": "Delete a video from trash",
        "description": "Deletes a video from trash permanently, without a possibility to restore.",
        "operationId": "delete_video_from_trash",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The video has been deleted.",
            "content": {}
          }
        }
      }
    },
    "/vod/videos/trash/{video_id}/restore": {
      "put": {
        "tags": [
          "Videos"
        ],
        "summary": "Restore a video",
        "description": "Restores a specific video from the trash.",
        "operationId": "restore_video",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all deleted videos request](#operation/get_videos_trash)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/video"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/vod/videos/{video_id}/subtitles": {
      "get": {
        "tags": [
          "Subtitles"
        ],
        "summary": "Get all subtitles",
        "description": "Returns all subtitles for a specific video.",
        "operationId": "getVideoSubtitles",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllSubtitles"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Subtitles"
        ],
        "summary": "Create subtitles",
        "description": "Creates subtitles for a specific video.",
        "operationId": "postVideoSubtitles",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubtitles"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubtitles"
                }
              }
            }
          }
        }
      }
    },
    "/vod/videos/{video_id}/subtitles/{subtitles_id}": {
      "get": {
        "tags": [
          "Subtitles"
        ],
        "summary": "Get subtitles",
        "description": "Returns details about specific subtitles uploaded for your video.",
        "operationId": "getSubtitles",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "subtitles_id",
            "in": "path",
            "description": "Subtitle ID. Get the subtitle ID via the [Get all subtitles request](#operation/getVideoSubtitles)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubtitles"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subtitles"
        ],
        "summary": "Update subtitles",
        "description": "Changes the details of specific subtitles.",
        "operationId": "putSubtitles",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "subtitles_id",
            "in": "path",
            "description": "Subtitle ID. Get the subtitle ID via the [Get all subtitles request](#operation/getVideoSubtitles)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubtitles"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubtitles"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Subtitles"
        ],
        "summary": "Delete subtitles",
        "description": "Deletes subtitles from your account.",
        "operationId": "deleteSubtitles",
        "parameters": [
          {
            "name": "video_id",
            "in": "path",
            "description": "Video ID. Get the video ID via the [Get all videos request](#operation/get_api_videos)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "subtitles_id",
            "in": "path",
            "description": "Subtitle ID. Get the subtitle ID via the [Get all subtitles request](#operation/getVideoSubtitles)",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The subtitles have been deleted.",
            "content": {}
          }
        }
      }
    },
    "/client/webhooks_configuration": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Get a webhook configuration",
        "description": "Returns details about a webhook configuration for your account.",
        "operationId": "get_webhooks_configuration",
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/get_webhooks_configuration"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Create a webhook configuration",
        "description": "Creates a webhook configuration for your account.",
        "operationId": "post_webhooks_configuration",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the configuration details",
                "$ref": "#/components/schemas/post_webhooks_configuration"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_webhooks_configuration"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Update a webhook configuration",
        "description": "Updates a webhook configuration for your account.",
        "operationId": "patch_webhooks_configuration",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Specify the configuration details",
                "$ref": "#/components/schemas/patch_webhooks_configuration"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_webhooks_configuration"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Delete a webhook configuration",
        "description": "Deletes a webhook configuration from your account.",
        "operationId": "delete_webhooks_configuration",
        "responses": {
          "204": {
            "description": "Deleted"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ad": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Ad ID"
          },
          "name": {
            "type": "string",
            "description": "Ad name"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "preroll": {
            "type": "string",
            "description": "Preroll ad type.  \nHas one of the values:\n* **none** — no preroll ad is played\n* **vast** — the VAST type ad is played \n* **yandex_sdk** — the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad is played\n"
          },
          "preroll_data": {
            "type": "array",
            "description": "Ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "preroll_one_by_one": {
            "type": "boolean",
            "description": "Indicates how the ads are played when more than one is specified in `preroll_data`.  \nHas one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "middleroll": {
            "type": "string",
            "description": "Middleroll ad type.  \nHas one of the values:\n* **none** — no middleroll ad is played\n* **vast** — the VAST type ad is played \n* **yandex_sdk** — the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad is played\n"
          },
          "middleroll_data": {
            "type": "array",
            "description": "Ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "middleroll_one_by_one": {
            "type": "boolean",
            "description": "Indicates how the ads are played when more than one is specified in `middleroll_data`.  \nHas one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "postroll": {
            "type": "string",
            "description": "Postroll ad type.  \nHas one of the values:\n* **none** — no postroll ad is played\n* **vast** — the VAST type ad is played \n* **yandex_sdk** — the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad is played\n"
          },
          "postroll_data": {
            "type": "array",
            "description": "Ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "postroll_one_by_one": {
            "type": "boolean",
            "description": "Indicates how the ads are played when more than one is specified in `postroll_data`.  \nHas one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "pauseroll": {
            "type": "string",
            "description": "Pauseroll ad type.  \nHas one of the values:\n* **none** — no pauseroll ad is played\n* **vast** — the VAST type ad is played \n* **yandex_sdk** — the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad is played\n"
          },
          "pauseroll_data": {
            "type": "array",
            "description": "Ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "pauseroll_one_by_one": {
            "type": "boolean",
            "description": "Indicates how the ads are played when more than one is specified in `pauseroll_data`.\nHas one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "repeatableroll": {
            "type": "string",
            "description": "Repeatableroll ad type.  \nHas one of the values:\n* **none** — no repeatableroll ad is played\n* **vast** — the VAST type ad is played \n* **yandex_sdk** — the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad is played\n"
          },
          "repeatableroll_data": {
            "type": "array",
            "description": "Ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "scteroll": {
            "type": "string",
            "description": "SCTE-35 ad type.  \nHas one of the values:\n* **none** — no scteroll ad is played\n* **vast** — the VAST type ad is played \n* **yandex_sdk** — the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad is played\n"
          },
          "scteroll_data": {
            "type": "array",
            "description": "Ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "scteroll_one_by_one": {
            "type": "boolean",
            "description": "Indicates how the ads are played when more than one is specified in `scteroll_data`.\nHas one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          }
        },
        "example": {
          "id": 123456,
          "name": "My first advertisement",
          "client_id": 777,
          "preroll": "vast",
          "preroll_data": [
            {
              "url": "https://ad.origin.example.com/ad1"
            },
            {
              "url": "https://ad.origin.example.com/ad2"
            }
          ],
          "middleroll": "none",
          "middleroll_data": null,
          "middleroll_one_by_one": true,
          "postroll": "none",
          "postroll_data": null,
          "postroll_one_by_one": true,
          "pauseroll": "none",
          "pauseroll_data": null,
          "pauseroll_one_by_one": true,
          "repeatableroll": "none",
          "repeatableroll_data": null,
          "scteroll": "none",
          "scteroll_data": null,
          "scteroll_one_by_one": true
        }
      },
      "createAd": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Enter an ad name"
          },
          "preroll": {
            "type": "string",
            "description": "Specify a preroll ad type.  \nChoose one of the values:\n* **none** — not to play any preroll ads\n* **vast** — to play the [VAST](https://www.iab.com/guidelines/vast/) type ad\n* **yandex_sdk** —  to play the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad\n"
          },
          "preroll_data": {
            "type": "array",
            "description": "Specify the ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "preroll_one_by_one": {
            "type": "boolean",
            "description": "Decide how the ads are played when more than one is specified in `preroll_data`.  \nChoose one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "middleroll": {
            "type": "string",
            "description": "Specify a middleroll ad type.  \nChoose one of the values:\n* **none** — not to play any middleroll ads\n* **vast** — to play the [VAST](https://www.iab.com/guidelines/vast/) type ad\n* **yandex_sdk** —  to play the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad\n"
          },
          "middleroll_data": {
            "type": "array",
            "description": "Specify the ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "middleroll_one_by_one": {
            "type": "boolean",
            "description": "Decide how the ads are played when more than one is specified in `middleroll_data`.  \nChoose one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "postroll": {
            "type": "string",
            "description": "Specify a postroll ad type.  \nChoose one of the values:\n* **none** — not to play any postroll ads\n* **vast** — to play the [VAST](https://www.iab.com/guidelines/vast/) type ad\n* **yandex_sdk** —  to play the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad\n"
          },
          "postroll_data": {
            "type": "array",
            "description": "Specify the ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "postroll_one_by_one": {
            "type": "boolean",
            "description": "Decide how the ads are played when more than one is specified in `postroll_data`.  \nChoose one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "pauseroll": {
            "type": "string",
            "description": "Specify a pauseroll ad type.  \nChoose one of the values:\n* **none** — not to play any pauseroll ads\n* **vast** — to play the [VAST](https://www.iab.com/guidelines/vast/) type ad\n* **yandex_sdk** —  to play the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad\n"
          },
          "pauseroll_data": {
            "type": "array",
            "description": "Specify the ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "pauseroll_one_by_one": {
            "type": "boolean",
            "description": "Decide how the ads are played when more than one is specified in `pauseroll_data`.\nChoose one of the values:\n* **true** — all ads are played in the order they appear in the list\n* **false** — only the first ad from the list is played\n"
          },
          "repeatableroll": {
            "type": "string",
            "description": "Specify a repeatableroll ad type.  \nChoose one of the values:\n* **none** — not to play any repeatableroll ads\n* **vast** — to play the [VAST](https://www.iab.com/guidelines/vast/) type ad\n* **yandex_sdk** —  to play the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad\n"
          },
          "repeatableroll_data": {
            "type": "array",
            "description": "Specify the ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "scteroll": {
            "type": "string",
            "description": "Specify an SCTE-35 ad type.  \nChoose one of the values:\n* **none** — not to play any scteroll ads\n* **vast** — to play the [VAST](https://www.iab.com/guidelines/vast/) type ad\n* **yandex_sdk** —  to play the [Yandex SDK](https://yandex.ru/dev/video-sdk/) type ad\n"
          },
          "scteroll_data": {
            "type": "array",
            "description": "Specify the ad details",
            "items": {
              "type": "object",
              "properties": {}
            }
          },
          "scteroll_one_by_one": {
            "type": "boolean",
            "description": "Decide how the ads are played when more than one is specified in `scteroll_data`.\nChoose one of the values:\n* **true** — to play all ads in the order they appear in the list\n* **false** — to play only the first ad from the list\n"
          }
        },
        "example": {
          "name": "My first advertisement",
          "preroll": "vast",
          "preroll_data": [
            {
              "url": "https://ad.origin.example.com/ad1"
            },
            {
              "url": "https://ad.origin.example.com/ad2"
            }
          ],
          "middleroll": "none",
          "middleroll_data": null,
          "middleroll_one_by_one": true,
          "postroll": "none",
          "postroll_data": null,
          "postroll_one_by_one": true,
          "pauseroll": "none",
          "pauseroll_data": null,
          "pauseroll_one_by_one": true,
          "repeatableroll": "none",
          "repeatableroll_data": null,
          "scteroll": "none",
          "scteroll_data": null,
          "scteroll_one_by_one": true
        }
      },
      "createBroadcast": {
        "type": "object",
        "required": [
          "name",
          "status"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Enter a multicamera name"
          },
          "status": {
            "type": "string",
            "description": "Specify a multicamera status.  \nChoose one of the values:\n* **Pending** (default) — users won’t see the live stream. A \"Broadcast hasn’t started yet\" message or a custom message from the `pending_message` field will be displayed\n* **Live** — the stream will be live and viewers will see it\n* **Paused** — users won’t see the live stream. A \"Broadcast is paused\" message will be displayed\n* **Finished** — users won’t see the live stream. A \"Broadcast is finished\" message will be displayed\n"
          },
          "custom_iframe_url": {
            "type": "string"
          },
          "show_dvr_after_finish": {
            "type": "boolean",
            "description": "Decide whether to display a DVR recording when a live stream ends.  \nChoose one of the values:\n* **true** — to display the DVR recording\n* **false** —  not to display the DVR recording  \n    \nNote:\n* The default value is `false`\n"
          },
          "pending_message": {
            "type": "string",
            "description": "Custom message that is displayed when there are no active streams in the multicamera. \nIf empty, a default message is displayed.  \nExample:\n* `\"no_active_streams\": \"Example message\"`\n"
          },
          "ad_id": {
            "type": "integer",
            "description": "Specify the ID of the ad that will be shown during the live stream. Get the ad ID via the [Get all ads request](#operation/get_ads)"
          },
          "player_id": {
            "type": "integer",
            "description": "Specify a player ID for the multicamera. \nGet the player ID via the [Get all players request](#operation/get_players)\n"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Specify a custom user ID"
          },
          "stream_ids": {
            "type": "array",
            "description": "Specify a list of live stream IDs that will be used by this multicamera. \nGet the live stream IDs via the [Get all live streams request](#operation/get_streams)\n",
            "items": {
              "type": "integer"
            }
          },
          "poster": {
            "type": "string",
            "description": "Upload your poster image in base64 format"
          }
        },
        "example": {
          "name": "My first Multicamera",
          "status": "live",
          "share_url": "",
          "custom_iframe_url": "",
          "show_dvr_after_finish": true,
          "ad_id": 123,
          "player_id": 456,
          "stream_ids": [
            123,
            456
          ]
        }
      },
      "broadcast": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Multicamera ID"
          },
          "name": {
            "type": "string",
            "description": "Multicamera name"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "status": {
            "type": "string",
            "description": "Multicamera status.  \nHas one of the values:\n* **Pending** (default) — users can’t see the live stream. A \"Broadcast hasn’t started yet\" message or a custom message from the `pending_message` field is displayed\n* **Live** — the stream is live and viewers can see it\n* **Paused** — users can’t see the live stream. A \"Broadcast is paused\" message is displayed\n* **Finished** — users can’t see the live stream. A \"Broadcast is finished\" message is displayed\n"
          },
          "iframe_embed_code": {
            "type": "string",
            "description": "Iframe code to embed the multicamera into your application"
          },
          "share_url": {
            "type": "string",
            "description": "URL for multicamera sharing added to the share button of the custom player. \nIf the value is `null`, the share and social networks buttons are disabled\n"
          },
          "custom_iframe_url": {
            "type": "string",
            "description": "Custom iframe URL added to the share button of the custom player"
          },
          "iframe_url": {
            "type": "string",
            "description": "Iframe URL of the video delivered via CDN"
          },
          "show_dvr_after_finish": {
            "type": "boolean",
            "description": "Indicates whether a DVR recording is displayed when a live stream ends.  \nHas one of the values:\n* **true** — the DVR recording is displayed\n* **false** — the DVR recording is not displayed  \nNote:\n* The default value is `false`\n"
          },
          "pending_message": {
            "type": "string",
            "description": "Custom message that is displayed when the multicamera status is set to \"Pending\". \nIf empty, a default message is displayed\n"
          },
          "custom_messages": {
            "type": "array",
            "description": "Custom message that is displayed when there are no active streams in the multicamera. \nIf empty, a default message is displayed\n",
            "items": {
              "type": "string"
            }
          },
          "ad_id": {
            "type": "integer",
            "description": "ID of the ad that is shown during the video"
          },
          "player_id": {
            "type": "integer",
            "description": "Player ID chosen for the multicamera"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "poster_thumb": {
            "type": "string",
            "description": "Multicamera screensaver thumbnail URL"
          },
          "stream_ids": {
            "type": "array",
            "description": "List of live stream IDs used in this multicamera",
            "items": {
              "type": "integer"
            }
          },
          "poster": {
            "type": "string",
            "description": "Multicamera screensaver URL"
          }
        },
        "example": {
          "name": "My first Multicamera",
          "status": "live",
          "share_url": "",
          "custom_iframe_url": "",
          "show_dvr_after_finish": true,
          "ad_id": 123,
          "player_id": 456,
          "stream_ids": [
            123,
            456
          ]
        }
      },
      "broadcastSpectators": {
        "type": "object",
        "properties": {
          "spectators_count": {
            "type": "integer",
            "description": "Number of viewers at the current time"
          }
        },
        "example": {
          "spectators_count": 250
        }
      },
      "task": {
        "type": "object",
        "required": [
          "url",
          "type"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "Enter the URL of the video or image you would like to analyze. \nVideo and images should be accessible over HTTP/HTTPS at the given link. The image will be processed as a 1-second video.  \nRequired video format: MP4  \nRequired image format: JPEG\n"
          },
          "type": {
            "type": "string",
            "description": "Specify the object detection mode.  \nChoose one of the values:\n* **cv** — to enable the nudity detection mode\n* **cvobj** — to enable the quick detection of a few objects mode\n* **cv_detect_2** — to enable the beta version of detection of over 1000 objects per frame mode\n"
          },
          "stop_objects": {
            "type": "string",
            "description": "Specify a comma-separated list of objects that should be detected. \nThe video analysis will stop when these objects are detected. \nYou can also specify a % probability threshold above which the stop flag will be triggered. The stop flag will be triggered for any non-zero (> 0.01) probability if the percentage is not specified.\nGet the full list of objects [here](https://vplatform.edgevideo.ru/videoplatform/cv/Computer%20vision%20objects.pdf).\n"
          }
        },
        "example": {
          "task": {
            "url": "https://s-dt2.cloud.edgecore.ru/79470-demovideo/videos/4419373.mp4",
            "type": "cv",
            "stop_objects": "EXPOSED_GENITALIA_F,EXPOSED_BUTTOCS:0.80,EXPOSED_BREAST_F:0.05"
          }
        }
      },
      "taskid": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Task ID.  \nUse this task ID in the [Get video analysis details request](#operation/get_task) to check its status and get the result of video processing\n"
          }
        },
        "example": {
          "id": 1234567
        }
      },
      "cv_task_error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Text message with description of error.\n"
          }
        },
        "example": {
          "error": "Queue limit reached (100), try later."
        }
      },
      "cv_recognition": {
        "type": "object",
        "properties": {
          "detection-annotations": {
            "type": "array",
            "description": "Video analysis result",
            "items": {
              "type": "object",
              "properties": {
                "frame-no": {
                  "type": "integer",
                  "description": "Video frame number where objects are detected"
                },
                "frame-attributes": {
                  "type": "object",
                  "description": "Analyzed frame parameters",
                  "properties": {
                    "key-frame": {
                      "type": "boolean",
                      "description": "Indicates whether the video frame is key (i-frame) or intermediate. \nReturns `true` for standard pre-trained AI/ML models for video processing\n"
                    }
                  }
                },
                "annotations": {
                  "type": "array",
                  "description": "Detected object information",
                  "items": {
                    "type": "object",
                    "properties": {
                      "object-score": {
                        "type": "number",
                        "description": "Object recognition probability, where 1.0 is 100% confidence in a particular object"
                      },
                      "object-name": {
                        "type": "string",
                        "description": "Recognised object name"
                      },
                      "left": {
                        "type": "number",
                        "description": "X-coordinate of the object's upper left corner"
                      },
                      "top": {
                        "type": "number",
                        "description": "Y-coordinate of the object's upper left corner"
                      },
                      "width": {
                        "type": "number",
                        "description": "Width of the rectangle that contains the found object"
                      },
                      "height": {
                        "type": "number",
                        "description": "Height of the rectangle that contains the found object"
                      }
                    }
                  }
                }
              }
            }
          },
          "file_info": {
            "type": "object",
            "description": "Details of the video analysis process",
            "properties": {
              "start_of_processing": {
                "type": "integer",
                "description": "Starting point of the video analysis process in the UNIX timestamp. Queuing time is not considered here"
              },
              "elapsed_time": {
                "type": "integer",
                "description": "The amount of time spent on video analysis"
              },
              "stop_objects": {
                "type": "string",
                "description": "Objects specified for detection in the [Submit a video for analysis request](#operation/post_task_new)"
              },
              "url": {
                "type": "string",
                "description": "URL of the video file that has been processed"
              },
              "end_of_processing": {
                "type": "integer",
                "description": "The end of the video analysis process in the UNIX timestamp"
              }
            }
          }
        },
        "example": {
          "detection-annotations": [
            {
              "frame-no": 3930,
              "frame-attributes": {
                "key_frame": true
              },
              "annotations": [
                {
                  "object-score": 0.6116635799407959,
                  "object-name": "FACE_F",
                  "left": 218,
                  "top": 115,
                  "width": 157,
                  "height": 116
                }
              ]
            }
          ],
          "file_info": {
            "start_of_processing": 1691066565000,
            "url": "http://origin.server/video.mp4",
            "stop_objects": "",
            "end_of_processing": 1691066627000
          },
          "id": 123456
        }
      },
      "directories_tree": {
        "type": "object",
        "properties": {
          "tree": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Item ID"
                },
                "name": {
                  "type": "string",
                  "description": "Item name"
                },
                "parent_id": {
                  "type": "integer",
                  "description": "Parent item ID"
                },
                "client_id": {
                  "type": "integer",
                  "description": "Account ID"
                },
                "items_count": {
                  "type": "integer",
                  "description": "Item quantity"
                },
                "updated_at": {
                  "type": "string",
                  "description": "Date and time when the item was updated (ISO 8601/RFC 3339 format)"
                },
                "created_at": {
                  "type": "string",
                  "description": "Date and time when the item was created (ISO 8601/RFC 3339 format)"
                },
                "descendants": {
                  "type": "array",
                  "description": "Subdirectories details",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        }
      },
      "directories": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "description": "Items details",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/directoryitem"
                }
              ]
            }
          }
        }
      },
      "directory": {
        "type": "object",
        "properties": {
          "directory": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Item ID"
              },
              "name": {
                "type": "string",
                "description": "Item name"
              },
              "parent_id": {
                "type": "integer",
                "description": "Parent item ID"
              },
              "client_id": {
                "type": "integer",
                "description": "Account ID"
              },
              "items_count": {
                "type": "integer",
                "description": "Item quantity"
              },
              "updated_at": {
                "type": "string",
                "description": "Date and time when the item was updated (ISO 8601/RFC 3339 format)"
              },
              "created_at": {
                "type": "string",
                "description": "Date and time when the item was created (ISO 8601/RFC 3339 format)"
              }
            }
          }
        },
        "example": {
          "directory": {
            "id": 1234,
            "name": "My directory",
            "parent_id": 123,
            "client_id": 777,
            "items_count": 1,
            "updated_at": "2023-07-27T13:57:11.000Z",
            "created_at": "2023-07-21T09:14:26.000Z"
          }
        }
      },
      "createDirectory": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Enter a directory name"
          },
          "parent_id": {
            "type": "integer",
            "description": "Specify a parent deated within an existing directory"
          }
        },
        "example": {
          "name": "My directory",
          "parent_id": 123
        }
      },
      "directoryitem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Item ID"
          },
          "name": {
            "type": "string",
            "description": "Item name"
          },
          "item_type": {
            "type": "string",
            "description": "Type of item: directory or video"
          },
          "parent_id": {
            "type": "integer",
            "description": "Parent item ID"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "items_count": {
            "type": "integer",
            "description": "Item quantity"
          },
          "updated_at": {
            "type": "string",
            "description": "Date and time when the item was updated (ISO 8601/RFC 3339 format)"
          },
          "created_at": {
            "type": "string",
            "description": "Date and time when the item was created (ISO 8601/RFC 3339 format)"
          }
        },
        "example": {
          "id": 1234,
          "name": "My directory",
          "item_type": "Directory",
          "parent_id": null,
          "client_id": 777,
          "items_count": 1,
          "updated_at": "2023-07-27T13:57:11.000Z",
          "created_at": "2023-07-21T09:14:26.000Z"
        }
      },
      "player": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Player ID"
          },
          "name": {
            "type": "string",
            "description": "Player name"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "framework": {
            "type": "string",
            "description": "Player framework type"
          },
          "design": {
            "type": "string",
            "description": "Player JS parameters"
          },
          "custom_css": {
            "type": "string",
            "description": "Custom CSS added to the player iframe"
          },
          "js_url": {
            "type": "string",
            "description": "Player JS file URL"
          },
          "skin_is_url": {
            "type": "string",
            "description": "Custom skin JS file URL"
          },
          "bg_color": {
            "type": "string",
            "description": "Skin background color in #AAAAAA format"
          },
          "fg_color": {
            "type": "string",
            "description": "Skin foreground (elements) color in #AAAAAA format"
          },
          "text_color": {
            "type": "string",
            "description": "Skin text elements color in #AAAAAA format"
          },
          "hover_color": {
            "type": "string",
            "description": "Foreground elements color on mouse hover in #AAAAAA format"
          },
          "autoplay": {
            "type": "boolean",
            "description": "Indicates whether a video in the player starts automatically.  \nHas one of the values:\n* **true** — a video starts playing when the player loads\n* **false** — a video doesn’t start automatically. A user must start it themselves\n"
          },
          "mute": {
            "type": "boolean",
            "description": "Indicates whether a video starts in mute mode.  \nHas one of the values:\n* **true** — the audio is muted\n* **false** — the audio isn’t muted\n"
          },
          "disable_skin": {
            "type": "boolean",
            "description": "Indicates whether a player skin is disabled. You can add your own design.  \nHas one of the values:\n* **true** — the player skin is disabled\n* **false** — the player skin is enabled\n"
          },
          "save_options_to_cookies": {
            "type": "boolean",
            "description": "Indicates whether player preferences are stored in users' cookies.  \nHas one of the values:\n* **true** — user preferences are saved in cookies\n* **false** — user preferences aren’t saved in cookies\n"
          },
          "show_sharing": {
            "type": "boolean",
            "description": "Shows if the share button is displayed.  \nHas one of the values:\n* **true** — the share button is displayed\n* **false** — the share button isn’t displayed\n"
          },
          "logo_position": {
            "type": "string",
            "description": "Logo position.  \nHas one of the values:\n* **tl** — top left corner\n* **tr** — top right corner\n* **bl** — bottom left corner\n* **br** — bottom right corner\n* **null** — no position is chosen\n"
          },
          "speed_control": {
            "type": "boolean",
            "description": "Shows if the playback speed control button is displayed.  \nHas one of the values:\n* **true** — the playback speed control button is displayed\n* **false** — the playback speed control button isn’t displayed\n"
          },
          "ga_enabled": {
            "type": "boolean",
            "description": "Indicates whether Google Analytics are enabled.  \nHas one of the values:\n* **true** — Google Analytics are enabled\n* **false** — Google Analytics are disabled\n"
          },
          "ga_options": {
            "type": "object",
            "description": "Google Analytics details"
          },
          "disable_click_on_pause": {
            "type": "boolean",
            "description": "Indicates whether users can pause the video by clicking on the player’s screen.  \nHas one of the values:\n* **true** — users can pause the video by clicking on the player’s screen\n* **false** — users can’t pause the video by clicking on the player’s screen\n"
          },
          "set_highest_quality_at_start": {
            "type": "boolean",
            "description": "Indicates whether the best available quality is set from the beginning of the video.\nHas one of the values:\n* **true** — playback starts with the best video quality available\n* **false** — playback starts with the video quality based on network capability\n"
          },
          "logo": {
            "type": "string",
            "description": "Logo URL"
          }
        },
        "example": {
          "id": 123,
          "name": "My first player",
          "client_id": 777,
          "framework": null,
          "design": null,
          "custom_css": null,
          "js_url": null,
          "skin_js_url": null,
          "bg_color": "#000000",
          "fg_color": "#FFFFFF",
          "text_color": "#FFFFFF",
          "hover_color": "#057CEC",
          "autoplay": false,
          "mute": false,
          "disable_skin": false,
          "save_options_to_cookies": true,
          "show_sharing": true,
          "logo_position": null,
          "speed_control": false,
          "ga_enabled": false,
          "ga_options": null,
          "disable_click_on_pause": false,
          "set_highest_quality_at_start": true,
          "logo": null
        }
      },
      "createPlayer": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Enter a player name"
          },
          "design": {
            "type": "string",
            "description": "Add player JS parameters"
          },
          "custom_css": {
            "type": "string",
            "description": "Add custom CSS to the player iframe"
          },
          "js_url": {
            "type": "string",
            "description": "Specify a player JS file URL"
          },
          "skin_is_url": {
            "type": "string",
            "description": "Specify a сustom skin JS file URL"
          },
          "bg_color": {
            "type": "string",
            "description": "Add a skin background color in #AAAAAA format"
          },
          "fg_color": {
            "type": "string",
            "description": "Add a skin foreground (elements) color in #AAAAAA format"
          },
          "text_color": {
            "type": "string",
            "description": "Add a skin text elements color in #AAAAAA format"
          },
          "hover_color": {
            "type": "string",
            "description": "Add a foreground elements color on mouse hover in #AAAAAA format"
          },
          "autoplay": {
            "type": "boolean",
            "description": "Decide whether to start a video in the player automatically.  \nChoose one of the values:\n* **true** — to start a video when the player loads\n* **false** — not to start a video when the player loads. A user must start it themselves\n"
          },
          "mute": {
            "type": "boolean",
            "description": "Decide whether to start a video in mute mode.  \nChoose one of the values:\n* **true** — to mute the audio\n* **false** — not to mute the audio\n"
          },
          "disable_skin": {
            "type": "boolean",
            "description": "Enable or disable a player skin. You can add your own design.  \nChoose one of the values:\n* **true** — to disable the player skin\n* **false** — to enable the player skin\n"
          },
          "save_options_to_cookies": {
            "type": "boolean",
            "description": "Decide whether to store the player preferences in users' cookies.  \nChoose one of the values:\n* **true** — to save the user preferences in cookies\n* **false** — not to save the user preferences in cookies\n"
          },
          "show_sharing": {
            "type": "boolean",
            "description": "Decide whether to display the share button.  \nChoose one of the values:\n* **true** — to display the share button\n* **false** — not to display the share button\n"
          },
          "logo_position": {
            "type": "string",
            "description": "Set the logo position.  \nChoose one of the values:\n* **tl** — top left corner\n* **tr** — top right corner\n* **bl** — bottom left corner\n* **br** — bottom right corner\n* **null** — not to choose any position\n"
          },
          "speed_control": {
            "type": "boolean",
            "description": "Decide whether to display the playback speed control button.  \nChoose one of the values:\n* **true** — to display the playback speed control button\n* **false** — not to display the playback speed control button\n"
          },
          "ga_enabled": {
            "type": "boolean",
            "description": "Enable or disable Google Analytics.  \nChoose one of the values:\n* **true** — to enable Google Analytics\n* **false** — to disable Google Analytics\n"
          },
          "ga_options": {
            "type": "array",
            "description": "Specify Google Analytics details",
            "items": {
              "type": "object",
              "properties": {
                "ga_id": {
                  "description": "Google Analytics ID",
                  "type": "integer"
                }
              }
            }
          },
          "disable_click_on_pause": {
            "type": "boolean",
            "description": "Decide whether users can pause the video by clicking on the player’s screen.  \nHas one of the values:\n* **true** — to allow users to pause the video by clicking on the player’s screen\n* **false** — not to allow users to pause the video by clicking on the player’s screen\n"
          },
          "set_highest_quality_at_start": {
            "type": "boolean",
            "description": "Indicates whether the best available quality is set from the beginning of the video.\nHas one of the values:\n* **true** — playback starts with the best video quality available\n* **false** — playback starts with the video quality based on network capability\n"
          },
          "logo": {
            "type": "string",
            "description": "Upload your logo image in base64 format"
          }
        },
        "example": {
          "name": "My first player",
          "framework": null,
          "design": null,
          "custom_css": null,
          "js_url": null,
          "skin_js_url": null,
          "bg_color": "#000000",
          "fg_color": "#FFFFFF",
          "text_color": "#FFFFFF",
          "hover_color": "#057CEC",
          "autoplay": false,
          "mute": false,
          "disable_skin": false,
          "save_options_to_cookies": true,
          "show_sharing": true,
          "logo_position": null,
          "speed_control": false,
          "ga_enabled": false,
          "ga_options": null,
          "disable_click_on_pause": false,
          "set_highest_quality_at_start": true,
          "logo": null
        }
      },
      "playlist": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Playlist ID"
          },
          "name": {
            "type": "string",
            "description": "Playlist name"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "active": {
            "type": "boolean",
            "description": "Shows if the playlist is active.  \nHas one of the values:\n* **true** — the playlist is enabled\n* **false** — the playlist is disabled\n"
          },
          "start_time": {
            "type": "string",
            "description": "Playlist start date and time in ISO 8601 format. \nYou cannot play the playlist before this time\n"
          },
          "loop": {
            "type": "boolean",
            "description": "Shows if the loop option is active.  \nHas one of the values:\n* **true** — the playlist can be replayed\n* **false** — the playlist cannot be replayed\n"
          },
          "video_ids": {
            "type": "array",
            "description": "A list of the video IDs that are included in the playlist. \nThe videos will be played in the same order in which their IDs are displayed in the list\n",
            "items": {
              "type": "integer"
            }
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "ID of the ad that is shown during the video"
          },
          "player_id": {
            "type": "integer",
            "description": "Player ID chosen for the video"
          },
          "countdown": {
            "type": "boolean",
            "description": "Indicates whether or not a 30-second countdown video is shown before the start of the playlist.  \nHas one of the values:\n* **true** — a 30-second countdown video is shown before the start of the playlist\n* **false** — a 30-second countdown video is not shown before the start of the playlist\n"
          },
          "playlist_type": {
            "type": "string",
            "enum": [
              "live",
              "vod"
            ],
            "description": "Playlist type.  \nHas one of the values:\n* **live** — imitates a live streaming behavior\n* **vod** — plays and rewinds the videos\n"
          },
          "iframe_embed_code": {
            "type": "string",
            "description": "Iframe code to embed the playlist into your application"
          },
          "iframe_url": {
            "type": "string",
            "description": "Iframe URL of the playlist delivered via CDN"
          },
          "hls_url": {
            "type": "string",
            "description": "URL to the .m3u8 of the playlist delivered via CDN"
          }
        },
        "example": {
          "id": 12345,
          "name": "My first playlist",
          "client_id": 777,
          "active": true,
          "start_time": "2023-09-01T12:00:00.000Z",
          "loop": true,
          "video_ids": [
            123,
            456,
            789
          ],
          "client_user_id": 888,
          "ad_id": 1,
          "player_id": 2,
          "countdown": true,
          "playlist_type": "live",
          "iframe_embed_code": "<iframe width=\"560\" height=\"315\" src=\"https://my.cdn.resource/playlists/777_12345\" frameborder=\"0\" allowfullscreen></iframe>",
          "iframe_url": null,
          "hls_url": null
        }
      },
      "playlists": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Playlist ID"
          },
          "name": {
            "type": "string",
            "description": "Playlist name"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "active": {
            "type": "boolean",
            "description": "Shows if the playlist is active.  \nHas one of the values:\n* **true** — the playlist is enabled\n* **false** — the playlist is disabled\n"
          },
          "start_time": {
            "type": "string",
            "description": "Playlist start date and time in ISO 8601 format. \nYou cannot play the playlist before this time\n"
          },
          "loop": {
            "type": "boolean",
            "description": "Shows if the loop option is active.  \nHas one of the values:\n* **true** — the playlist can be replayed\n* **false** — the playlist cannot be replayed\n"
          },
          "video_ids": {
            "type": "array",
            "description": "A list of the video IDs that are included in the playlist. \nThe videos will be played in the same order in which their IDs are displayed in the list\n",
            "items": {
              "type": "integer"
            }
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "ID of the ad that is shown during the video"
          },
          "player_id": {
            "type": "integer",
            "description": "Player ID chosen for the video"
          },
          "countdown": {
            "type": "boolean",
            "description": "Indicates whether or not a 30-second countdown video is shown before the start of the playlist.  \nHas one of the values:\n* **true** — a 30-second countdown video is shown before the start of the playlist\n* **false** — a 30-second countdown video is not shown before the start of the playlist\n"
          },
          "playlist_type": {
            "type": "string",
            "enum": [
              "live",
              "vod"
            ],
            "description": "Playlist type.  \nHas one of the values:\n* **live** — imitates a live streaming behavior\n* **vod** — plays and rewinds the videos\n"
          }
        },
        "example": {
          "id": 12345,
          "name": "My first playlist",
          "client_id": 777,
          "active": true,
          "start_time": "2023-09-01T12:00:00.000Z",
          "loop": true,
          "video_ids": [
            123,
            456,
            789
          ],
          "client_user_id": 888,
          "ad_id": 1,
          "player_id": 2,
          "countdown": true,
          "playlist_type": "live"
        }
      },
      "createPlaylist": {
        "type": "object",
        "required": [
          "name",
          "start_time"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Specify a playlist name"
          },
          "active": {
            "type": "boolean",
            "description": "Decide if the playlist should be active.  \nChoose one of the values:\n* **true** — to enable the playlist\n* **false** — to disable the playlist\n"
          },
          "start_time": {
            "type": "string",
            "description": "Enter the playlist start date and time in ISO 8601 format. \nYou cannot play the playlist before this time\n"
          },
          "loop": {
            "type": "boolean",
            "description": "Enable or disable the Loop option.  \nChoose one of the values:\n* **true** — to replay the playlist\n* **false** — not to replay the playlist\n"
          },
          "video_ids": {
            "type": "array",
            "description": "Enter a list of the video IDs that will be included in the playlist. \nThe videos will be played in the same order in which their IDs are displayed in the list. \nGet the video IDs via the [Get all videos request](#operation/get_api_videos)\n",
            "items": {
              "type": "integer"
            }
          },
          "client_user_id": {
            "type": "integer",
            "description": "Specify a custom user ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "Specify the ID of the ad that will be shown during the video. \nGet the ad ID via the [Get all ads request](#operation/get_ads)\n"
          },
          "player_id": {
            "type": "integer",
            "description": "Specify a player ID for the video. \nGet the player ID via the [Get all players request](#operation/get_players)\n"
          },
          "countdown": {
            "type": "boolean",
            "description": "Decide whether or not a 30-second countdown video will be shown before the start of the playlist.  \nChoose one of the values:\n* **true** — to show a 30-second countdown video before the start of the playlist\n* **false** — not to show a 30-second countdown video before the start of the playlist\n"
          },
          "playlist_type": {
            "type": "string",
            "enum": [
              "live",
              "vod"
            ],
            "description": "Select a playlist type.   \nChoose one of the values:\n* **live** — to imitate a live streaming behavior\n* **vod** — to play and rewind the videos\n"
          }
        },
        "example": {
          "name": "My first playlist",
          "active": true,
          "start_time": "2023-09-01T12:00:00.000Z",
          "loop": true,
          "video_ids": [
            123,
            456,
            789
          ],
          "client_user_id": 888,
          "ad_id": 1,
          "player_id": 2,
          "countdown": true,
          "playlist_type": "live"
        }
      },
      "updatePlaylist": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Specify a playlist name"
          },
          "active": {
            "type": "boolean",
            "description": "Decide if the playlist should be active.  \nChoose one of the values:\n* **true** — to enable the playlist\n* **false** — to disable the playlist\n"
          },
          "start_time": {
            "type": "string",
            "description": "Enter the playlist start date and time in ISO 8601 format. \nYou cannot play the playlist before this time\n"
          },
          "loop": {
            "type": "boolean",
            "description": "Enable or disable the Loop option.  \nChoose one of the values:\n* **true** — to replay the playlist\n* **false** — not to replay the playlist\n"
          },
          "video_ids": {
            "type": "array",
            "description": "Enter a list of the video IDs that will be included in the playlist. \nThe videos will be played in the same order in which their IDs are displayed in the list. \nGet the video IDs via the [Get all videos request](#operation/get_api_videos)\n",
            "items": {
              "type": "integer"
            }
          },
          "client_user_id": {
            "type": "integer",
            "description": "Specify a custom user ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "Specify the ID of the ad that will be shown during the video. \nGet the ad ID via the [Get all ads request](#operation/get_ads)\n"
          },
          "player_id": {
            "type": "integer",
            "description": "Specify a player ID for the video. \nGet the player ID via the [Get all players request](#operation/get_players)\n"
          },
          "countdown": {
            "type": "boolean",
            "description": "Decide whether or not a 30-second countdown video will be shown before the start of the playlist.  \nChoose one of the values:\n* **true** — to show a 30-second countdown video before the start of the playlist\n* **false** — not to show a 30-second countdown video before the start of the playlist\n"
          },
          "playlist_type": {
            "type": "string",
            "enum": [
              "live",
              "vod"
            ],
            "description": "Select a playlist type.   \nChoose one of the values:\n* **live** — to imitate a live streaming behavior\n* **vod** — to play and rewind the videos\n"
          }
        },
        "example": {
          "name": "My first playlist",
          "active": true,
          "start_time": "2023-09-01T12:00:00.000Z",
          "loop": true,
          "video_ids": [
            123,
            456,
            789
          ],
          "client_user_id": 888,
          "ad_id": 1,
          "player_id": 2,
          "countdown": true,
          "playlist_type": "live"
        }
      },
      "restream": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Restream ID"
          },
          "name": {
            "type": "string",
            "description": "Restream name"
          },
          "live": {
            "type": "boolean",
            "description": "Shows whether the restream is live.  \nHas one of the values:\n* **true** — the restream is live\n* **false** — the restream isn’t live\n"
          },
          "active": {
            "type": "boolean",
            "description": "Shows whether the restream is enabled.  \nHas one of the values:\n* **true** — the restream is enabled\n* **false** — the restream is disabled\n"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "uri": {
            "type": "string",
            "description": "Media service URL where the stream is pushed"
          },
          "stream_id": {
            "type": "integer",
            "description": "Live stream ID for restreaming"
          },
          "playlist_id": {
            "type": "integer",
            "description": "Playlist ID for restreaming"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          }
        },
        "example": {
          "id": 123,
          "name": "My first restream",
          "live": true,
          "active": true,
          "client_id": 777,
          "uri": "rtmp://a.rtmp.youtube.com/live2/123-abc",
          "stream_id": 123,
          "playlist_id": null,
          "client_user_id": 888
        }
      },
      "createRestream": {
        "type": "object",
        "required": [
          "name",
          "uri",
          "stream_id",
          "playlist_id"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Enter a restream name"
          },
          "live": {
            "type": "boolean",
            "description": "Decide whether to make the restream live.  \nChoose one of the values\n* **true** — to make the restream live\n* **false** —  to make the restream not live\n"
          },
          "active": {
            "type": "boolean",
            "description": "Enable or disable the restream.  \nChoose one of the values:\n* **true** — to enable the restream\n* **false** —  to disable the restream\n"
          },
          "uri": {
            "type": "string",
            "description": "Enter the media service URL where the stream will be pushed"
          },
          "stream_id": {
            "type": "integer",
            "description": "Specify a live stream ID for restreaming. \nGet the live stream ID via the [Get all live streams request](#operation/get_streams)\n"
          },
          "playlist_id": {
            "type": "integer",
            "description": "Specify a playlist ID for restreaming. Get the playlist ID via the [Get all playlists request](#operation/get_playlists)"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Specify a custom user ID"
          }
        },
        "example": {
          "name": "My first restream",
          "live": true,
          "active": true,
          "uri": "rtmp://a.rtmp.youtube.com/live2/123-abc",
          "stream_id": 123,
          "playlist_id": null,
          "client_user_id": 888
        }
      },
      "stats_billing_metrics": {
        "type": "object",
        "properties": {
          "date_from": {
            "type": "string",
            "format": "datetime",
            "description": "Start of time frame. For max_streams, max_restreams, max_advertising, max_players use a month for which period you need statistics.",
            "example": "2022-09-01T00:00:00Z"
          },
          "date_to": {
            "type": "string",
            "format": "datetime",
            "description": "End of time frame. For max_streams, max_restreams, max_advertising, max_players use a month for which period you need statistics.",
            "example": "2022-10-01T00:00:00Z"
          },
          "clients": {
            "type": "array",
            "description": "client IDs for which metrics are requested",
            "items": {
              "type": "integer"
            },
            "example": [
              10,
              555,
              98876
            ]
          },
          "metrics": {
            "type": "array",
            "description": "* **cv**\nnumber of minutes of service consumption\n* **max_size**\nnumber of bytes stored in storage\n* **meet**\nnumber of viewers\n* **streams**\nduration of streams in minutes\n* **vod_max_storage_duration**\nnumber of minutes saved in storage\n* **vod_transcoding_duration**\nnumber of minutes spent on transcoding\n* **transcoding_duration**\nsum number of minutes spent on transcoding in vod and live\n* **vod_watching_duration**\nnumber of minutes spent watching in vod\n* **stream_watching_duration**\nnumber of minutes spent watching in live\n* **total_watching_duration**\nnumber of minutes spent watching in vod and live\n* **restreams_duration**\nduration of restreams in minutes\n* **ingesting_minutes**\nduration of streams in minutes\n* **ingesting_traffic**\namount of traffic in GB\n* **max_streams**\nnumber of max streams in months\n* **max_restreams**\nnumber of max restreams in months\n* **max_advertising**\nnumber of max advertising in months\n* **max_players**\nnumber of max players in months\n* **streaming_traffic**\nnumber of bytes transferred to the client\n* **used_advertising**\nreturn 1 if advertising in use\n* **used_players**\nreturn 1 if players in use\n* **used_dvr**\nreturn 1 if dvr in use\n* **used_playlists**\nreturn 1 if playlists in use\n",
            "items": {
              "type": "string",
              "enum": [
                "cv",
                "max_size",
                "meet",
                "streams",
                "vod_max_storage_duration",
                "vod_transcoding_duration",
                "transcoding_duration",
                "vod_watching_duration",
                "stream_watching_duration",
                "total_watching_duration",
                "restreams_duration",
                "ingesting_minutes",
                "ingesting_traffic",
                "max_streams",
                "max_restreams",
                "max_advertising",
                "max_players",
                "streaming_traffic"
              ]
            },
            "example": [
              "cv",
              "streams",
              "max_size",
              "meet",
              "streams",
              "vod_max_storage_duration",
              "vod_transcoding_duration",
              "transcoding_duration",
              "vod_watching_duration",
              "stream_watching_duration",
              "total_watching_duration",
              "restreams_duration",
              "ingesting_minutes",
              "ingesting_traffic",
              "max_streams",
              "max_restreams",
              "max_advertising",
              "max_players",
              "streaming_traffic"
            ]
          },
          "group_by": {
            "type": "string",
            "description": "indicates the format of the answer: if \"client\" the answer will be grouped by client, else by metrics\n",
            "enum": [
              "client"
            ]
          },
          "flat": {
            "type": "boolean",
            "description": "indicates the format of the answer: if \"true\" the answer will be in the form of an array, \"false\" as an object\n",
            "example": true,
            "default": false
          }
        }
      },
      "stats_bill_metrics": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "type": "integer"
            },
            "metrics": {
              "type": "object",
              "additionalProperties": {
                "type": "integer"
              }
            }
          }
        },
        "example": {
          "client": 555,
          "metrics": {
            "max_size": 100500,
            "cv": 20,
            "streams": 123456
          }
        }
      },
      "stats_error_common": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "errors": {
            "description": "Possible errors",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "stats_cdn_cities": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Viewers information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "viewers": {
                  "description": "Number of unique viewers",
                  "type": "integer"
                },
                "city": {
                  "description": "City name",
                  "type": "string"
                },
                "minutes": {
                  "description": "Number of minutes viewed from this city",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "viewers": 100,
              "city": "Moscow",
              "minutes": 1500
            },
            {
              "viewers": 1,
              "city": "London",
              "minutes": 15
            }
          ]
        }
      },
      "stats_cdn_countries": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Viewers information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "viewers": {
                  "description": "Number of unique viewers",
                  "type": "integer"
                },
                "country": {
                  "description": "Country name according to ISO-3166-1",
                  "type": "string"
                },
                "minutes": {
                  "description": "Number of minutes viewed from this country",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "viewers": 100,
              "country": "Russia",
              "minutes": 1500
            },
            {
              "viewers": 1,
              "country": "Austria",
              "minutes": 15
            }
          ]
        }
      },
      "stats_cdn_uniqs": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Viewers information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uniq_viewers": {
                  "description": "Number of unique viewers",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "uniq_viewers": 100
            },
            {
              "uniq_viewers": 1
            }
          ]
        }
      },
      "stats_cdn_popularlive": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Live stream information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Live stream name",
                  "type": "string"
                },
                "stream_id": {
                  "description": "Live stream name",
                  "type": "integer"
                },
                "uniq_viewers": {
                  "description": "Number of unique viewers",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "name": "video 1",
              "stream_id": 128282,
              "uniq_viewers": 1500
            },
            {
              "name": "video 2",
              "stream_id": 9,
              "uniq_viewers": 15
            }
          ]
        }
      },
      "stats_cdn_popularvod": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Video content information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Video content name",
                  "type": "string"
                },
                "slug": {
                  "description": "Video content",
                  "type": "string"
                },
                "uniq_viewers": {
                  "description": "Number of unique viewers",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "name": "video 1",
              "slug": "MLghJCxGmtACzMES",
              "uniq_viewers": 1500
            },
            {
              "name": "video 2",
              "slug": "BGB3oYQtIt8Eu8Wo",
              "uniq_viewers": 15
            }
          ]
        }
      },
      "stats_views": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Views information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "date": {
                  "description": "Date by which the data was grouped",
                  "type": "string"
                },
                "type": {
                  "description": "Content type by which the data was grouped",
                  "type": "string"
                },
                "host": {
                  "description": "Host by which the data was grouped",
                  "type": "string"
                },
                "os": {
                  "description": "OS by which the data was grouped",
                  "type": "string"
                },
                "browser": {
                  "description": "Browser by which the data was grouped",
                  "type": "string"
                },
                "platform": {
                  "description": "Platform by which the data was grouped",
                  "type": "string"
                },
                "ip": {
                  "description": "IP address by which the data was grouped",
                  "type": "string"
                },
                "country": {
                  "description": "Country by which the data was grouped",
                  "type": "string"
                },
                "event": {
                  "description": "Event name by which the data was grouped",
                  "type": "string"
                },
                "id": {
                  "description": "Content ID (video ID, live stream ID, or a playlist ID) by which the data was grouped",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "date": "2022-10-15",
              "type": "vod"
            },
            {
              "views": 3000,
              "date": "2022-10-15",
              "type": "live"
            }
          ]
        }
      },
      "stats_uniqs": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Unique viewers information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "unique_ids": {
                  "description": "Number of unique viewers",
                  "type": "integer"
                },
                "date": {
                  "description": "Date by which the data was grouped",
                  "type": "string"
                },
                "type": {
                  "description": "Content type by which the data was grouped",
                  "type": "string"
                },
                "host": {
                  "description": "Host by which the data was grouped",
                  "type": "string"
                },
                "os": {
                  "description": "OS by which the data was grouped",
                  "type": "string"
                },
                "browser": {
                  "description": "Browser by which the data was grouped",
                  "type": "string"
                },
                "platform": {
                  "description": "Platform by which the data was grouped",
                  "type": "string"
                },
                "ip": {
                  "description": "IP address by which the data was grouped",
                  "type": "string"
                },
                "country": {
                  "description": "Country by which the data was grouped",
                  "type": "string"
                },
                "event": {
                  "description": "Event name by which the data was grouped",
                  "type": "string"
                },
                "id": {
                  "description": "Content ID (video ID, live stream ID, or a playlist ID) by which the data was grouped",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "unique_ids": 100,
              "date": "2022-10-15",
              "type": "vod"
            },
            {
              "unique_ids": 300,
              "date": "2022-10-15",
              "type": "live"
            }
          ]
        }
      },
      "stats_countries": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Countries information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "country": {
                  "description": "Country name according to ISO-3166-1",
                  "type": "string"
                },
                "country_name": {
                  "description": "Country name",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "country": "AU",
              "country_name": "Australia"
            },
            {
              "views": 3000,
              "country": "US",
              "country_name": "United States"
            }
          ]
        }
      },
      "stats_regions": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Regions information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "region": {
                  "description": "Region number",
                  "type": "string"
                },
                "region_name": {
                  "description": "Region name",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "region": "ACT",
              "region_name": "Australian Capital Territory"
            },
            {
              "views": 3000,
              "region": "SA",
              "region_name": "South Australia"
            }
          ]
        }
      },
      "stats_popular": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Views information",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "id": {
                  "description": "Content ID (video ID, live stream ID, or a playlist ID) by which the data was grouped",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "id": 12345
            },
            {
              "views": 3000,
              "id": 65432
            }
          ]
        }
      },
      "stats_browsers": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Browsers information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "browser": {
                  "description": "Browser name",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "browser": "Chrome Mobile iOS"
            },
            {
              "views": 3000,
              "browser": "Mobile Safari"
            }
          ]
        }
      },
      "stats_systems": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Operating systems information",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "os": {
                  "description": "Operating system name",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "os": "Windows"
            },
            {
              "views": 3000,
              "os": "Android"
            }
          ]
        }
      },
      "stats_embeds": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "URLs information",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "embed_url": {
                  "description": "URL from which the content was viewed",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "embed_url": "https://example.com/xxx-yyy"
            },
            {
              "views": 3000,
              "embed_url": "https://example.com/xxx-zzz"
            }
          ]
        }
      },
      "stats_hosts": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Hosts information",
            "items": {
              "type": "object",
              "properties": {
                "views": {
                  "description": "Number of views",
                  "type": "integer"
                },
                "host": {
                  "description": "Hostname",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "views": 100500,
              "embed_url": "example.com"
            },
            {
              "views": 3000,
              "embed_url": "simple.com"
            }
          ]
        }
      },
      "stats_heatmap": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Viewers information",
            "items": {
              "type": "object",
              "properties": {
                "viewers": {
                  "description": "Number of viewers",
                  "type": "integer"
                },
                "seconds": {
                  "description": "Number of seconds by which the data was grouped",
                  "type": "integer"
                },
                "time": {
                  "description": "Time by which the data was grouped in ISO 8601 format",
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "viewers": 100500,
              "seconds": 500
            },
            {
              "viewers": 3000,
              "seconds": 1000
            }
          ]
        }
      },
      "stats_ffprobe": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Live stream information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "time": {
                  "description": "Time by which the data was grouped in ISO 8601 format",
                  "type": "string"
                },
                "avg_bitrate": {
                  "description": "Average bitrate",
                  "type": "number"
                },
                "sum_frames": {
                  "description": "Total number of frames",
                  "type": "integer"
                },
                "max_height": {
                  "description": "Maximum frame height",
                  "type": "integer"
                },
                "max_fps": {
                  "description": "Maximum FPS",
                  "type": "number"
                },
                "max_keyframe_interval": {
                  "description": "Maximum keyframe interval",
                  "type": "integer"
                }
              }
            }
          }
        },
        "example": {
          "data": [
            {
              "time": "2006-01-02 15:04:05",
              "avg_bitrate": 3500.5,
              "sum_frames": 500,
              "max_height": 1080,
              "max_fps": 25,
              "max_keyframe_interval": 1
            }
          ]
        }
      },
      "stats_stream_transcoding": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Transcoding time details",
              "type": "object",
              "properties": {
                "streams": {
                  "description": "UNIX timestamp and the number of minutes transcoded at that time",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "streams": [
                [
                  1640995210,
                  10
                ],
                [
                  1640995310,
                  10
                ],
                [
                  1640995410,
                  10
                ],
                [
                  1640995510,
                  20
                ],
                [
                  1640995610,
                  20
                ]
              ]
            }
          }
        ]
      },
      "stats_restream": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Transcoding time details",
              "type": "object",
              "properties": {
                "streams": {
                  "description": "UNIX timestamp and the number of minutes transcoded at that time",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "restreams": [
                [
                  1677542400,
                  300
                ],
                [
                  1677628800,
                  500
                ]
              ]
            }
          }
        ]
      },
      "stats_max_stream": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Live streams details",
              "type": "object",
              "properties": {
                "streams": {
                  "description": "UNIX timestamp and the number of concurrent live streams at that time",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "streams": [
                [
                  1640995210,
                  10
                ],
                [
                  1640995310,
                  10
                ],
                [
                  1640995410,
                  10
                ],
                [
                  1640995510,
                  20
                ],
                [
                  1640995610,
                  20
                ]
              ]
            }
          }
        ]
      },
      "stats_storage": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Video storage usage details",
              "type": "object",
              "properties": {
                "storage": {
                  "description": "UNIX timestamp and the number of storage bytes used at that time",
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "format": "int64",
                      "description": "first value in array is timestamp, second is count of byte"
                    }
                  }
                },
                "max_volume_usage": {
                  "description": "UNIX timestamp and the maximum number of used storage bytes",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64",
                    "description": "first value in array is timestamp, second is count of byte"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "storage": [
                [
                  1640995210,
                  10000000000
                ],
                [
                  1640995310,
                  12000000000
                ],
                [
                  1640995410,
                  16000000000
                ],
                [
                  1640995510,
                  20000000000
                ],
                [
                  1640995610,
                  10000000000
                ]
              ],
              "max_volume_usage": [
                1640995510,
                20000000000
              ]
            }
          }
        ]
      },
      "stats_stream": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Viewers details",
              "type": "object",
              "properties": {
                "streams": {
                  "description": "UNIX timestamp and the number of viewers at that time",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "streams": [
                [
                  1640995210,
                  10
                ],
                [
                  1640995310,
                  10
                ],
                [
                  1640995410,
                  10
                ],
                [
                  1640995510,
                  20
                ],
                [
                  1640995610,
                  20
                ]
              ]
            }
          }
        ]
      },
      "stats_cv": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "client": {
                  "description": "Account ID",
                  "type": "integer"
                },
                "metrics": {
                  "description": "Computer vision usage details",
                  "type": "object",
                  "properties": {
                    "cv": {
                      "description": "UNIX timestamp and the number of minutes Computer vision was in use at that time",
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "format": "int64"
                      }
                    },
                    "max_cv_usage": {
                      "description": "UNIX timestamp and the maximum number of minutes Computer vision was in use at that time",
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "format": "int64"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "cv": [
                [
                  1640995210,
                  10
                ],
                [
                  1640995310,
                  120
                ],
                [
                  1640995410,
                  130
                ],
                [
                  1640995510,
                  200
                ],
                [
                  1640995610,
                  100
                ]
              ],
              "max_cv_usage": [
                1640995510,
                200
              ]
            }
          }
        ]
      },
      "stats_meet": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Room usage details",
              "type": "object",
              "properties": {
                "meet": {
                  "description": "UNIX timestamp and the maximum number of users in all rooms at that time",
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "format": "int64"
                    }
                  }
                },
                "max_meet_usage": {
                  "description": "UNIX timestamp and the largest value of the meet field",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "meet": [
                [
                  1640995210,
                  10
                ],
                [
                  1640995310,
                  120
                ],
                [
                  1640995410,
                  130
                ],
                [
                  1640995510,
                  200
                ],
                [
                  1640995610,
                  100
                ]
              ],
              "max_meet_usage": [
                1640995510,
                200
              ]
            }
          }
        ]
      },
      "stats_peers": {
        "type": "object",
        "properties": {
          "data": {
            "description": "EdgeConf users information",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "person_id": {
                  "description": "EdgeConf user ID",
                  "type": "string"
                },
                "join_time": {
                  "description": "Time when the user entered the EdgeConf room in UNIX timestamp",
                  "type": "integer",
                  "format": "uint64"
                },
                "leave_time": {
                  "description": "Time when the user left the EdgeConf room in UNIX timestamp",
                  "type": "integer",
                  "format": "uint64"
                },
                "duration": {
                  "description": "Total number of seconds the user has been in the EdgeConf room",
                  "type": "integer",
                  "format": "uint64"
                }
              }
            }
          }
        }
      },
      "stats_peers_summary": {
        "type": "object",
        "properties": {
          "data": {
            "description": "EdgeConf users information",
            "type": "object",
            "properties": {
              "participants": {
                "description": "Total number of users who entered the EdgeConf room",
                "type": "integer",
                "format": "uint64"
              },
              "start_time": {
                "description": "Time the first user entered the room",
                "type": "integer",
                "format": "uint64"
              },
              "end_time": {
                "description": "Time the last user left the room",
                "type": "integer",
                "format": "uint64"
              },
              "duration": {
                "description": "Total number of seconds the users have been in the EdgeConf room",
                "type": "integer",
                "format": "uint64"
              }
            }
          }
        }
      },
      "stats_vod_transcoding": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Transcoding time details",
              "type": "object",
              "properties": {
                "vod": {
                  "description": "UNIX timestamp and the number of minutes transcoded at that time",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "vod": [
                [
                  1640995210,
                  10
                ],
                [
                  1640995310,
                  10
                ],
                [
                  1640995410,
                  10
                ],
                [
                  1640995510,
                  20
                ],
                [
                  1640995610,
                  20
                ]
              ]
            }
          }
        ]
      },
      "stats_vod": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "client": {
              "description": "Account ID",
              "type": "integer"
            },
            "metrics": {
              "description": "Viewers details",
              "type": "object",
              "properties": {
                "vod": {
                  "description": "UNIX timestamp and the number of viewers at that time",
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "example": [
          {
            "client": 123,
            "metrics": {
              "vod": [
                [
                  1640995210,
                  10
                ],
                [
                  1640995310,
                  10
                ],
                [
                  1640995410,
                  10
                ],
                [
                  1640995510,
                  20
                ],
                [
                  1640995610,
                  20
                ]
              ]
            }
          }
        ]
      },
      "stream": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Live stream ID"
          },
          "live": {
            "type": "boolean",
            "description": "Shows whether the live stream is live.  \nHas one of the values:\n* **true** — the live stream is live\n* **false** — the live stream isn’t live\n"
          },
          "backup_live": {
            "type": "boolean",
            "description": "Shows whether the backup live stream is live.  \nHas one of the values:\n* **true** — the backup live stream is live\n* **false** — the backup live stream isn’t live\n"
          },
          "name": {
            "type": "string",
            "description": "Live stream name"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "push_url": {
            "type": "string",
            "description": "RTMP push URL"
          },
          "backup_push_url": {
            "type": "string",
            "description": "RTMP backup push URL"
          },
          "push_url_srt": {
            "type": "string",
            "description": "SRT push URL"
          },
          "backup_push_url_srt": {
            "type": "string",
            "description": "SRT backup push URL"
          },
          "broadcast_ids": {
            "type": "array",
            "description": "List of multicamera IDs that are using this stream",
            "items": {
              "type": "integer"
            }
          },
          "pull": {
            "type": "boolean",
            "description": "Live stream type. Shows whether the live stream is pulled or pushed.  \nHas one of the values:\n* **true** — the live stream is pulled\n* **false** — the live stream is pushed\n"
          },
          "token": {
            "type": "string",
            "description": "Live stream token"
          },
          "active": {
            "type": "boolean",
            "description": "Shows whether the live stream is enabled.  \nHas one of the values:\n* **true** — the live stream is enabled\n* **false** — the live stream is disabled\n"
          },
          "auto_record": {
            "type": "boolean",
            "description": "Indicates whether the auto recording option is enabled.  \nHas one of the values:\n* **true** — the auto  recording option is enabled\n* **false** — the auto recording option is disabled  \nNote: \n* The option is paid. If you want to activate it for your account, contact the support team or your account manager\n"
          },
          "uri": {
            "type": "string",
            "description": "URL for pulling a live stream"
          },
          "dvr_enabled": {
            "type": "boolean",
            "description": "Indicates whether the DVR option is enabled.  \nHas one of the values:\n* **true** — DVR is enabled\n* **false** — DVR is disabled  \nNote: \n* The option is paid. If you want to activate it for your account, contact the support team or your account manager\n"
          },
          "rtmp_play_url": {
            "type": "string",
            "description": "Live stream RTMP URL"
          },
          "transcoding_enabled": {
            "type": "boolean",
            "description": "Indicates whether the transcoding is enabled.  \nHas one of the values:\n* **true** — the transcoding is enabled\n* **false** — the transcoding is disabled\n"
          },
          "cdn_id": {
            "type": "integer",
            "description": "CDN resource ID for live stream delivery"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "low_latency_enabled": {
            "type": "boolean",
            "description": "Indicates whether the Low latency option is enabled.   \nHas one of the values:\n* **true** — Low latency is enabled\n* **false**  — Low latency is disabled\n"
          },
          "projection": {
            "type": "string",
            "description": "Live stream projection format.  \nHas one of the values:\n* **regular** — the live stream plays as usual\n* **vr360** — the live stream plays in 360 degree mode\n* **vr180** — the live stream plays in 180 degree mode\n* **vr360tb** — the live stream plays in 3D 360 degree mode Top-Bottom  \nNote:\n* The default value is `regular`\n"
          },
          "recording": {
            "type": "boolean",
            "description": "Indicates whether the live stream is being recorded.  \nHas one of the values:\n* **true** — the live stream is being recorded\n* **false** — the live stream is not being recorded\n"
          },
          "recording_duration": {
            "type": "integer",
            "description": "Shows how much time the live stream is being recorded"
          },
          "poster": {
            "type": "string",
            "description": "URL of the uploaded poster"
          },
          "poster_thumb": {
            "type": "string",
            "description": "Reduced poster URL"
          },
          "broadcasts": {
            "type": "array",
            "description": "Information about a multicamera that uses this live stream. \nSee the field descriptions in the [Get all multicameras request](#operation/get_broadcasts)\n",
            "items": {
              "type": "object"
            }
          },
          "logo_player_id": {
            "type": "integer",
            "description": "ID of a custom player logo"
          },
          "overlay": {
            "type": "string",
            "description": "Overlay URL"
          },
          "restreams": {
            "type": "array",
            "description": "Information about a restream that uses this live stream. \nSee the field descriptions in the [Get all restreams request](#operation/get_restreams)\n",
            "items": {
              "type": "object"
            }
          },
          "iframe_url": {
            "type": "string",
            "description": "Iframe URL of the live stream delivered via CDN"
          },
          "dvr_duration": {
            "type": "integer",
            "description": "Number of seconds to rewind the live stream"
          },
          "frame_rate": {
            "type": "integer",
            "description": "Live stream frame rate"
          },
          "video_bitrate": {
            "type": "integer",
            "description": "Live stream video bitrate"
          },
          "audio_bitrate": {
            "type": "integer",
            "description": "Live stream audio bitrate"
          },
          "video_height": {
            "type": "integer",
            "description": "Live stream video height"
          },
          "video_width": {
            "type": "integer",
            "description": "Live stream video width"
          },
          "audio_channels": {
            "type": "integer",
            "description": "Number of audio channels"
          },
          "audio_codec": {
            "type": "string",
            "description": "Live stream audio codec"
          },
          "audio_sample_rate": {
            "type": "integer",
            "description": "Live stream audio sample rate"
          },
          "hls_playlist_url": {
            "type": "string",
            "description": "URL to the .m3u8 of the live stream delivered via CDN"
          }
        },
        "example": {
          "id": 123,
          "live": false,
          "backup_live": false,
          "name": "My first stream",
          "client_id": 777,
          "transcoded_qualities": null,
          "push_url": "rtmp://vp-push-ix1.edgestream.ru/in/123?4567890",
          "backup_push_url": "rtmp://vp-push-ix2.edgestream.ru/in/123?4567890&is_backup=true",
          "push_url_srt": "srt://vp-push-ix1-srt.edgestream.ru:5001?streamid=123#4567890",
          "backup_push_url_srt": "srt://vp-push-ix2-srt.edgestream.ru:5001?streamid=123b#4567890",
          "transcoding_speed": null,
          "transcoding_error": null,
          "receiving_speed": null,
          "receiving_error": null,
          "broadcast_ids": [],
          "pull": false,
          "token": 4567890,
          "active": true,
          "auto_record": null,
          "uri": null,
          "dvr_enabled": false,
          "cdn_id": 321,
          "client_user_id": 888,
          "quality_set_id": 123,
          "rtmp_play_url": "[rtmp://vp-pull-ix1.edgestream.ru:1939/in/123?0987654]",
          "transcoding_enabled": true,
          "projection": "regular",
          "low_latency_enabled": false,
          "protocol": null,
          "recording": false,
          "recording_duration": null,
          "poster": null,
          "poster_thumb": null,
          "quality_sets": [],
          "cdn_hostname": null,
          "broadcasts": [],
          "restreams": [],
          "logo_player_id": null,
          "overlay": null,
          "iframe_url": "https://my.cdn.resource//streams/777_123",
          "dvr_duration": 3600,
          "frame_rate": null,
          "video_bitrate": null,
          "audio_bitrate": null,
          "video_height": null,
          "video_width": null,
          "audio_channels": null,
          "audio_codec": null,
          "audio_sample_rate": null,
          "hls_playlist_url": "https://my.cdn.resource/streams/777_123/playlist.m3u8"
        }
      },
      "streams": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Live stream ID"
          },
          "live": {
            "type": "boolean",
            "description": "Shows whether the live stream is live.  \nHas one of the values:\n* **true** — the live stream is live\n* **false** — the live stream isn’t live\n"
          },
          "backup_live": {
            "type": "boolean",
            "description": "Shows whether the backup live stream is live.  \nHas one of the values:\n* **true** — the backup live stream is live\n* **false** — the backup live stream isn’t live\n"
          },
          "name": {
            "type": "string",
            "description": "Live stream name"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "push_url": {
            "type": "string",
            "description": "RTMP push URL"
          },
          "backup_push_url": {
            "type": "string",
            "description": "RTMP backup push URL"
          },
          "push_url_srt": {
            "type": "string",
            "description": "SRT push URL"
          },
          "backup_push_url_srt": {
            "type": "string",
            "description": "SRT backup push URL"
          },
          "broadcast_ids": {
            "type": "array",
            "description": "List of multicamera IDs that are using this stream",
            "items": {
              "type": "integer"
            }
          },
          "pull": {
            "type": "boolean",
            "description": "Live stream type. Shows whether the live stream is pulled or pushed.  \nHas one of the values:\n* **true** — the live stream is pulled\n* **false** — the live stream is pushed\n"
          },
          "token": {
            "type": "string",
            "description": "Live stream token"
          },
          "active": {
            "type": "boolean",
            "description": "Shows whether the live stream is enabled.  \nHas one of the values:\n* **true** — the live stream is enabled\n* **false** — the live stream is disabled\n"
          },
          "auto_record": {
            "type": "boolean",
            "description": "Indicates whether the auto recording option is enabled.  \nHas one of the values:\n* **true** — the auto  recording option is enabled\n* **false** — the auto recording option is disabled  \nNote: \n* The option is paid. If you want to activate it for your account, contact the support team or your account manager\n"
          },
          "uri": {
            "type": "string",
            "description": "URL for pulling a live stream"
          },
          "dvr_enabled": {
            "type": "boolean",
            "description": "Indicates whether the DVR option is enabled.  \nHas one of the values:\n* **true** — DVR is enabled\n* **false** — DVR is disabled  \nNote: \n* The option is paid. If you want to activate it for your account, contact the support team or your account manager\n"
          },
          "rtmp_play_url": {
            "type": "string",
            "description": "Live stream RTMP URL"
          },
          "transcoding_enabled": {
            "type": "boolean",
            "description": "Indicates whether the transcoding is enabled.  \nHas one of the values:\n* **true** — the transcoding is enabled\n* **false** — the transcoding is disabled\n"
          },
          "cdn_id": {
            "type": "integer",
            "description": "CDN resource ID for live stream delivery"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "low_latency_enabled": {
            "type": "boolean",
            "description": "Indicates whether the Low latency option is enabled.   \nHas one of the values:\n* **true** — Low latency is enabled\n* **false**  — Low latency is disabled\n"
          },
          "projection": {
            "type": "string",
            "description": "Live stream projection format.  \nHas one of the values:\n* **regular** — the live stream plays as usual\n* **vr360** — the live stream plays in 360 degree mode\n* **vr180** — the live stream plays in 180 degree mode\n* **vr360tb** — the live stream plays in 3D 360 degree mode Top-Bottom  \nNote:\n* The default value is `regular`\n"
          },
          "recording": {
            "type": "boolean",
            "description": "Indicates whether the live stream is being recorded.  \nHas one of the values:\n* **true** — the live stream is being recorded\n* **false** — the live stream is not being recorded\n"
          },
          "recording_duration": {
            "type": "integer",
            "description": "Shows how much time the live stream is being recorded"
          },
          "poster": {
            "type": "string",
            "description": "URL of the uploaded poster"
          },
          "poster_thumb": {
            "type": "string",
            "description": "Reduced poster URL"
          },
          "broadcasts": {
            "type": "array",
            "description": "Information about a multicamera that uses this live stream. \nSee the field descriptions in the [Get all multicameras request](#operation/get_broadcasts)\n",
            "items": {
              "type": "object"
            }
          },
          "logo_player_id": {
            "type": "integer",
            "description": "ID of a custom player logo"
          },
          "overlay": {
            "type": "string",
            "description": "Overlay URL"
          }
        },
        "example": {
          "id": 12345,
          "name": "My first stream",
          "client_id": 777,
          "broadcasts_ids": [
            1,
            2
          ],
          "pull": true,
          "active": true,
          "uri": "rtmp://origin.server/origin_stream"
        }
      },
      "createStream": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Enter a live stream name"
          },
          "broadcast_ids": {
            "type": "array",
            "description": "Specify a list of multicamera IDs that will use this stream. \nGet the multicamera IDs via the [Get all multicameras request](#operation/get_broadcasts)\n",
            "items": {
              "type": "integer"
            }
          },
          "pull": {
            "type": "boolean",
            "description": "Specify a live stream type. Decide whether the live stream will be pulled or pushed.  \nChoose one of the values:\n* **true** — to pull the live stream\n* **false** — to push the live stream\n"
          },
          "active": {
            "type": "boolean",
            "description": "Enable or disable the live stream.  \nChoose one of the values:\n* **true** — to enable the live stream\n* **false** — to disable the live stream\n"
          },
          "auto_record": {
            "type": "boolean",
            "description": "Enable or disable the auto recording option.   \nChoose one of the values:\n* **true** — to enable the auto recording option\n* **false** — to disable the auto recording option \n  \nNote: \n* The option is paid. If you want to activate it for your account, contact the support team or your account manager\n"
          },
          "uri": {
            "type": "string",
            "description": "Enter a URL for pulling a live stream.  \nNote:\n* The field is required if `\"pull\": true`\n"
          },
          "dvr_enabled": {
            "type": "boolean",
            "description": "Enable or disable the DVR option.  \nChoose one of the values:\n* **true** — to enable DVR\n* **false** — to disable DVR  \n   \nNote: \n* The option is paid. If you want to activate it for your account, contact the support team or your account manager\n"
          },
          "cdn_id": {
            "type": "integer",
            "description": "Enter a CDN resource ID for live stream delivery"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Specify a custom user ID"
          },
          "low_latency_enabled": {
            "type": "boolean",
            "description": "Enable or disable the Low latency option.  \nChoose one of the values:\n* **true** — to enable the Low latency option\n* **false**  — to disable the Low latency option\n"
          },
          "projection": {
            "type": "string",
            "description": "Select a live stream projection format.  \nChoose one of the values:\n* **regular** — to play the live stream as usual\n* **vr360** — to play the live stream in 360 degree mode\n* **vr180** — to play the live stream in 180 degree mode\n* **vr360tb** — to play the live stream in 3D 360 degree mode Top-Bottom  \n    \nNote:\n* The default value is `regular`\n"
          }
        },
        "example": {
          "id": 12345,
          "name": "My first stream",
          "client_id": 777,
          "broadcasts_ids": [
            1,
            2
          ],
          "pull": true,
          "active": true,
          "uri": "rtmp://origin.server/origin_stream"
        }
      },
      "record": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Video ID"
          },
          "name": {
            "type": "string",
            "description": "Video name"
          },
          "description": {
            "type": "string",
            "description": "Description of the video which is not visible to the end users"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "duration": {
            "type": "integer",
            "description": "Video duration"
          },
          "slug": {
            "type": "string",
            "description": "Unique part of the video URL"
          },
          "status": {
            "type": "string",
            "description": "Video processing status.  \nHas one of the values:\n* **empty** — the video has not been uploaded\n* **pending** — the video is being processed\n* **viewable** — the video is being processed but can be viewed\n* **ready** — the video is ready for managing\n"
          },
          "share_url": {
            "type": "string",
            "description": "URL for video sharing added to the share button of the custom player. If the value is `null`, the share and social networks buttons are disabled"
          },
          "custom_iframe_url": {
            "type": "string",
            "description": "Custom iframe URL added to the share button of the custom player"
          },
          "origin_filename": {
            "type": "string",
            "description": "Video name that was set on the origin"
          },
          "origin_size": {
            "type": "integer",
            "description": "Video size that was set on the origin"
          },
          "origin_video_duration": {
            "type": "integer",
            "description": "Video duration that was set on the origin"
          },
          "origin_audio_channels": {
            "type": "integer",
            "description": "Number of audio channels that were set on the origin"
          },
          "origin_height": {
            "type": "integer",
            "description": "Video height that was set on the origin"
          },
          "origin_width": {
            "type": "integer",
            "description": "Video width that was set on the origin"
          },
          "screenshot_id": {
            "type": "integer",
            "description": "Auto generated screenshot ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "ID of the ad that is shown during the video"
          },
          "stream_id": {
            "type": "integer",
            "description": "Stream ID that was recorded and saved as video"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "recording_started_at": {
            "type": "string",
            "description": "Date and time when the recording was started (ISO 8601/RFC 3339 format)"
          },
          "projection": {
            "type": "string",
            "description": "Video projection format.  \nHas one of the values:\n* **regular** — the video plays as usual\n* **vr360** — the video plays in 360 degree mode\n* **vr180** — the video plays in 180 degree mode\n* **vr360tb** — the video plays in 3D 360 degree mode Top-Bottom  \nNote: \n* The default value is `regular`\n"
          },
          "player_id": {
            "type": "integer",
            "description": "Player ID chosen for the video"
          },
          "error": {
            "type": "string",
            "description": "Video processing errors"
          },
          "encryption": {
            "type": "string",
            "description": "Video encryption type.  \nReturns `null` if the video is not encrypted\n"
          },
          "directory_id": {
            "type": "integer",
            "description": "Folder ID containing the video. This folder is located in your account only"
          },
          "created_at": {
            "type": "string",
            "description": "Date and time when the video was uploaded (ISO 8601/RFC 3339 format)"
          },
          "updated_at": {
            "type": "string",
            "description": "Date and time when the video was updated (ISO 8601/RFC 3339 format)"
          },
          "hls_url": {
            "type": "string",
            "description": "HLS URL of the video delivered via CDN"
          },
          "dash_url": {
            "type": "string",
            "description": "DASH URL of the video delivered via CDN"
          },
          "poster_thumb": {
            "type": "string",
            "description": "Reduced poster URL"
          },
          "poster": {
            "type": "string",
            "description": "URL of the uploaded poster"
          },
          "screenshot": {
            "type": "string",
            "description": "URL of the chosen screenshot for the video screensaver"
          },
          "screenshots": {
            "type": "array",
            "description": "URLs of available screenshots for the video screensaver",
            "items": {
              "type": "string"
            }
          },
          "views": {
            "type": "integer",
            "description": "Number of video views"
          },
          "folders": {
            "type": "array",
            "description": "Tag information",
            "items": {
              "type": "object"
            }
          },
          "iframe_url": {
            "type": "string",
            "description": "Iframe URL of the video delivered via CDN"
          },
          "iframe_embed_code": {
            "type": "string",
            "description": "Iframe code to embed the video into your application"
          },
          "sprite": {
            "type": "string",
            "description": "Thumbnail sprite URL"
          },
          "sprite_vtt": {
            "type": "string",
            "description": "VTT file details"
          },
          "origin_url": {
            "type": "string",
            "description": "Video source URL"
          },
          "converted_videos": {
            "type": "array",
            "description": "Information about converted videos available for download",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "id": 12345,
          "name": "Stream Record: My first stream, 2023-07-27 08:52:07 UTC",
          "description": null,
          "client_id": 777,
          "duration": null,
          "slug": "SomeSlug",
          "status": "empty",
          "share_url": null,
          "custom_iframe_url": null,
          "origin_filename": null,
          "origin_size": null,
          "origin_storage": null,
          "origin_video_duration": null,
          "origin_audio_channels": null,
          "origin_height": null,
          "origin_width": null,
          "screenshot_id": 0,
          "ad_id": null,
          "stream_id": 12345,
          "client_user_id": null,
          "recording_started_at": "2023-07-27T08:51:19.000Z",
          "projection": "regular",
          "player_id": null,
          "error": null,
          "demo": null,
          "encryption": "inherit",
          "directory_id": null,
          "created_at": "2023-07-27T08:52:07.000Z",
          "updated_at": "2023-07-27T08:52:07.000Z",
          "hls_url": "https://my.cdn.resource/videos/777_SomeSlug/master.m3u8",
          "dash_url": "https://my.cdn.resource/videos/777_SomeSlug/manifest.mpd",
          "poster_thumb": null,
          "poster": null,
          "screenshot": null,
          "screenshots": [],
          "views": 0,
          "folders": [],
          "iframe_url": "https://my.cdn.resource/videos/777_SomeSlug",
          "iframe_embed_code": "<iframe width=\\560\\ height=\\315\\ src=\\https://my.cdn.resource/videos/777_SomeSlug\\ frameborder=\\0\\ allowfullscreen></iframe>",
          "sprite": null,
          "sprite_vtt": null,
          "origin_url": null,
          "converted_videos": []
        }
      },
      "GetAllSubtitles": {
        "type": "array",
        "items": {
          "properties": {
            "id": {
              "type": "integer",
              "description": "Subtitle ID"
            },
            "name": {
              "type": "string",
              "description": "Subtitle name"
            },
            "language": {
              "type": "string",
              "description": "Subtitle language in ISO 639-2 format"
            },
            "vtt": {
              "type": "string",
              "description": "Subtitle file contents"
            }
          },
          "example": {
            "id": 3221,
            "name": "My first subtitles",
            "language": "eng",
            "vtt": "1\\r\\n00:00:00,000 --> 00:00:05,000\\r\\nExample SRT Formatting\\r\\n\\r\\n2\\r\\n00:00:05,000 --> 00:00:20,000\\r\\nInsert your first line of text here, and don't forget to change the timestamps."
          }
        }
      },
      "GetSubtitles": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Subtitle ID"
          },
          "name": {
            "type": "string",
            "description": "Subtitle name"
          },
          "language": {
            "type": "string",
            "description": "Subtitle language in ISO 639-2 format"
          },
          "vtt": {
            "type": "string",
            "description": "Subtitle file contents"
          }
        },
        "example": {
          "id": 3221,
          "name": "My first subtitles",
          "language": "eng",
          "vtt": "1\\r\\n00:00:00,000 --> 00:00:05,000\\r\\nExample SRT Formatting\\r\\n\\r\\n2\\r\\n00:00:05,000 --> 00:00:20,000\\r\\nInsert your first line of text here, and don't forget to change the timestamps."
        }
      },
      "CreateSubtitles": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Enter a subtitle name"
          },
          "language": {
            "type": "string",
            "description": "Specify a subtitle language in ISO 639-2 format"
          },
          "vtt": {
            "type": "string",
            "description": "Add the contents of the subtitle file"
          }
        },
        "example": {
          "name": "My first subtitles",
          "language": "eng",
          "vtt": "1\\r\\n00:00:00,000 --> 00:00:05,000\\r\\nExample SRT Formatting\\r\\n\\r\\n2\\r\\n00:00:05,000 --> 00:00:20,000\\r\\nInsert your first line of text here, and don't forget to change the timestamps."
        }
      },
      "video": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Video ID"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "name": {
            "type": "string",
            "description": "Video name"
          },
          "description": {
            "type": "string",
            "description": "Description of the video which is not visible to the end users"
          },
          "duration": {
            "type": "integer",
            "description": "Video duration"
          },
          "status": {
            "type": "string",
            "description": "Video processing status.  \nHas one of the values:\n* **empty** — the video has not been uploaded\n* **pending** — the video is being processed\n* **viewable** — the video is being processed but can be viewed\n* **ready** — the video is ready for managing\n"
          },
          "slug": {
            "type": "string",
            "description": "Unique part of the video URL"
          },
          "hls_url": {
            "type": "string",
            "description": "HLS URL of the video delivered via CDN"
          },
          "dash_url": {
            "type": "string",
            "description": "DASH URL of the video delivered via CDN"
          },
          "share_url": {
            "type": "string",
            "description": "URL for video sharing added to the share button of the custom player. If the value is `null`, the share and social networks buttons are disabled"
          },
          "custom_iframe_url": {
            "type": "string",
            "description": "Custom iframe URL added to the share button of the custom player"
          },
          "origin_filename": {
            "type": "string",
            "description": "Video name that was set on the origin"
          },
          "origin_size": {
            "type": "integer",
            "description": "Video size that was set on the origin"
          },
          "origin_video_duration": {
            "type": "integer",
            "description": "Video duration that was set on the origin"
          },
          "origin_audio_channels": {
            "type": "integer",
            "description": "Number of audio channels that were set on the origin"
          },
          "origin_height": {
            "type": "integer",
            "description": "Video height that was set on the origin"
          },
          "origin_width": {
            "type": "integer",
            "description": "Video width that was set on the origin"
          },
          "screenshot_id": {
            "type": "integer",
            "description": "Auto generated screenshot ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "ID of the ad that is shown during the video"
          },
          "poster": {
            "type": "string",
            "description": "URL of the uploaded poster"
          },
          "poster_thumb": {
            "type": "string",
            "description": "Reduced poster URL"
          },
          "screenshot": {
            "type": "string",
            "description": "URL of the chosen screenshot for the video screensaver"
          },
          "screenshots": {
            "type": "array",
            "description": "URLs of available screenshots for the video screensaver"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "stream_id": {
            "type": "integer",
            "description": "Stream ID that was recorded and saved as video"
          },
          "recording_started_at": {
            "type": "string",
            "description": "Date and time when the recording was started (ISO 8601/RFC 3339 format)"
          },
          "player_id": {
            "type": "integer",
            "description": "Player ID chosen for the video"
          },
          "error": {
            "type": "string",
            "description": "Video processing errors"
          },
          "encryption": {
            "type": "string",
            "description": "Video encryption type.  \nReturns `null` if the video is not encrypted\n"
          },
          "directory_id": {
            "type": "integer",
            "description": "Folder ID containing the video. This folder is located in your account only"
          },
          "chapters": {
            "type": "string",
            "description": "Indicates whether a video is split into chapters for easy navigation\n"
          },
          "created_at": {
            "type": "string",
            "description": "Date and time when the video was uploaded (ISO 8601/RFC 3339 format)"
          },
          "updated_at": {
            "type": "string",
            "description": "Date and time when the video was updated (ISO 8601/RFC 3339 format)"
          },
          "projection": {
            "type": "string",
            "description": "Video projection format.  \nHas one of the values:\n* **regular** — the video plays as usual\n* **vr360** — the video plays in 360 degree mode\n* **vr180** — the video plays in 180 degree mode\n* **vr360tb** — the video plays in 3D 360 degree mode Top-Bottom  \nNote: \n* The default value is `regular`\n"
          },
          "views": {
            "type": "integer",
            "description": "Number of video views"
          },
          "folders": {
            "type": "array",
            "description": "Tag information",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Specify a tag ID"
                },
                "name": {
                  "type": "string",
                  "description": "Enter a tag name"
                },
                "color": {
                  "type": "integer",
                  "description": "Tag color number"
                }
              }
            }
          }
        },
        "example": {
          "id": 123456,
          "name": "Big Buck Bunny",
          "description": "Story of a giant rabbit",
          "client_id": 777,
          "slug": "SomeSlug",
          "duration": 180000,
          "status": "ready",
          "hls_url": "https://my.cdn.resource/videos/777_SomeSlug/master.m3u8",
          "dash_url": "https://my.cdn.resource/videos/777_SomeSlug/manifest.mpd"
        }
      },
      "createVideo": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Specify a video name"
          },
          "description": {
            "type": "string",
            "description": "Enter a description of the video which will not be visible to the end users"
          },
          "share_url": {
            "type": "string",
            "description": "Enter a URL for video sharing that will be added to the share button of the custom player"
          },
          "custom_iframe_url": {
            "type": "string",
            "description": "Enter a custom iframe URL that will be added to the share button of the custom player"
          },
          "origin_url": {
            "type": "string",
            "description": "Specify the URL of the source of the video you want to upload to our platform"
          },
          "ad_id": {
            "type": "integer",
            "description": "Specify the ID of the ad that will be shown during the video. \nGet the ad ID via the [Get all ads request](#operation/get_ads)\n"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Specify a custom user ID"
          },
          "poster": {
            "type": "string",
            "description": "Upload your poster image in base64 format"
          },
          "player_id": {
            "type": "integer",
            "description": "Specify a player ID for the video. \nGet the player ID via the [Get all players request](#operation/get_players)\n"
          },
          "encryption": {
            "type": "string",
            "description": "Specify a video encryption type.  \nEnter `null` if the video is not encrypted\n"
          },
          "directory_id": {
            "type": "integer",
            "description": "Specify a folder ID that will contain the video. This folder is located in your account only"
          },
          "projection": {
            "type": "string",
            "description": "Select the video projection format.  \nChoose one of the values:\n* **regular** — to play the video as usual\n* **vr360** — to play the video in 360 degree mode\n* **vr180** — to play the video in 180 degree mode\n* **vr360tb** — to play the video in 3D 360 degree mode Top-Bottom  \nNote:  \n* The default value is `regular`\n"
          },
          "chapters": {
            "type": "string",
            "description": "Split a video into chapters for easy navigation by adding a list of timestamps and titles. The first timestamp should start with 00:00, the next ones should be separated using \"\\r\\n\".\n**Example:** \"chapters\": \"00:00 Intro\\r\\n10:00 Outro\"\n"
          },
          "folders": {
            "type": "array",
            "description": "Specify tag information",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Specify a tag ID"
                },
                "name": {
                  "type": "string",
                  "description": "Enter a tag name"
                }
              }
            }
          }
        },
        "example": {
          "name": "Big Buck Bunny",
          "description": "Story of a giant rabbit",
          "origin_url": "http://origin.server/video.mp4",
          "ad_id": 2,
          "projection": "regular",
          "client_user_id": 888
        }
      },
      "createVideoResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Video ID"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "name": {
            "type": "string",
            "description": "Video name"
          },
          "description": {
            "type": "string",
            "description": "Description of the video which is not visible to the end users"
          },
          "duration": {
            "type": "integer",
            "description": "Video duration"
          },
          "status": {
            "type": "string",
            "description": "Video processing status.  \nHas one of the values:\n* **empty** — the video has not been uploaded\n* **pending** — the video is being processed\n* **viewable** — the video is being processed but can be viewed\n* **ready** — the video is ready for managing\n"
          },
          "slug": {
            "type": "string",
            "description": "Unique part of the video URL"
          },
          "hls_url": {
            "type": "string",
            "description": "HLS URL of the video delivered via CDN"
          },
          "dash_url": {
            "type": "string",
            "description": "DASH URL of the video delivered via CDN"
          },
          "share_url": {
            "type": "string",
            "description": "URL for video sharing added to the share button of the custom player. If the value is `null`, the share and social networks buttons are disabled"
          },
          "custom_iframe_url": {
            "type": "string",
            "description": "Custom iframe URL added to the share button of the custom player"
          },
          "origin_filename": {
            "type": "string",
            "description": "Video name that was set on the origin"
          },
          "origin_size": {
            "type": "integer",
            "description": "Video size that was set on the origin"
          },
          "origin_video_duration": {
            "type": "integer",
            "description": "Video duration that was set on the origin"
          },
          "origin_audio_channels": {
            "type": "integer",
            "description": "Number of audio channels that were set on the origin"
          },
          "origin_height": {
            "type": "integer",
            "description": "Video height that was set on the origin"
          },
          "origin_width": {
            "type": "integer",
            "description": "Video width that was set on the origin"
          },
          "screenshot_id": {
            "type": "integer",
            "description": "Auto generated screenshot ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "ID of the ad that is shown during the video"
          },
          "poster": {
            "type": "string",
            "description": "URL of the uploaded poster"
          },
          "poster_thumb": {
            "type": "string",
            "description": "Reduced poster URL"
          },
          "screenshot": {
            "type": "string",
            "description": "URL of the chosen screenshot for the video screensaver"
          },
          "screenshots": {
            "type": "array",
            "description": "URLs of available screenshots for the video screensaver"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom user ID"
          },
          "stream_id": {
            "type": "integer",
            "description": "Stream ID that was recorded and saved as video"
          },
          "recording_started_at": {
            "type": "string",
            "description": "Date and time when the recording was started (ISO 8601/RFC 3339 format)"
          },
          "player_id": {
            "type": "integer",
            "description": "Player ID chosen for the video"
          },
          "error": {
            "type": "string",
            "description": "Video processing errors"
          },
          "encryption": {
            "type": "string",
            "description": "Video encryption type.  \nReturns `null` if the video is not encrypted\n"
          },
          "chapters": {
            "type": "string",
            "description": "Indicates whether a video is split into chapters for easy navigation\n"
          },
          "directory_id": {
            "type": "integer",
            "description": "Folder ID containing the video. This folder is located in your account only"
          },
          "created_at": {
            "type": "string",
            "description": "Date and time when the video was uploaded (ISO 8601/RFC 3339 format)"
          },
          "updated_at": {
            "type": "string",
            "description": "Date and time when the video was updated (ISO 8601/RFC 3339 format)"
          },
          "projection": {
            "type": "string",
            "description": "Video projection format.  \nHas one of the values:\n* **regular** — the video plays as usual\n* **vr360** — the video plays in 360 degree mode\n* **vr180** — the video plays in 180 degree mode\n* **vr360tb** — the video plays in 3D 360 degree mode Top-Bottom  \nNote: \n* The default value is `regular`\n"
          },
          "views": {
            "type": "integer",
            "description": "Number of video views"
          },
          "folders": {
            "type": "array",
            "description": "Tag information",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Specify a tag ID"
                },
                "name": {
                  "type": "string",
                  "description": "Enter a tag name"
                }
              }
            }
          },
          "iframe_url": {
            "type": "string",
            "description": "Iframe URL of the video delivered via CDN"
          },
          "iframe_embed_code": {
            "type": "string",
            "description": "Iframe code to embed the video into your application"
          },
          "sprite": {
            "type": "string",
            "description": "Thumbnail sprite URL"
          },
          "sprite_vtt": {
            "type": "string",
            "description": "VTT file details"
          },
          "origin_url": {
            "type": "string",
            "description": "Video source URL"
          },
          "converted_videos": {
            "type": "array",
            "description": "Information about converted videos available for download",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Converted video ID"
                },
                "name": {
                  "type": "string",
                  "description": "Converted video Name"
                },
                "width": {
                  "type": "integer",
                  "description": "Converted video width"
                },
                "height": {
                  "type": "integer",
                  "description": "Converted video height"
                },
                "size": {
                  "type": "integer",
                  "description": "Converted video size in bytes"
                },
                "progress": {
                  "type": "integer",
                  "description": "Progress of video conversion in %"
                },
                "status": {
                  "type": "string",
                  "description": "Status of video conversion"
                },
                "error": {
                  "type": "string",
                  "description": "Errors during the video conversion"
                }
              }
            }
          }
        },
        "example": {
          "name": "Big Buck Bunny",
          "description": "Story of a giant rabbit",
          "client_id": 777,
          "slug": "SomeSlug",
          "origin_url": "http://origin.server/video.mp4",
          "ad_id": 2,
          "projection": "regular",
          "client_user_id": 888,
          "hls_url": "https://my.cdn.resource/videos/777_SomeSlug/master.m3u8",
          "dash_url": "https://my.cdn.resource/videos/777_SomeSlug/manifest.mpd"
        }
      },
      "searchVideo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Video ID"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "name": {
            "type": "string",
            "description": "Video name"
          },
          "description": {
            "type": "string",
            "description": "Description of the video which is not visible to the end users"
          },
          "duration": {
            "type": "integer",
            "description": "Video duration"
          },
          "status": {
            "type": "string",
            "description": "Video processing status.  \nHas one of the values:\n* **empty** — the video has not been uploaded\n* **pending** — the video is being processed\n* **viewable** — the video is being processed but can be viewed\n* **ready** — the video is ready for managing\n"
          },
          "slug": {
            "type": "string",
            "description": "Unique part of the video URL"
          },
          "share_url": {
            "type": "string",
            "description": "URL for video sharing added to the share button of the custom player. \nIf the value is `null`, the share and social networks buttons are disabled\n"
          },
          "custom_iframe_url": {
            "type": "string",
            "description": "Custom iframe URL added to the share button of the custom player"
          },
          "origin_filename": {
            "type": "string",
            "description": "Video name that was set on the origin"
          },
          "origin_size": {
            "type": "integer",
            "description": "Video size that was set on the origin"
          },
          "origin_video_duration": {
            "type": "integer",
            "description": "Video duration that was set on the origin"
          },
          "origin_audio_channels": {
            "type": "integer",
            "description": "Number of audio channels that were set on the origin"
          },
          "origin_height": {
            "type": "integer",
            "description": "Video height that was set on the origin"
          },
          "origin_width": {
            "type": "integer",
            "description": "Video width that was set on the origin"
          },
          "screenshot_id": {
            "type": "integer",
            "description": "Auto generated screenshot ID"
          },
          "ad_id": {
            "type": "integer",
            "description": "ID of the ad that is shown during the video"
          },
          "poster": {
            "type": "string",
            "description": "URL of the uploaded poster"
          },
          "poster_thumb": {
            "type": "string",
            "description": "Reduced poster URL"
          },
          "screenshot": {
            "type": "string",
            "description": "URL of the chosen screenshot for the video screensaver"
          },
          "screenshots": {
            "type": "array",
            "description": "URLs of available screenshots for the video screensaver"
          },
          "stream_id": {
            "type": "integer",
            "description": "ID of Live Stream object if this video was recorded"
          },
          "client_user_id": {
            "type": "integer",
            "description": "Custom field where you can specify user ID in your system"
          },
          "recording_started_at": {
            "type": "string",
            "description": "Date and time when the recording was started (ISO 8601/RFC 3339 format)"
          },
          "player_id": {
            "type": "integer",
            "description": "Player ID chosen for the video"
          },
          "error": {
            "type": "string",
            "description": "Video processing errors"
          },
          "encryption": {
            "type": "string",
            "description": "Video encryption type.  \nReturns `null` if the video is not encrypted\n"
          },
          "chapters": {
            "type": "string",
            "description": "Indicates whether a video is split into chapters for easy navigation\n"
          },
          "directory_id": {
            "type": "integer",
            "description": "Folder ID containing the video. This folder is located in your account only"
          },
          "created_at": {
            "type": "string",
            "description": "Date and time when the video was created (ISO 8601/RFC 3339 format)"
          },
          "updated_at": {
            "type": "string",
            "description": "Date and time when the video was updated (ISO 8601/RFC 3339 format)"
          },
          "projection": {
            "type": "string",
            "description": "Video projection format.  \nHas one of the values:\n* **regular** — the video plays as usual\n* **vr360** — the video plays in 360 degree mode\n* **vr180** — the video plays in 180 degree mode\n* **vr360tb** — the video plays in 3D 360 degree mode Top-Bottom  \nNote: \n* The default value is `regular`\n"
          },
          "views": {
            "type": "integer",
            "description": "Number of video views"
          },
          "folders": {
            "type": "array",
            "description": "Tag information",
            "items": {
              "type": "object"
            }
          },
          "audio_tracks": {
            "type": "string",
            "description": "Languages of the audio tracks. Returns `und` if the language has not been defined"
          },
          "rotation": {
            "type": "integer",
            "description": "Amount of degrees for video rotation"
          },
          "burn": {
            "type": "string",
            "description": "Information burnt into the video"
          },
          "upload_progress": {
            "type": "integer",
            "description": "Progress of video upload in %"
          },
          "media_info": {
            "type": "array",
            "description": "Media format and stream details",
            "items": {
              "type": "object"
            }
          }
        },
        "example": {
          "id": 12345,
          "name": "Big Buck Bunny",
          "description": "Story of a giant rabbit",
          "client_id": 777,
          "duration": 180022,
          "slug": "SomeSlug",
          "origin_size": 95734413,
          "created_at": "2023-07-18T13:44:42.000Z",
          "updated_at": "2023-07-24T07:19:30.000Z",
          "origin_height": 1080,
          "screenshots": [
            "https://origin.host/screenshots/777/12345_SomeSlug_1_1080.jpg",
            "https://origin.host/screenshots/777/12345_SomeSlug_2_1080.jpg",
            "https://origin.host/screenshots/777/12345_SomeSlug_3_1080.jpg",
            "https://origin.host/screenshots/777/12345_SomeSlug_4_1080.jpg",
            "https://origin.host/screenshots/777/12345_SomeSlug_5_1080.jpg"
          ],
          "screenshot_id": 0,
          "sprite": "https://origin.host/sprites/777/12345_SomeSlug_sprite.jpg",
          "ad_id": 2,
          "projection": "regular",
          "status": "ready",
          "client_user_id": 888,
          "stream_id": 1
        }
      },
      "getUrlAndTokenToUploadVideo": {
        "type": "object",
        "properties": {
          "servers": {
            "type": "array",
            "description": "Information about servers where you can upload a video",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Server ID"
                },
                "role": {
                  "type": "string",
                  "description": "Server role"
                },
                "hostname": {
                  "type": "string",
                  "description": "Server hostname that you will need for the upload URL"
                },
                "active": {
                  "type": "boolean",
                  "description": "Shows if the server is active"
                },
                "ssl": {
                  "type": "boolean",
                  "description": "Shows if the server has an SSL certificate"
                }
              }
            }
          },
          "token": {
            "type": "string",
            "description": "Token value"
          },
          "video": {
            "type": "object",
            "properties": {},
            "description": "Information about a created video. See the field descriptions in the [Get all videos request](#operation/get_api_videos)"
          }
        },
        "example": {
          "servers": [
            {
              "id": 1,
              "role": "upload",
              "hostname": "vod-uploader-m9-1.edgevideo.ru",
              "active": true,
              "ssl": true
            },
            {
              "id": 2,
              "role": "upload",
              "hostname": "vod-uploader-m9-2.edgevideo.ru",
              "active": true,
              "ssl": true
            }
          ],
          "token": "eyJhbGc9.eyJkYXRhIjp7ImlkIjo2lbnRfaWQiOjiOiJ",
          "video": {
            "name": "Big Buck Bunny",
            "description": "Story of a giant rabbit",
            "client_id": 777,
            "slug": "SomeSlug",
            "hls_url": "https://my.cdn.resource/videos/777_SomeSlug/master.m3u8",
            "dash_url": "https://my.cdn.resource/videos/777_SomeSlug/manifest.mpd"
          }
        }
      },
      "get_webhooks_configuration": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Webhook configuration ID"
          },
          "client_id": {
            "type": "integer",
            "description": "Account ID"
          },
          "active": {
            "type": "boolean",
            "description": "Shows if the webhook sending is enabled.\n\nHas one of the values:\n* __true__ — the webhook sending is enabled\n* __false__ — the webhook sending is disabled\n\nThe default value is **false**\n"
          },
          "url": {
            "type": "string",
            "description": "URL to which the notifications are sent"
          },
          "mtls": {
            "type": "boolean",
            "description": "Indicates whether the mTLS authentication is enabled.\n\nHas one of the values:\n* __true__ — the mTLS authentication is enabled\n* __false__ — the mTLS authentication is disabled\n\nThe default value is **false**\n"
          },
          "ssl_client_cert": {
            "type": "string",
            "description": "SSL certificate"
          },
          "ssl_client_key": {
            "type": "string",
            "description": "SSL private key"
          },
          "ssl_key_passphrase": {
            "type": "string",
            "description": "Key passphrase"
          },
          "ssl_client_file": {
            "type": "string",
            "description": "CA certificate"
          },
          "verify_ssl": {
            "type": "boolean",
            "description": "Indicates whether the SSL verification is enabled.\n\nHas one of the values:\n* __true__ — the SSL verification is enabled\n* __false__ — the SSL verification is disabled\n\nThe default value is **false**\n"
          },
          "created_at": {
            "type": "string",
            "description": "Date and time when the webhook configuration was created (ISO 8601/RFC 3339 format)"
          },
          "updated_at": {
            "type": "string",
            "description": "Date and time when the webhook configuration was updated (ISO 8601/RFC 3339 format)"
          }
        },
        "example": {
          "id": 10,
          "client_id": 102353,
          "active": true,
          "url": "https://webhooks.receiver/in",
          "mtls": true,
          "ssl_client_cert": "-----BEGIN CERTIFICATE-----\\r\\nMIICrTCCAZUCFHEnWAeg/+dOCeUCTjwXdtLtbMbNMA0GCSqGSIb3DQEBCwUAMBEx\\r\\noSSREMcq4w0mAX0c780tULM=\\r\\n-----END CERTIFICATE-----",
          "ssl_client_key": "-----BEGIN PRIVATE KEY-----\\r\\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCtAMb4IlatCAaf\\r\\nqtLTxiYzPdSW3DG3p7OgFg==\\r\\n-----END PRIVATE KEY-----",
          "ssl_key_passphrase": null,
          "ssl_client_file": "-----BEGIN CERTIFICATE-----\\r\\nMIIDBTCCAe2gAwIBAgIUfO838xA7ClqkebiWUTnilrGRINYwDQYJKoZIhvcNAQEL\\r\\nfYjH9zDRgKEU\\r\\n-----END CERTIFICATE-----",
          "verify_ssl": true,
          "created_at": "2024-01-01T08:00:00.000Z",
          "updated_at": "2024-01-01T10:00:00.000Z"
        }
      },
      "post_webhooks_configuration": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Enable or disable the webhook sending.\n\nChoose one of the values:\n* __true__ — to enable the webhook sending\n* __false__ — to disable the webhook sending\n\nThe default value is **false**\n"
          },
          "url": {
            "type": "string",
            "description": "Enter the URL where the notifications will be sent"
          },
          "mtls": {
            "type": "boolean",
            "description": "Enable or disable the mTLS authentication.\n\nChoose one of the values:\n* __true__ — to enable the mTLS authentication\n* __false__ — to disable the mTLS authentication\n\nThe default value is **false**\n"
          },
          "ssl_client_cert": {
            "type": "string",
            "description": "Enter the public part of the SSL certificate. Add all the certificate chains.\n\nNote:\n  * Each certificate chain should be separated by '\\n', as shown in the example\n"
          },
          "ssl_client_key": {
            "type": "string",
            "description": "Enter the private key of the SSL certificate.\n\nNote:\n  * The private key should be separated by '\\n', as shown in the example\n"
          },
          "ssl_key_passphrase": {
            "type": "string",
            "description": "Enter the key passphrase if you used it to generate the certificate. If you did not use the passphrase to generate the certificate, leave this field blank"
          },
          "ssl_client_file": {
            "type": "string",
            "description": "Enter the CA certificate. Add all the certificate chains.\n\nNote:\n  * Each certificate chain should be separated by '\\n', as shown in the example\n"
          },
          "verify_ssl": {
            "type": "boolean",
            "description": "Enable or disable the SSL verification. Enable the option if you are using a self-signed SSL certificate that may not pass some checks.\n\nChoose one of the values:\n* __true__ — to enable the SSL verification\n* __false__ — to disable the SSL verification\n\nThe default value is **false**\n"
          }
        },
        "example": {
          "active": true,
          "url": "https://webhooks.receiver/in",
          "mtls": true,
          "ssl_client_cert": "-----BEGIN CERTIFICATE-----\\r\\nMIICrTCCAZUCFHEnWAeg/+dOCeUCTjwXdtLtbMbNMA0GCSqGSIb3DQEBCwUAMBEx\\r\\noSSREMcq4w0mAX0c780tULM=\\r\\n-----END CERTIFICATE-----",
          "ssl_client_key": "-----BEGIN PRIVATE KEY-----\\r\\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCtAMb4IlatCAaf\\r\\nqtLTxiYzPdSW3DG3p7OgFg==\\r\\n-----END PRIVATE KEY-----",
          "ssl_key_passphrase": null,
          "ssl_client_file": "-----BEGIN CERTIFICATE-----\\r\\nMIIDBTCCAe2gAwIBAgIUfO838xA7ClqkebiWUTnilrGRINYwDQYJKoZIhvcNAQEL\\r\\nfYjH9zDRgKEU\\r\\n-----END CERTIFICATE-----",
          "verify_ssl": true
        }
      },
      "patch_webhooks_configuration": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Enable or disable the webhook sending.\n\nChoose one of the values:\n* __true__ — to enable the webhook sending\n* __false__ — to disable the webhook sending\n\nThe default value is **false**\n"
          },
          "url": {
            "type": "string",
            "description": "Enter the URL where the notifications will be sent"
          },
          "mtls": {
            "type": "boolean",
            "description": "Enable or disable the mTLS authentication.\n\nChoose one of the values:\n* __true__ — to enable the mTLS authentication\n* __false__ — to disable the mTLS authentication\n\nThe default value is **false**\n"
          },
          "ssl_client_cert": {
            "type": "string",
            "description": "Enter the public part of the SSL certificate. Add all the certificate chains.\n\nNote:\n  * Each certificate chain should be separated by '\\n', as shown in the example\n"
          },
          "ssl_client_key": {
            "type": "string",
            "description": "Enter the private key of the SSL certificate\n\nNote:\n  * The private key should be separated by '\\n', as shown in the example\n"
          },
          "ssl_key_passphrase": {
            "type": "string",
            "description": "Enter the key passphrase if you used it to generate the certificate. If you did not use the passphrase to generate the certificate, leave this field blank"
          },
          "ssl_client_file": {
            "type": "string",
            "description": "Enter the CA certificate. Add all the certificate chains.\n\nNote:\n  * Each certificate chain should be separated by '\\n', as shown in the example\n"
          },
          "verify_ssl": {
            "type": "boolean",
            "description": "Enable or disable the SSL verification. Enable the option if you are using a self-signed SSL certificate that may not pass some checks.\n\nChoose one of the values:\n* __true__ — to enable the SSL verification\n* __false__ — to disable the SSL verification\n\nThe default value is **false**\n"
          }
        },
        "example": {
          "active": true,
          "url": "https://new_webhooks.receiver/in"
        }
      }
    },
    "responses": {
      "error_bad_request": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/stats_error_common"
            },
            "examples": {
              "missingParam": {
                "summary": "Missing query param",
                "value": {
                  "data": [],
                  "errors": [
                    "from: query param is not set"
                  ]
                }
              }
            }
          }
        }
      },
      "error_internal_server": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/stats_error_common"
            },
            "examples": {
              "internalServerError": {
                "summary": "Internal Server Error",
                "value": {
                  "data": [],
                  "errors": [
                    "internal server error"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "headers": {
      "X-Page": {
        "description": "Page number",
        "schema": {
          "type": "integer"
        },
        "example": 1
      },
      "X-Per-Page": {
        "description": "Number of fetched items per page",
        "schema": {
          "type": "integer"
        },
        "example": 25
      },
      "X-Total": {
        "description": "Total number of available items",
        "schema": {
          "type": "integer"
        },
        "example": 100
      },
      "X-Total-Pages": {
        "description": "Total number of pages, based on the value of the **per_page** parameter",
        "schema": {
          "type": "integer"
        },
        "example": 4
      }
    },
    "securitySchemes": {
      "APIKey": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "To get access to our API, you need to have an account registered. Sign up if you don't have one.  \n\nMost API requests require an API token which is a unique key that allows you to interact with our services. Additionally, it helps the API check if the user is allowed to perform the action.  \n\nUse a permanent [API token](https://accounts.edgecenter.ru/profile/api-tokens) for regular automated requests. You can set its validity period when creating it or issue a token for an unlimited time. Please address the API documentation of the specific product in order to check if it supports API tokens.  \n\nYou can send only 5 requests per second.  \n\nTo manage services, add your permanent API token after **APIKey** in the **Authorization** header.  \n```\n'Authorization: APIKey eyJ0eXAiOiJKV'\n```\n**Important!** When authorizing via SAML SSO, be informed that our system does not have any information about permissions given to the user by the identity provider. Even if the provider revokes the user's access rights, their tokens remain active. Therefore, if necessary, the token will need to be deleted manually.\n"
      }
    }
  }
}