Wowza Video REST API migration guide

Migrating your existing Wowza Video integrations to version 1.8 of the REST API allows you to take advantage of new features and performance improvements.

As you move the code base for your streaming workflow from one version of the Wowza Video™ REST API to a later version, use this guide to track what's changed and understand how these changes affect your code. While this guide includes most changes you need to know, see the Wowza Video REST API reference documentation to confirm specific details of endpoint behavior in v1.8.

Migration checklist


  • Review deprecations to determine whether your code uses deprecated endpoints or parameters.
  • Review added and updated functionality to determine whether you want to make use of new parameters or parameter values.
  • Update your code:
    • For changes to operations and objects, as necessary.
    • To reflect the new base URL for calls to the API. For example:

      Previous version: https://api.video.wowza.com/api/v1.7/live_streams

      New version: https://api.video.wowza.com/api/v1.8/live_streams

What's changed


This topic covers REST API changes that occurred between the release of v1.7 and v1.8. These changes fall into two categories:

  • Changes present only in v1.8.
  • Changes that originate from the development of v1.8, but also retroactively apply to earlier versions of the API. These are non-breaking changes unless otherwise communicated by Wowza.

Highlights:

  • Wowza Video – Wowza Streaming Cloud is now Wowza Video.
  • Improved stream analytics – We've added new endpoints and updated existing ones to give you access to more usage and analytics data for your streams.
  • Programmatic management of assets – If you have a Wowza Video subscription, you can use the /assets endpoints to programmatically create and manage assets stored in Asset Management.

Only in v1.8

Over the course of development, we made the following changes to the REST API from v1.7 to v1.8. These changes are present in v1.8 only.

New endpoints
Updated endpoints
General updates

New endpoints

In v1.8, we added the following new endpoints for improved stream analytics and managing video assets in Asset Management.

  • Account usage — These new endpoints return usage and analytics data for streams in the account related to the API access key.
    • GET /usage/accounts
    • GET /usage/accounts/countries
    • GET /usage/accounts/trend
    • GET /usage/accounts/live
  • Transcoder usage — These new endpoints return usage and analytics for transcoders.
    • GET /usage/transcoders/{id}/countries
    • GET /usage/transcoders/{id}/live
    • GET /usage/transcoders/{id}/trend
  • VOD stream usage — These new endpoints return usage and analytics for VOD streams.
    • GET /usage/vod_streams/{id}/live
    • GET /usage/vod_streams/{id}/trend
  • Assets - These new endpoints let you create and manage assets stored in Asset Management.
    • POST /assets
    • GET /assets
    • GET /assets/{id}
    • PATCH /assets/{id}
    • DEL /asset/{id}
    • POST /assets/{id}/live_streams
    • GET /asset_tags
    • PATCH /assets/{id}/upload_completed
    • PATCH /assets/{id}/upload_fail

Updated endpoints

Live stream

So you can save a live stream to Asset Management, we added save_asset to the request of the following endpoints:

  • POST /live_stream
  • PATCH /live_stream/{id}

And the responses for the following endpoints were updated as specified:

  • PATCH /live_stream/{id}save_asset
  • GET /live_stream/{id}save_asset. For a live stream created when you re-stream an asset from Asset Management, you can retrieve the associated asset_id.

The following sample response is for GET /live_stream/{id}, although PATCH /live_stream/{id} is similar without asset_id.

v1.7 response v1.8 response
{
  "live_stream": {
    "id": "xsvhj6zz",
    "name": "My Live Stream",
    "transcoder_type": "transcoded",
    "billing_mode": "pay_as_you_go",
    "broadcast_location": "us_west_oregon",
    "vod_stream": false,
    "recording": false,
    "closed_caption_type": "none",
    "low_latency": false,
    "encoder": "other_rtmp",
    "delivery_method": "pull",
    "playback_stream_name": "a369nf07",
    "target_delivery_protocol": "hls-https",
    "use_stream_source": false,
    "aspect_ratio_width": 1920,
    "aspect_ratio_height": 1080,
    "delivery_protocols": [
      "hls"
      ...
      ],
    "source_connection_information": [
      "source_url": "rtmp://mysourcelocation"
      ],
    "player_id": "xdjh6x1z",
    "player_type": "original_html5",
    ...
    "created_at": "2022-04-14T18:01:35.000Z",
    "updated_at": "2022-04-14T18:01:35.000Z"
  }
}
{
  "live_stream": {
    "id": "xsvhj6zz",
    "name": "My Live Stream",
    "transcoder_type": "transcoded",
    "billing_mode": "pay_as_you_go",
    "broadcast_location": "us_west_oregon",
    "vod_stream": false,
    "recording": false,
    "save_asset": true,
    "asset_id": "ukpbhopd",
    "closed_caption_type": "none",
    "low_latency": false,
    "encoder": "other_rtmp",
    "delivery_method": "pull",
    "playback_stream_name": "a369nf07",
    "target_delivery_protocol": "hls-https",
    "use_stream_source": false,
    "aspect_ratio_width": 1920,
    "aspect_ratio_height": 1080,
    "delivery_protocols": [
      "hls"
      ...
      ],
    "source_connection_information": [
      "source_url": "rtmp://mysourcelocation"
      ],
    "player_id": "xdjh6x1z",
    "player_type": "original_html5",
    ...
    "created_at": "2022-04-14T18:01:35.000Z",
    "updated_at": "2022-04-14T18:01:35.000Z"
  }
}

Real-time streams

So you can add security to real-time streams, we added enable_secure_viewer and expires_on input parameters to the following endpoints:

  • POST /real_time
  • PATCH /real_time/{id}

And enable_secure_viewer, expires_on, and subscribe_token to the responses of:

  • POST /real_time
  • PATCH /real_time/{id}
  • GET /real_time/{id}

The following sample response is for GET /real_time/{id}, although PATCH /real_time/{id} and PATCH /real_time/{id} are similar.

v1.7 response v1.8 response
{
  "real_time_stream": {
    "id": "xsvhj6zz",
    "name": "My Real-Time Stream",
    "stream_name": "20ef06e36d2041f186527eabc5bf19ef",
    "token": "383a51dcce600d7a71e9ca04e143d08f49477537c128cd30541a06d6956e0b3c",
    "rtmp_url": "rtmp://rtmp-realtime1.wowza.com:1935/v2/pub/20ef06e36d2041f186527eabc5bf19ef?token=383a51dcce600d7a71e9ca04e143d08f49477537c128cd30541a06d6956e0b3c",
    "state": "active",
    "created_at": "2022-04-14T18:01:35.000Z",
    "updated_at": "2022-04-14T18:01:35.000Z"
  }
}
{
  "real_time_stream": {
    "id": "xsvhj6zz",
    "name": "My Real-Time Stream",
    "stream_name": "2xef06e36d2041f186527eabc5bf19ef",
    "token": "323a51dcce600d7a71e9ca04e143d08f49477537c128cd30541a06d6956e0b3c",
    "subscribe_token": "036ec8fd475438f0633ae36a48b00607a9043e619964a05f71383d6c09019133",
    "rtmp_url": "rtmp://rtmp-realtime1.wowza.com:1935/v2/pub/2xef06e36d2041f186527eabc5bf19ef?token=323a51dcce600d7a71e9ca04e143d08f49477537c128cd30541a06d6956e0b3c",
    "enable_secure_viewer": true,
    "expires_on": "2022-04-22T12:50:01.000Z",
    "state": "active",
    "created_at": "2022-04-14T18:01:35.000Z",
    "updated_at": "2022-04-14T18:01:35.000Z"
  }
}

 
Recordings
  • GET /recordings/{id}— For a live stream created when you re-stream an asset from Asset Management, you can find that associated asset_id in the recording response.
    v1.7 v1.8
    {
      "recording": {
        "id": "xsvhj6zz",
        "state": "completed",
        "file_name": "myfile.mp4",
        "file_size": 186622408,
        "duration": 1325415,
        "download_url": "https://storage.googleapis.com/myrecordingsk/myfile.mp4",
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "recording": {
        "id": "xsvhj6zz",
        "asset_id": "ukpbhopd",
        "state": "completed",
        "file_name": "myfile.mp4",
        "file_size": 186622408,
        "duration": 1325415,
        "download_url": "https://storage.googleapis.com/myrecordingsk/myfile.mp4",
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
    }

Stream targets
  • GET /stream_targets  — Added state.
    v1.7 v1.8
    {
      "stream_targets": [
      {
        "id": "xsvhj6zz",
        "name": "My stream target",
        "type": "wowza",
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
      ...
     ]
    }
    {
      "stream_targets": [
      {
        "id": "xsvhj6zz",
        "name": "My stream target",
        "state": "activated",
        "type": "wowza",
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
      ...
     ]
    }

Transcoders
  • GET /transcoder/{id}— For a live stream created when you re-stream an asset from Asset Management, you can find that associated asset_id in this response.
    v1.7 v1.8
    {
      "transcoder": {
        "id": "xsvhj6zz",
        "name": "Transcoder/My Live Stream",
        "transcoder_type": "transcoded",
        "billing_mode": "pay_as_you_go",
        "broadcast_location": "us_west_oregon",
        ...
      }
    }
    {
      "transcoder": {
        "id": "xsvhj6zz",
        "asset_id": "ukpbhopd",
        "name": "Restreamed Asset (ukpbhopd)",
        "transcoder_type": "transcoded",
        "billing_mode": "pay_as_you_go",
        "broadcast_location": "us_west_oregon",
        ...
      }
    }

  • GET /transcoders — Added state.
    v1.7 v1.8
    {
      "transcoders": [
      {
        "id": "xsvhj6zz",
        "name": "My transcoder",
        "workflow": "transcoder",
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
      ...
     ]
    }
    {
      "transcoders": [
      {
        "id": "xsvhj6zz",
        "name": "My transcoder",
        "workflow": "transcoder",
        "state": "stopped",
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
      ...
     ]
    }

  • Asset management transcoder property

    We added a property so you can save an asset to Asset Management through the transcoder. While you can view this setting in any version active version of the API, you can only set the property in v1.8.

    {
      "property": {
        "section": "asset_management",
        "key": "enabled",
        "value": true
      }
    }
 
VOD Streams
  • GET /vod_streams/{id}— For a live stream created when you re-stream an asset from Asset Management, you can find that associated asset_id in this response.
    v1.7 v1.8
    {
      "vod_stream": {
        "id": "xsvhj6zz",
        "state": "completed",
        "type": "Original",
        "name": "My Stream",
        "stream_target_id": "g5jjb5wc",
        ...
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "vod_stream": {
        "id": "xsvhj6zz",
        "asset_id": "ukpbhopd",
        "state": "completed",
        "type": "Original",
        "name": "My Stream",
        "stream_target_id": "g5jjb5wc",
        ...
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /vod_streams — Added state and playback_enabled.
    v1.7 v1.8
    {
      "vod_streams": [
      {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
      ...
     ]
    }
    {
      "vod_streams": [
      {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "state": "completed",
        "playback_enabled": true,
        "created_at": "2022-04-14T18:01:35.000Z",
        "updated_at": "2022-04-14T18:01:35.000Z"
      }
      ...
     ]
    }

Analytics: Stream targets
  • GET /usage/stream_targets - Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "stream_targets": [
      {
        "id": "xsvhj6zz",
        "name": "My stream target",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_time": 340,
        "bytes": 70305917
      }
      ...
     ]
    }
    {
      "stream_targets": [
      {
         "id": "xsvhj6zz",
        "name": "My stream target",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_seconds": 340,
        "viewing_bytes": 70305917,
        "avg_viewing_seconds": 340
      }
      ...
     ]
    }
  • GET /usage/stream_targets/{id}— Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "stream_target": {
        "id": "xsvhj6zz",
        "name": "My stream target",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_time": 340,
        "bytes": 670407,
        "zones": [
           {
              "name": "global",
              "type": "fastly",
              "bytes": 670407
           }
        ]
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "stream_target": {
        "id": "xsvhj6zz",
        "name": "My stream target",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_seconds": 340,
        "avg_viewing_seconds": 340,
        "viewing_bytes": 670407,
        "zones": [
           {
              "name": "global",
              "type": "fastly",
              "viewing_bytes": 670407
           }
        ]
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/stream_targets/summary — Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "summary": {
        "unique_viewers": 1,
        "viewing_time": 44246,
        "bytes": 70305917,
        "zones": [
           {
              "name": "global",
              "type": "fastly",
              "bytes": 670407
           }
        ]
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "summary": {
        "unique_viewers": 1,
        "viewing_seconds": 44246,
        "avg_viewing_seconds": 983,
        "viewing_bytes": 70305917,
        "zones": [
           {
              "name": "global",
              "type": "fastly",
              "viewing_bytes": 670407
           }
        ]
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/stream_targets/{id}/countries — Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "countries": [
        {
          "code": "US",
          "name": "United States of America",
          "unique_viewers": 1,
          "viewing_time": 44246,
          "bytes": 670407,
          "zones": [
             {
                "name": "global",
                "type": "fastly",
                "bytes": 670407
             }
          ]
      },
        }
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "countries": [
        {
          "code": "US",
          "name": "United States of America",
          "unique_viewers": 1,
          "viewing_seconds": 44246,
          "avg_viewing_seconds": 44246,
          "viewing_bytes": 670407,
          "zones": [
             {
                "name": "global",
                "type": "fastly",
                "viewing_bytes": 670407
             }
          ]
      },
        }
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/stream_targets/{id}/renditions — Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "renditions": [
        {
          "name": "4128",
          "unique_viewers": 1,
          "viewing_time": 44246,
          "bytes": 670407,
          "zones": [
           {
              "name": "global",
              "type": "fastly",
              "bytes": 670407
           }
        ]
      },
        }
    
        ...
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "renditions": [
        {
          "name": "4128",
          "unique_viewers": 1,
          "viewing_seconds": 44246,
          "avg_viewing_seconds": 44246,
          "viewing_bytes": 670407,
          "zones": [
           {
              "name": "global",
              "type": "fastly",
              "viewing_bytes": 670407
           }
        ]
      },
        }
    
        ...
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/stream_targets/{id}/livecountries and viewer_data. Viewer trend returns one data point per minute for the past hour.
    v1.7 v1.8
    {
      "stream_target": {
        "id": "xsvhj6zz",
        "unique_viewers": 1
      }
    }
    {
      "stream_target": {
        "id": "xsvhj6zz",
        "unique_viewers": 1,
        "countries": [
           {
              "code": "US",
              "unique_viewers": 1
           }
        ]
        "viewer_trend": [
           {
              "sampled_at": "2022-04-12T20:39:00Z",
              "unique_viewers": 1
           }
           ...
        ]
      }
    

Analytics: Transcoders
  • GET /usage/transcoders — Renamed bytes to egress_bytes and  seconds to egress_seconds.
    Added egress_seconds_additional_targets.
     
    v1.7 v1.8
    {
      "transcoders": [
      {
        "id": "xsvhj6zz",
        "name": "My live stream / Transcoder",
        "archived": false,
        "billing_mode": "pay_as_you_go",
        "transcoder_type": "transcoded",
        "bytes": 0,
        "seconds": 921
      }
      ...
     ]
    }
    {
      "transcoders": [
      {
        "id": "xsvhj6zz",
        "name": "My live stream / Transcoder",
        "archived": false,
        "billing_mode": "pay_as_you_go",
        "transcoder_type": "transcoded",
        "egress_bytes": 0,
        "egress_seconds": 921,
        "egress_seconds_additional_targets": 0
      }
      ...
     ]
    }
  • GET /usage/transcoders/{id} — Renamed bytes to egress_bytes and seconds to egress_seconds.
    Added egress_seconds_additional_targets, unique_viewers,and avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "transocder": {
        "id": "xsvhj6zz",
        "name": "My transcoder",
        "archived": false,
        "billing_mode": "pay_as_you_go",
        "transcoder_type": "transcoded",
        "bytes": 0,
        "seconds": 921
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "transcoder": {
        "id": "xsvhj6zz",
        "name": "My transcoder",
        "archived": false,
        "billing_mode": "pay_as_you_go",
        "transcoder_type": "transcoded",
        "egress_bytes": 0,
        "egress_seconds": 921
        "egress_seconds_additional_targets": 0,
        "unique_viewers": 1,
        "viewing_seconds": 340,
        "avg_viewing_seconds": 340,
        "viewing_bytes": 54
    
    },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/transcoder/summary — Renamed bytes to egress_bytes and seconds to egress_seconds.
     
    v1.7 v1.8
    {
      "summary": {
        "bytes": 70305917,
        "seconds": 44246,
        "configurations": [
           {
              "billing_mode": "pay_as_you_go",
              "transcoder_type": "transcoded",
              "bytes": 70305917,
    	  "seconds": 44246
           }
           ...
        ]
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "summary": {
        "egress_bytes": 70305917,
        "egress_seconds": 44246,
        "configurations": [
           {
              "billing_mode": "pay_as_you_go",
              "transcoder_type": "transcoded",
              "egress_bytes": 70305917,
    	  "egress_seconds": 44246
           }
           ...
        ]
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
Analytics: VOD streams
  • GET /usage/vod_streams - Renamed bytes to viewing_bytes and viewing_time to viewing_seconds. Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "vod_streams": [
      {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_time": 340,
        "bytes": 70305917
      }
      ...
     ]
    }
    {
      "vod_streams": [
      {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_seconds": 340,
        "viewing_bytes": 70305917,
        "avg_viewing_seconds": 340
      }
      ...
     
    ]
    }
  • GET /usage/vod_streams/{id}— Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added egress_bytes, egress_seconds, and avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "vod_stream": {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_time": 340,
        "bytes": 70305917
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "vod_stream": {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "unique_viewers": 1,
        "viewing_seconds": 340,
        "viewing_bytes": 70305917,
        "avg_viewing_seconds": 340,
        "egress_bytes": 70305917,
        "egress_seconds": 480
    },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/vod_streams/summary — Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "summary": {
        "unique_viewers": 1,
        "viewing_time": 44246,
        "bytes": 70305917
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "summary": {
        "unique_viewers": 1,
        "viewing_seconds": 44246,
        "avg_viewing_seconds": 983,
        "viewing_bytes": 70305917
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/vod_streams/{id}/countries — Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "countries": [
        {
          "code": "US",
          "name": "United States of America",
          "unique_viewers": 1,
          "viewing_time": 44246,
          "bytes": 70305917
        }
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "countries": [
        {
          "code": "US",
          "name": "United States of America",
          "unique_viewers": 1,
          "viewing_seconds": 44246,
          "avg_viewing_seconds": 44246,
          "viewing_bytes": 70305917
        }
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/vod_streams/{id}/renditions — Renamed bytes to viewing_bytes and viewing_time to viewing_seconds.
    Added avg_viewing_seconds.
     
    v1.7 v1.8
    {
      "renditions": [
        {
          "name": "4128",
          "unique_viewers": 1,
          "viewing_time": 44246,
          "bytes": 70305917
        }
    
        ...
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "renditions": [
        {
          "name": "4128",
          "unique_viewers": 1,
          "viewing_seconds": 44246,
          "avg_viewing_seconds": 44246,
          "viewing_bytes": 70305917
        }
    
        ...
      ],
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/vod_streams/egress - Renamed bytes to egress_bytes.
     
    v1.7 v1.8
    {
      "vod_streams": [
      {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "bytes": 70305917
      }
      ...
     ]
    }
    {
      "vod_streams": [
      {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "egress_bytes": 70305917
      }
      ...
     ]
    }
  • GET /usage/vod_streams/egress/{id} - Renamed bytes to egress_bytes.
     
    v1.7 v1.8
    {
      "vod_stream": {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "bytes": 7030591
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "vod_stream": {
        "id": "xsvhj6zz",
        "name": "My VOD Stream",
        "archived": false,
        "type": "fastly",
        "egress_bytes": 70305917
    },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

  • GET /usage/vod_streams/egress/summary — Renamed bytes to egress_bytes.
     
    v1.7 v1.8
    {
      "summary": {
        "bytes": 70305917
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }
    {
      "summary": {
        "egress_bytes": 70305917
      },
      "limits": {
        "from": "2022-04-14T18:01:35.000Z",
        "to": "2022-04-14T18:01:35.000Z"
      }
    }

General updates

We added the following feature updates that don't change existing requests or responses but might be helpful to consider when upgrading your integration with Wowza Video.

  • Added last_billing_date as an option for querying /usage endpoints.
  • Added filtering of results to the following endpoints:
    • GET /live_streams
    • GET /real_time
    • GET /recordings
    • GET /schedules
    • GET /stream_sources
    • GET /stream_targets
    • GET /vod_streams
    See Get filtered query results with the Wowza Video REST API for more information.
  • Wowza Video is transitioning to a JSON Web Token-based authentication scheme, rather than an API key/access key scheme. JWT-based authentication is now available in the 1.8 version of the API. Although you'll be able to authenticate both ways while we transition, we encourage you to update your integrations to use JWT as soon as possible. See the Release Notes for more information.
  • While our URLs transition from cloud.wowza.com to video.wowza.com, you might notice a mix of both domains. Either will work, but we expect to fully transition to video.wowza.com soon.

    Example: wss://f5dbf6.entrypoint.cloud.wowza.com/webrtc-session.json

In v1.8 and earlier versions

After the release of version 1.7 and during the development of version 1.8, we made the following changes to 1.8 that also retroactively change earlier versions of the API. You might already be aware of these changes as they've been released and the changes communicated through the Wowza Streaming Cloud REST API release notes, but you might still consider them as you upgrade to version 1.8.

Asset management transcoder property

Change present in: v1.5 through v1.8

We added a property so you can save an asset to Asset Management through the transcoder. While you can only set the property in v1.8 of the API, you can view the property setting in any version of the API.

{
  "property": {
    "section": "asset_management",
    "key": "enabled",
    "value": true
  }
}

Upgrade from older versions


This topic covers REST API changes that occurred between the release of version 1.7 and version 1.8. If you are upgrading from a version earlier than version 1.7, also review all other API changes that apply to your migration: