openapi: 3.0.3 info: title: Wowza Streaming Engine REST advanced_token_authentication vod_streams API description: Complete REST API for Wowza Streaming Engine. Auto-converted from Swagger 1.2 (http://localhost:8089/swagger.json) to OpenAPI 3.0.3 for public documentation. version: 2.0.0 contact: name: Wowza Media Systems url: https://www.wowza.com/docs/wowza-streaming-engine-rest-api license: name: Wowza Media Systems url: https://www.wowza.com servers: - url: http://localhost:8087 description: Wowza Streaming Engine Server security: - basicAuth: [] tags: - name: vod_streams description: "
The VOD stream operations are deprecated in 2.0. Use the /videos endpoints instead.
\n\nOperations related to video on demand (VOD) streams, which are created through the ``/live_streams`` or ``/transcoders`` resources. A VOD stream is a recording of a live stream that viewers can replay at a later date. After the broadcast is over and the live stream or transcoder is stopped, Wowza Video creates the VOD stream and generates a playback URL. See [About VOD Streams](https://www.wowza.com/docs/create-a-vod-stream#about-vod-streams) to learn more." x-displayName: VOD Streams paths: /vod_streams: get: summary: Fetch all VOD streams description: '
The VOD streams operations are deprecated in 2.0. Use the /videos endpoints instead.
(Available from version 1.5) This operation shows limited details for VOD streams. For detailed information, fetch a single VOD stream.' operationId: listVODStreams tags: - vod_streams parameters: - $ref: '#/components/parameters/filter' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/vod_streams\n" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/vod_streams';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n" responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/vod_streams' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' /vod_streams/{id}: get: summary: Fetch a VOD stream description: '
The VOD stream operations are deprecated in 2.0. Use the /videos endpoints instead.
(Available from version 1.5) This operation shows the details of a specific VOD stream.' operationId: showVODStream tags: - vod_streams x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"GET\" \\\n \"${WV_HOST}/api/v2.0/vod_streams/1kfgc39\"\n" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/vod_streams/1kfgc39';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n var body = '';\n res.on('data', function(data){\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\n" parameters: - name: id in: path required: true description: The unique alphanumeric string that identifies the VOD stream. schema: type: string responses: '200': description: Success content: application/json: schema: type: object required: - vod_stream properties: vod_stream: $ref: '#/components/schemas/vod_stream' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' '410': description: Gone content: application/json: schema: $ref: '#/components/schemas/Error410' patch: summary: Update a VOD stream description: '
The VOD stream operations are deprecated in 2.0. Use the /videos endpoints instead.
(Available from version 1.5) This operation updates a VOD stream.' operationId: updateVODStream tags: - vod_streams x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"PATCH\" \\\n \"${WV_HOST}/api/v2.0/vod_streams/1kfgc39\" \\\n -d $'{\n \"vod_stream\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}'\n" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/vod_streams/1kfgc39';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname',\n path: path,\n method: 'PATCH',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nconst req = https.request(options, function(res) {\n var body = '';\n res.on('data', function(data) {\n body += data;\n });\n res.on('end', function() {\n console.log(JSON.parse(body));\n });\n}).on('error', function(e) {\n console.log(e.message);\n});\nreq.write(JSON.stringify({\n \"vod_stream\": {\n \"property\": \"My Value\",\n \"...\": \"...\"\n }\n}));\nreq.end();\n" parameters: - name: id in: path required: true description: The unique alphanumeric string that identifies the VOD stream. schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/vod_stream_update_input' description: Provide the details of the VOD stream to update in the body of the request. required: true responses: '200': description: Success content: application/json: schema: type: object required: - vod_stream properties: vod_stream: $ref: '#/components/schemas/vod_stream' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' '410': description: Gone content: application/json: schema: $ref: '#/components/schemas/Error410' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error422' delete: summary: Delete a VOD stream description: '
The VOD stream operations are deprecated in 2.0. Use the /videos endpoints instead.
(Available from version 1.5) This operation deletes a VOD stream.

Note: You can''t remove VOD streams that have an asset_id. Assets must be removed by sending a DEL request to the /assets endpoint. ' operationId: deleteVODStream tags: - vod_streams x-codeSamples: - lang: Shell source: "// Using cURL\ncurl -H \"Authorization: Bearer ${WV_JWT}\" \\\n \n -H \"Content-Type: application/json\" \\\n -X \"DELETE\" \\\n \"${WV_HOST}/api/v2.0/vod_streams/1kfgc39\"\n" - lang: JavaScript source: "// Using Node.js\nconst https = require('https');\nconst crypto = require('crypto');\nvar hostname = 'api.video.wowza.com'\nvar path = '/api/v2.0/vod_streams/1kfgc39';\n//For security, never reveal API token in client-side code\nvar wvJWT = 'Bearer [your JWT]';\n\nconst options = {\n hostname: hostname,\n path: path,\n method: 'DELETE',\n headers: {\n 'Authorization': wvJWT,\n 'Content-Type': 'application/json'\n }\n};\nhttps.get(options, function(res) {\n // no data being returned, just: 204 NO CONTENT\n console.log(res.statusCode);\n}).on('error', function(e) {\n console.log(e.message);\n});\n" parameters: - name: id in: path required: true description: The unique alphanumeric string that identifies the VOD stream. schema: type: string responses: '204': description: No Content '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' '410': description: Gone content: application/json: schema: $ref: '#/components/schemas/Error410' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error422' components: schemas: Error403: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 403 code: ERR-403-RecordUnaccessible title: Record Unaccessible Error message: The requested resource isn't accessible. description: '' links: [] Error401: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 401 code: ERR-401-NoApiKey title: No API Key Error message: No API key sent in header. description: '' links: [] Example Response 2: meta: status: 401 code: ERR-401-NoAccessKey title: No Access Key Error message: No access key sent in header. description: '' links: [] Example Response 3: meta: status: 401 code: ERR-401-InvalidApiKey title: Invalid Api Key Error message: Invalid API key. description: '' links: [] Example Response 4: meta: status: 401 code: ERR-401-InvalidAccessKey title: Invalid Access Key Error message: Invalid access key. description: '' links: [] Example Response 5: meta: status: 401 code: ERR-401-BadAccountStatus title: Bad Account Status Error message: Your account's status doesn't allow this action. description: '' links: [] Example Response 6: meta: status: 401 code: ERR-401-FeatureNotEnabled title: Feature Not Enabled Error message: This feature isn't enabled. description: '' links: [] Example Response 7: meta: status: 401 code: ERR-401-TrialExceeded title: Bad Billing Status Error message: Your billing status needs attention. You can't start or add live streams until your billing status is updated. description: '' links: [] Example Response 8: meta: status: 401 code: ERR-401-ExpiredToken title: JWT is expired message: Token has exired. description: '' links: [] Example Response 9: meta: status: 401 code: ERR-401-InvalidToken title: JWT is invalid message: Token is invalid. description: '' links: [] Error422: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 422 code: ERR-422-RecordInvalid title: Record Invalid Error message: The request couldn't be processed. ... can't be blank description: '' links: [] Example Response 2: meta: status: 422 code: ERR-422-RecordInvalid title: Record Invalid Error message: The request couldn't be processed. Provider wowza_video is not allowed description: '' links: [] Example Response 3: meta: status: 422 code: ERR-422-InvalidStateChange title: Invalid State Change Error message: The request couldn't be processed. There must be at least one WebRTC output for this transcoder. description: '' links: [] Example Response 4: meta: status: 422 code: ERR-422-RecordInvalid title: Record Invalid Error message: API cannot remove the primary Output Stream Target with the ID of from the Live Stream . description: '' links: [] Example Response 5: meta: status: 422 code: ERR-422-InvalidStateChange title: Invalid State Change Error message: The request couldn't be processed. The broadcast location can't be updated when using autostart. description: '' links: [] Error410: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 410 code: ERR-410-RecordDeleted title: Record Deleted Error message: The requested resource has been deleted. description: '' links: [] vod_streams: type: object description: '' required: - vod_streams properties: vod_streams: type: array items: type: object title: vod_streams description: '' properties: id: type: string description: The unique alphanumeric string that identifies the VOD stream. example: '' name: type: string description: A descriptive name for the VOD stream. Maximum 200 characters. example: '' state: type: string description: The state of the VOD stream. example: '' enum: - processing - completed - failed playback_enabled: type: boolean description: Specifies whether playback is enabled for the VOD stream. example: '' enum: - true - false reason: type: string description: The reason that a VOD stream has the state of **failed**. Only returned when the state is **failed**. example: '' created_at: type: string description: The date and time that the VOD stream was created. example: '' updated_at: type: string description: The date and time that the VOD stream was updated. example: '' example: vod_streams: - id: wdjfqvsv name: My VOD Stream 1 state: failed playback_enabled: false created_at: '2020-02-25T17:16:25.849Z' updated_at: '2020-01-28T16:06:47.849Z' - id: XyxZKqHO name: My VOD Stream 2 state: completed playback_enabled: true created_at: '2020-01-29T17:16:21.849Z' updated_at: '2020-01-31T02:26:05.849Z' - id: Pz21DRSt name: My VOD Stream 3 state: completed playback_enabled: true created_at: '2020-01-29T17:16:21.849Z' updated_at: '2020-01-30T18:13:18.849Z' vod_stream_update_input: type: object description: '' required: - vod_stream properties: vod_stream: type: object title: vod_stream description: '' required: - name properties: name: type: string description: 'A descriptive name for the VOD stream. Maximum 200 characters. **Example:** "name": "My updated VOD stream"' example: My VOD Stream 1 playback_enabled: type: boolean description: 'Specifies whether playback is enabled for the VOD stream. **Example:** "playback_enabled": true' example: true enum: - true - false Error404: type: object description: '' required: - meta properties: meta: type: object title: meta description: '' properties: status: type: integer description: '' example: '' format: int32 code: type: string description: '' example: '' title: type: string description: '' example: '' message: type: string description: '' example: '' description: type: string description: '' example: '' links: type: array description: '' example: '' items: {} example: Example Response 1: meta: status: 404 code: ERR-404-RecordNotFound title: Record Not Found Error message: The requested resource couldn't be found. description: '' links: [] vod_stream: type: object description: '' properties: asset_id: type: string description: Only applies to VOD streams created for Asset Management. The id for the asset associated with your VOD stream. You can manage your asset in Asset Management. created_at: type: string description: The date and time that the VOD stream was created. example: '' format: date-time duration: type: integer description: The duration of the VOD stream. end_segment: type: integer description: The media sequence number of the last media segment in the chunklist. example: '' id: type: string description: The unique alphanumeric string that identifies the VOD stream. example: '' name: type: string description: A descriptive name for the VOD stream. Maximum 200 characters. example: '' percent_complete: type: integer description: The processing progress of the VOD stream. example: '' playback_enabled: type: boolean description: Specifies whether playback is enabled for the VOD stream. example: '' enum: - true - false playback_url: type: string description: The address that can be used to configure playback of the VOD stream. example: '' reason: type: string description: The reason that a VOD stream has the state of **failed**. Only returned when the state is **failed**. example: '' size: type: integer description: The size of the VOD stream. example: '' started_at: type: string description: The date and time that the stream was started. example: '' format: date-time start_segment: type: integer description: The media sequence number of the first media segment in the chunklist. example: '' state: type: string description: The state of the VOD stream. example: '' enum: - processing - completed - failed stream_target_id: type: integer description: The unique alphanumeric string that identifies the stream target associated with the VOD stream. example: '' source: type: string description: The source from which the VOD stream was created. The default is **live**. example: '' type: type: string description: The VOD stream type. example: '' updated_at: type: string description: The date and time that the VOD stream was updated. example: '' format: date-time uptime_id: type: string description: The unique identifier associated with a specific uptime period of a transcoder. example: '' example: created_at: '2020-02-12T19:20:46.000Z' duration: 480 end_segment: 48 id: lmp0vwrd name: MyVODStream percent_complete: 100 playback_enabled: true playback_url: https://wowzasubdomain/1/RmlPcnpsM0Z1Nzd2/SFhkUXlv/hls/live/playlist.m3u8 size: 98154424 started_at: '2020-01-21T17:18:05.000Z' start_segment: 1 state: completed stream_target_id: xcslyxf0 source: live type: Original updated_at: '2020-02-20T06:12:39.956Z' uptime_id: abcd1234 parameters: filter: name: filter in: query description: 'Restricts the data that gets returned by filtering on one or more values associated with a field. Construct a filter using a two-part expression that specifies the field on which to filter and the logic to use to filter. Filters use a zero-based index. For valid filter operators and filter fields, see [How to get filtered query results with the Wowza Video REST API](https://www.wowza.com/docs/how-to-get-filtered-query-results-with-the-wowza-video-rest-api). Example: **filter[0][field]=state&filter[0][eq]=stopped**' schema: type: string page: name: page in: query description: "Returns a paginated view of results from the HTTP request. Specify a positive integer to indicate which page of the results should be displayed. The default is **1**. \n\n For more information and examples, see [Get paginated query results with the Wowza Video REST API](https://www.wowza.com/docs/how-to-get-paginated-query-results-with-the-wowza-video-rest-api)." schema: type: integer per_page: name: per_page in: query description: For use with the *page* parameter. Indicates how many records should be included in a page of results. A valid value is any positive integer. The default and maximum value is **1000**. schema: type: integer securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic Authentication using Wowza Streaming Engine admin credentials digestAuth: type: http scheme: digest description: HTTP Digest Authentication