Wowza usage_vod_streams API

The VOD stream operations are deprecated in 2.0. Operations related to video on demand (VOD) stream analytics.

OpenAPI Specification

wowza-usage-vod-streams-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Wowza Streaming Engine REST advanced_token_authentication usage_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: usage_vod_streams
  description: '<blockquote>The <strong>VOD stream</strong> operations are deprecated in 2.0.


    Operations related to video on demand (VOD) stream analytics.'
  x-displayName: VOD Streams (Usage)
paths:
  /usage/vod_streams:
    get:
      summary: Fetch usage for all VOD streams
      description: "The <strong>VOD stream</strong> operations are deprecated in 2.0. \n\nThis operation returns detailed CDN usage data for all VOD streams in the account. *CDN usage* is the amount of data that went through every Fastly stream target, including unique viewers, viewing time, and bytes of content."
      operationId: usageVODStreamsIndex
      tags:
      - usage_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/usage/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/usage/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"
      parameters:
      - name: from
        in: query
        required: false
        description: 'The start of the range of time you want to view. Specify **YYYY-MM-DD HH:00:00** where **HH** is a 24-hour clock in UTC. The range doesn''t include minutes and seconds and rounds minutes up to the hour. The maximum difference between **from** and **to** is 90 days. If you set the **from** query parameter without setting the **to** query parameter, the data returned will reflect 90 days starting at the **from** date, or data up to to the current day, whichever is shorter.


          You can also specify **last_bill_date**.


          **Default**: last billing date'
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: 'The end of the range of time you want to view. Specify **YYYY-MM-DD HH:00:00** where **HH** is a 24-hour clock in UTC. The range doesn''t include minutes and seconds and rounds minutes up to the hour. The maximum difference between **from** and **to** is 90 days. If you set the **to** query parameter without setting the **from** query parameter, the data returned will be from the past 90 days or from your last invoice date, whichever is shorter.


          You can also specify **last_bill_date**.


          **Default**: end of the current day'
        schema:
          type: string
          format: date-time
      - $ref: '#/components/parameters/next_page_key'
      - $ref: '#/components/parameters/per_page_2.0'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/usage_vod_streams'
        '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'
  /usage/vod_streams/{id}:
    get:
      summary: Fetch usage for a single VOD stream
      description: 'The <strong>VOD stream</strong> operations are deprecated in 2.0.


        This operation returns CDN usage details for a specific VOD stream. *CDN usage* is the amount of data that went through every Fastly stream target, including unique viewers, viewing time, and bytes of content.'
      operationId: showUsageVODStream
      tags:
      - usage_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/usage/vod_streams/1ndgfc11\"\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/usage/vod_streams/1ndgfc11';\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
      - name: from
        in: query
        required: false
        description: 'The start of the range of time you want to view. Specify **YYYY-MM-DD HH:00:00** where **HH** is a 24-hour clock in UTC. The range doesn''t include minutes and seconds and rounds minutes up to the hour. The maximum difference between **from** and **to** is 90 days. If you set the **from** query parameter without setting the **to** query parameter, the data returned will reflect 90 days starting at the **from** date, or data up to to the current day, whichever is shorter.


          You can also specify **last_bill_date**.


          **Default**: last billing date'
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: 'The end of the range of time you want to view. Specify **YYYY-MM-DD HH:00:00** where **HH** is a 24-hour clock in UTC. The range doesn''t include minutes and seconds and rounds minutes up to the hour. The maximum difference between **from** and **to** is 90 days. If you set the **to** query parameter without setting the **from** query parameter, the data returned will be from the past 90 days or from your last invoice date, whichever is shorter.


          You can also specify **last_bill_date**.


          **Default**: end of the current day'
        schema:
          type: string
          format: date-time
      - name: include
        in: query
        required: false
        description: 'Specify the data you want returned in the response. You can send a comma-separated list of values.


          Valid value is: **trend**.


          Example:

          **trend**'
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/usage_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'
  /usage/vod_streams/summary:
    get:
      summary: Fetch VOD stream usage summary
      description: 'The <strong>VOD stream</strong> operations are deprecated in 2.0.


        This operation returns a summary of CDN usage for all VOD streams in the account. *CDN usage* is the amount of data that went through every Fastly stream target, including unique viewers, viewing time, and bytes of content.'
      operationId: summmaryUsageVODStream
      tags:
      - usage_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/usage/vod_streams/summary\"\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/usage/vod_streams/summary';\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: from
        in: query
        required: false
        description: 'The start of the range of time you want to view. Specify **YYYY-MM-DD HH:00:00** where **HH** is a 24-hour clock in UTC. The range doesn''t include minutes and seconds and rounds minutes up to the hour. The maximum difference between **from** and **to** is 90 days. If you set the **from** query parameter without setting the **to** query parameter, the data returned will reflect 90 days starting at the **from** date, or data up to to the current day, whichever is shorter.


          You can also specify **last_bill_date**.


          **Default**: last billing date'
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: 'The end of the range of time you want to view. Specify **YYYY-MM-DD HH:00:00** where **HH** is a 24-hour clock in UTC. The range doesn''t include minutes and seconds and rounds minutes up to the hour. The maximum difference between **from** and **to** is 90 days. If you set the **to** query parameter without setting the **from** query parameter, the data returned will be from the past 90 days or from your last invoice date, whichever is shorter.


          You can also specify **last_bill_date**.


          **Default**: end of the current day'
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/usage_vod_stream_summary'
        '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:
    usage_vod_stream_summary:
      type: object
      description: ''
      properties:
        summary:
          type: object
          title: summary
          description: ''
          properties:
            viewing_seconds:
              type: integer
              description: The total length of time, in seconds, that the stream was played at the target. May be longer than the duration of the stream.
              example: ''
              format: int32
            viewing_bytes:
              type: integer
              description: The amount of content, in bytes, that went through the stream target during the selected time frame.
              example: ''
              format: int32
            egress_seconds:
              type: integer
              description: The amount of time, in seconds, that it took for the stream to be processed.
              example: ''
            egress_bytes:
              type: integer
              description: The amount of content, in bytes, that Wowza CDN on Fastly pulled from storage during the selected time frame.
              example: ''
              format: int32
        limits:
          type: object
          description: The time frame represented in the response.
          properties:
            from:
              type: string
              description: The start of the range of time represented in the response.
              example: ''
              format: date-time
            to:
              type: string
              description: The end of the range of time represented in the response.
              example: ''
              format: date-time
      example:
        summary:
          viewing_seconds: 67925498
          viewing_bytes: 22886
          egress_seconds: 6348
          egress_bytes: 1928166892
        limits:
          from: '2021-01-07T00:00:00.000Z'
          to: '2021-10-05T00:00:00.000Z'
    usage_vod_stream:
      type: object
      description: ''
      properties:
        vod_stream:
          type: object
          title: vod_stream
          description: ''
          properties:
            id:
              type: string
              description: The unique alphanumeric string that identifies the VOD stream.
              format: int32
            name:
              type: string
              description: A descriptive name for the VOD stream. Maximum 255 characters.
              example: ''
            archived:
              type: boolean
              description: A value of **true** indicates that the VOD stream has been removed from Wowza Video.
            type:
              type: string
              description: '**fastly** is a Wowza CDN on Fastly target.'
              example: ''
              enum:
              - fastly
            viewing_seconds:
              type: integer
              description: The total length of time, in seconds, that the stream was played at the target. May be longer than the duration of the stream.
              example: ''
              format: int32
            viewing_bytes:
              type: integer
              description: The amount of content, in bytes, that went through the stream target during the selected time frame.
              example: ''
              format: int32
            egress_bytes:
              type: integer
              description: The amount of content, in bytes, that Wowza CDN on Fastly pulled from storage during the selected time frame.
              example: ''
            egress_seconds:
              type: integer
              description: The amount of time, in seconds, that it took for the stream to be processed.
              example: ''
            trend:
              type: object
              title: Array of viewer trends
              description: 'An array of viewer trend data. The granularity of sampled data changes based on the from and to query values you use:


                Requests made for data within the past 30 days, return the following sample intervals: <ul><li>0 minutes to 3 hours - Samples returned per minute</li> <li>3 hours, 1 second to 24 hours - Samples returned per hour</li> <li>24 hours, 1 second to 90 days - Samples returned per day</li></ul>


                <strong>Defaults</strong>: from = last billing date, to = end of current day'
              properties:
                sampled_at:
                  type: string
                  description: The date and time the trend data was sampled.
                  format: date-time
                viewing_seconds:
                  type: integer
                  description: The total length of time, in seconds, that the stream was played at the target. May be longer than the duration of the stream.
                  example: ''
                  format: int32
                viewing_bytes:
                  type: integer
                  description: The amount of content, in bytes, that went through the transcoder during the selected time frame.
                  example: ''
                  format: int32
        limits:
          type: object
          description: The time frame represented in the response.
          properties:
            from:
              type: string
              description: The start of the range of time represented in the response.
              example: ''
              format: date-time
            to:
              type: string
              description: The end of the range of time represented in the response.
              example: ''
              format: date-time
      example:
        vod_stream:
          id: tvctq36g
          name: My VOD Stream
          archived: true
          type: wowza_cdn
          viewing_seconds: 44925498
          viewing_bytes: 22886
          egress_bytes: 1783702
          egress_seconds: 97058
          trend:
          - sampled_at: '2019-10-01T08:00:00.000Z'
            viewing_seconds: 45
            viewing_bytes: 20
        limits:
          from: '2021-01-07T00:00:00.000Z'
          to: '2021-10-05T00:00:00.000Z'
    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 <output id> from the Live Stream <livestream id><livestream name>.
            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: []
    usage_vod_streams:
      type: object
      description: ''
      properties:
        vod_streams:
          type: object
          title: Array of VOD streams
          description: An array of VOD streams and the details of their CDN usage.
          properties:
            id:
              type: string
              description: The unique alphanumeric string that identifies the VOD stream.
              format: int32
            name:
              type: string
              description: A descriptive name for the VOD stream. Maximum 255 characters.
              example: ''
            archived:
              type: boolean
              description: A value of **true** indicates that the VOD stream has been removed from Wowza Video.
            type:
              type: string
              description: '**fastly** is a Wowza CDN on Fastly target.'
              example: ''
              enum:
              - fastly
            viewing_seconds:
              type: integer
              description: The total length of time, in seconds, that the stream was played at the target. May be longer than the duration of the stream.
              example: ''
              format: int32
            viewing_bytes:
              type: integer
              description: The amount of content, in bytes, that went through the stream target during the selected time frame.
              example: ''
              format: int32
        pagination:
          type: object
          description: Page information for the results generated by the query.
          properties:
            payload_version:
              type: integer
              description: The pagination object version.
            total_records:
              type: integer
              description: The total number of records in the database that match the query.
              example: ''
            next_page_key:
              type: string
              description: The key ID of the next page of results.
              example: ''
            per_page:
              type: integer
              description: The number of records included on each page of results.
              example: ''
            total_pages:
              type: integer
              description: The total number of pages generated by the query.
              example: ''
        limits:
          type: object
          description: The time frame represented in the response.
          properties:
            from:
              type: string
              description: The start of the range of time represented in the response.
              example: ''
              format: date-time
            to:
              type: string
              description: The end of the range of time represented in the response.
              example: ''
              format: date-time
      example:
        vod_streams:
        - id: poatq15
          name: My VOD Stream on Mar 25, 2021 @ 05:09pm PDT
          archived: true
          type: fastly
          viewing_seconds: 44925498
          viewing_bytes: 22886
        - id: nts8765
          name: My Other VOD Stream on Mar 26, 2021 @ 01:15pm PDT
          archived: false
          type: fastly
          viewing_seconds: 593275043
          viewing_bytes: 22886
        pagination:
          payload_version: '2.0'
          total_records: 150
          next_page_key: 1yr9pykn
          per_page: 10
          total_pages: 15
        limits:
          from: '2021-01-07T00:00:00.000Z'
          to: '2021-10-05T00:00:00.000Z'
    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: []
  parameters:
    per_page_2.0:
      name: per_page
      in: query
      description: For use with the *next_page_key* 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
    next_page_key:
      name: next_page_key
      in: query
      description: (Available from version 1.5) Returns a paginated view of results from the HTTP request. Specify a page key ID to indicate which page of the results should be displayed.
      schema:
        type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication using Wowza Streaming Engine admin credentials
 

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wowza/refs/heads/main/openapi/wowza-usage-vod-streams-api-openapi.yml