Wowza Video REST API migration guide
Migrating your existing Wowza Video integrations to version 2.0 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 v2.0.
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 to use JSON Web Token-based authentication, rather than an API key/access key, if you're upgrading from v1.8 or earlier. The following table shows what authentication schemes our API versions support. See Authentication to learn how to get a JWT.
- 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.11/live_streams
New version:
https://api.video.wowza.com/api/v2.0/live_streams
What’s changed
This topic covers REST API changes that occurred between the release of v1.11 and v2.0.
Info
- You can only use v2.0 of the API if you've been migrated to the new UI for WV. We're migrating customers iteratively. See Upgrade to the Wowza Video 2.0 REST API for more information.
- We created a v1.12 beta when v1.11 moved to current to facilitate the development process. While changes related to real-time streams originated in v1.12, those changes are also present in v2.0. We recommend that you skip v1.12 and go directly to 2.0 when you’re ready to upgrade from v1.11. Because of this, you’ll find the changes that originated in v1.12 included in this migration guide.
Highlights
- We’ve made significant improvements to the video content management system.
Updated endpoints
While developing v2.0 of the API, we made changes to the following endpoints:
- Live streams
- Transcoders
- Real-time streams
Live streams
-
aspect_ratio_height
andaspect_ratio_width
parameters forPOST /live_streams
now have default values and aren’t required inputs. The default values are 720 and 1280, respectively. -
Added
watermark
fields to the request and response ofPOST /live_streams
. -
Added
description
to the request and response ofPOST /live_streams
. -
Added
state
to the response ofPOST /live_streams/{id}
,PATCH /live_streams/{id}
,GET /live_streams/{id}
,GET /live_streams
. -
Added security to the request and response of
POST /live_streams
,PATCH /live_streams/{id}
,GET /live_streams/{id}
. -
Added
player_id
to request and response ofPOST /live_streams
,PATCH /live_streams/{id}
,GET /live_streams/{id}
. If left blank, the live stream uses the default player configuration. If you create other player configurations and want to use one with the live stream, you can just pass that player configuration's ID.
Info
player_id
is not returned in the response if it is not explicitly sent, and the default player configuration is used instead.
-
Moved the parameters
logo_image
,logo_position
,video_poster_image
, andwidth
outside theplayer
object and, deprecated theplayer
object inPOST /live_streams
,PATCH /live_streams/{id}
,GET /live_streams/{id}
.
Request
{
"live_stream": {
"aspect_ratio_height": 720,
"aspect_ratio_width": 1280,
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_west_oregon",
"encoder": "other_webrtc",
"name": "My Live Stream",
"transcoder_type": "transcoded"
}
}
Response
{
"live_stream": {
"aspect_ratio_height": 1080,
"aspect_ratio_width": 1920,
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_west_california",
"closed_caption_type": "cea",
"connection_code": "0e15cb",
"connection_code_expires_at": "2020-11-30T17:16:21.956Z",
"created_at": "2020-01-29T17:16:21.956Z",
"delivery_method": "push",
"delivery_protocols": [
"rtmp",
"rtsp",
"wowz",
"webrtc"
],
....
"width": 640,
"recording": true,
"reference_id": "mySystemID_01",
"save_asset": false,
"stream_source_id": "5skrfpyf",
"stream_targets": [
{
"id": "klbmg2h8"
},
{
"id": "bnjtdmmc"
}
],
"target_delivery_protocol": "hls-https",
"transcoder_type": "transcoded",
"updated_at": "2020-01-31T06:12:39.956Z",
"use_stream_source": true,
"vod_stream": true
}
}
Request
{
"live_stream": {
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_west_oregon",
"description": "This is my first live stream.",
"player_id ": "205b4e8-b160-43c2-868d-d88698a4e850",
"encoder": "other_webrtc",
"name": "My Live Stream",
"transcoder_type": "transcoded"
}
}
Response
{
"live_stream": {
"aspect_ratio_height": 720,
"aspect_ratio_width": 1280,
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_west_california",
"closed_caption_type": "cea",
"connection_code": "0e15cb",
"connection_code_expires_at": "2020-11-30T17:16:21.956Z",
"created_at": "2020-01-29T17:16:21.956Z",
"delivery_method": "push",
"delivery_protocols": [
"rtmp",
"rtsp",
"wowz",
"webrtc"
],
"description": "This is my first live stream.",
.....
"encoder": "other_rtmp",
"hosted_page": {
"enabled": true,
"description": "My Hosted Page Description",
"logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/hosted_page_logo_image/23424/5bad28.jpg",
"sharing_icons": true,
"title": "My Hosted Page",
"url": "https://player.video.wowza.com/hosted/e8dk5bf6/player.html"
},
"id": "wdjfqvsv",
"name": "My PAYG Transcoded WSE Live Stream",
"playback_stream_name": "wxyz6789",
"player_id": "205b4e8-b160-43c2-868d-d88698a4e850",
"embed_code": null,
"hls_playback_url": "https://wowzasubdomain.wowza.com/1/TWhoL3BiZnJXMFhmNzZVN3JrZDAwUT09/ZmYxSXRrTERrUlk9/hls/live/playlist.m3u8",
"logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/logo_image/23424/5bad28.jpg",
"logo_position": "top-right",
"video_poster_image_url": "https://prod.s3.amazonaws.com/uploads/player/video_poster_image/23424/5bad28.jpg",
"width": 640,
"recording": true,
"reference_id": "mySystemID_01",
"save_asset": false,
"security": {
"force_ssl_playback": false,
"geoblock_enabled": true,
"geoblock_by_location": "allow",
"geoblock_country_codes": "DE, US",
"geoblock_ip_override": "deny",
"geoblock_ip_addresses": "77.12.34.567, 78.23.45.678",
"token_auth_enabled": false,
"token_auth_playlist_only": false
},
"state": "stopped",
"stream_source_id": "5skrfpyf",
"stream_targets": [
{
"id": "klbmg2h8"
},
{
"id": "bnjtdmmc"
}
],
"target_delivery_protocol": "hls-https",
"transcoder_type": "transcoded",
"updated_at": "2020-01-31T06:12:39.956Z",
"use_stream_source": true,
"vod_stream": true,
"watermark": true,
"watermark_height": 80,
"watermark_image_url": "https://prod.s3.amazonaws.com/uploads/transcoder/watermark_image/12345/4baa13.jpg",
"watermark_opacity": 75,
"watermark_position": "top-right",
"watermark_width": 100
}
}
Transcoders
Added description
to request and response to POST /transcoders
, PATCH /transcoders/{id}
, and to the response to GET /transcoders/{id}
.
Request
{
"transcoder": {
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_central_iowa",
"delivery_method": "pull",
"name": "My PAYG Transcoder",
"protocol": "rtmp",
"transcoder_type": "transcoded"
}
}
Response
{
"transcoder": {
"application_name": "app-B8P6K226",
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_central_iowa",
"buffer_size": 4000,
"closed_caption_type": "cea",
"protocol": "rtmp",
....
}
}
Request
{
"transcoder": {
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_central_iowa",
"delivery_method": "pull",
"description": "My Transcoder Description",
"name": "My PAYG Transcoder",
"protocol": "rtmp",
"transcoder_type": "transcoded"
}
}
Response
{
"transcoder": {
"application_name": "app-B8P6K226",
"billing_mode": "pay_as_you_go",
"broadcast_location": "us_central_iowa",
"buffer_size": 4000,
"closed_caption_type": "cea",
.....
"description": "My Transcoder Description",
.....
}
}
Real-time streams
Some of these real-time stream changes originated in the v1.12 beta, but they are carried through to v2.0. We’ve noted if the change originated in v1.12.
-
Added
description
to request and response toPOST /real_time
,PATCH /real_time/{id}
, and to the response toGET /real_time/{id}
. -
(Originated in v1.12) Added
reference_id
to the following endpoints:-
POST /real_time
-
GET /real_time/{id}
-
PATCH /real_time/{id}
-
-
Added
player_id
to request and response ofPOST /real_time
,PATCH /real_time/{id}
,GET /real_time/{id}
. -
Moved the parameters
logo_image
,logo_position
,video_poster_image
, andwidth
outside theplayer
object and deprecated theplayer
object inPOST /real_time
,PATCH /real_time/{id}
,GET /real_time/{id}
.
Info
The player object was added in beta 1.12, but, removed to support 2.0 functionality. Most customers will only notice the addition of logo_image
, logo_position
, video_poster_image
, and width
in the real_time_stream
object since 1.12 is a beta and not meant for use in production environments.
Request
{
"real_time_stream": {
"name": "MyRealTimeStream",
}
}
Response
{
"real_time_stream": {
"id": "2adffc17",
"name": "MyRealTimeStream",
"stream_name": "8d304b93f1684320a54f2798666eeca7",
"token": "97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
"rtmp_url": "rtmp://rtmp-realtime1.wowza.com:1935/v2/pub/8d304b93f1684320a54f2798666eeca7?token=97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
"enable_secure_viewer": false,
"state": "active",
"region": "amsterdam",
"recording": true,
"disable_vod_encoder": true,
....
"created_at": "2021-06-30T18:02:20.000Z",
"updated_at": "2021-06-30T20:03:16.000Z"
}
}
Request
{
"real_time_stream": {
"name": "MyRealTimeStream",
"description": "This is my first real-time stream."
}
}
Response
{
"real_time_stream": {
"id": "2adffc17",
"name": "MyRealTimeStream",
"stream_name": "8d304b93f1684320a54f2798666eeca7",
"token": "97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
"rtmp_url": "rtmp://rtmp-realtime1.wowza.com:1935/v2/pub/8d304b93f1684320a54f2798666eeca7?token=97e52731bc21ef66e4c05a8ee1e28b64bf5f9db728573d94e690277cea9215bc",
"enable_secure_viewer": false,
"state": "active",
"region": "amsterdam",
"reference_id": "mySystemID_01",
"recording": true,
"disable_vod_encoder": true,
"description": "This is my first real-time stream.",
"enable_player_and_hosted_page": true,
"player_id": "2205b4e8-b160-43c2-868d-d88698a4e850",
"embed_code": null,
"logo_image_url": "https://prod.s3.amazonaws.com/uploads/player/logo_image/23424/5bad28.jpg",
"logo_position": "top-right",
"video_poster_image_url": "https://prod.s3.amazonaws.com/uploads/player/video_poster_image/23424/5bad28.jpg",
"width": 640,
"hosted_page": {
"title": "MyRealTimeStreamHostedPage",
"url": "https://player.video.wowza.com/hosted/e8dk5bf6/player.html",
"description": "My hosted page description",
"sharing_icons": true
},
"created_at": "2021-06-30T18:02:20.000Z",
"updated_at": "2021-06-30T20:03:16.000Z"
}
}
New endpoints
In v2.0 of the API, we added new endpoints for our new video content management system, /videos
. These endpoints will replace /assets
, /recordings
, and /vod_streams
from v1.11 of the API. We also added additional video management functionality with /categories
.
Videos - Operations related to uploading videos.
-
POST /videos
- Creates a video object in Wowza Video. You can upload a video from your local storage (DIRECT
) or from an external storage provider (FETCH
). See Upload a video from local storage or Upload a video from an external storage for more information.
{
"input": {
"method": "DIRECT"
},
"name": "My video",
"description": "A new video for my business.",
"unpublish": true,
"unpublished_at": "2025-01-01T12:33:22Z",
"published": true,
"published_at": "2024-01-01T12:33:22Z",
"tags": [
"foo",
"bar"
],
"category_id": "<The account's default category>",
"no_ads": true,
"ad_keywords": "special_ads"
}
{
"id": "2aa3343e-2fb5-42c3-8671-b52c24b7c3e2"
"name": "My video",
"description": "A new video for my business.",
"duration_in_ms": 0,
"unpublish": true,
"unpublished_at": "2025-01-01T12:33:22Z",
"published": true,
"published_at": "2024-01-01T12:33:22Z",
"tags": [
"foo",
"bar"
],
"category_id": "<The account's default category>",
"no_ads": true,
"ad_keywords": "special_ads",
"user_id": "string",
"created_at": "2025-01-01T12:33:22Z",
"updated_at": "2024-01-01T12:33:22Z",
"state": "FINISHED",
"encoding_progress": 0,
"upload_progress": 0,
"error_message": "string",
"deactivated": false,
"images": [
{
"type": "thumbnail",
"url": "https://example.com/image.jpg"
}
],
"encodings": [
{
"audio_bitrate_in_kbps": 2300,
"audio_channel": 2,
"audio_codec": "aac",
"audio_sample_rate": 44100,
"height": 1080,
"width": 1920,
"video_file_url": "https://flowplayer.com/video.mp4",
"video_container": "mp4",
"video_codec": "h264",
"total_bitrate_in_kbps": 1023,
"created_at": "2019-08-24T14:15:22Z",
"size_in_bytes": 8325555
}
],
"drm": {
"com.widevine.alpha": {
"license_server": "string",
"certificate": "string"
},
"com.apple.fps.1_0": {
"license_server": "string",
"certificate": "string"
},
"com.microsoft.playready": {
"license_server": "string",
"certificate": "string"
}
},
"shallow_copy": true,
"shallow_copy_source_id": "string",
"multiple_audio_tracks": true,
"audio_only": true,
"version": 0,
"thumbnails": {
"src": "string"
},
"animated_previews": [
{
"url": "string",
"type": "string",
"height": 1080,
"width": 1920
}
],
"upload_link": "string"
}
-
GET /videos
- Shows details for all videos available in Wowza Video.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "GET" \
"${WV_HOST}/api/v2.0/videos"
{
"videos": [
{
"id": "2aa3343e-2fb5-42c3-8671-b52c24b7c3e2",
"name": "My video",
"description": "A new video for my business.",
"duration_in_ms": 0,
"unpublish": true,
"unpublished_at": "2025-01-01T12:33:22Z",
"published": true,
"published_at": "2024-01-01T12:33:22Z",
"tags": [
"foo",
"bar"
],
"category_id": "<The account's default category>",
"no_ads": true,
"ad_keywords": "special_ads",
"user_id": "string",
"created_at": "2024-01-01T12:33:22Z",
"updated_at": "2024-01-01T12:33:22Z",
"state": "FINISHED"
}
],
"pagination": {
"payload_version": 0,
"total_records": 100,
"page": 1,
"per_page": 10,
"total_pages": 2,
"page_first_index": 10,
"page_last_index": 10
}
}
-
GET /videos/{id}
- Shows details for a single, specified video.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "GET" \
"${WV_HOST}/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2"
{
"id": "2aa3343e-2fb5-42c3-8671-b52c24b7c3e2",
"name": "My video",
"description": "A new video for my business.",
"duration_in_ms": 0,
"unpublish": true,
"unpublished_at": "2025-01-01T12:33:22Z",
"published": true,
"published_at": "2024-01-01T12:33:22Z",
"tags": [
"foo",
"bar"
],
"category_id": "<The account's default category>",
"no_ads": true,
"ad_keywords": "special_ads",
"user_id": "string",
"created_at": "2024-01-01T12:33:22Z",
"updated_at": "2024-01-01T12:33:22Z",
"state": "FINISHED",
"encoding_progress": 0,
"upload_progress": 0,
"error_message": "string",
"deactivated": false,
"images": [
{
"type": "thumbnail",
"url": "https://example.com/image.jpg"
}
],
"encodings": [
{
"audio_bitrate_in_kbps": 2300,
"audio_channel": 2,
"audio_codec": "aac",
"audio_sample_rate": 44100,
"height": 1080,
"width": 1920,
"video_file_url": "https://flowplayer.com/video.mp4",
"video_container": "mp4",
"video_codec": "h264",
"total_bitrate_in_kbps": 1023,
"created_at": "2019-08-24T14:15:22Z",
"size_in_bytes": 8325555
}
],
"drm": {
"com.widevine.alpha": {
"license_server": "string",
"certificate": "string"
},
"com.apple.fps.1_0": {
"license_server": "string",
"certificate": "string"
},
"com.microsoft.playready": {
"license_server": "string",
"certificate": "strin
}
},
"shallow_copy": true,
"shallow_copy_source_id": "string",
"multiple_audio_tracks": true,
"audio_only": true,
"version": 0,
"thumbnails": {
"src": "string"
},
"animated_previews": [
{
"url": "string",
"type": "string",
"height": 1080,
"width": 1920
}
]
}
-
PATCH /videos/{id}
- Updates a video’s metadata. To replace the video file, usePUT /videos/{id}
.
{
"name": "My video",
"description": "A new video for my business.",
"unpublish": true,
"unpublished_at": "2025-01-01T12:33:22Z",
"published": true,
"published_at": "2024-01-01T12:33:22Z",
"tags": [
"foo",
"bar"
],
"category_id": "<The account's default category>",
"no_ads": true,
"ad_keywords": "special_ads"
}
{
"id": "2aa3343e-2fb5-42c3-8671-b52c24b7c3e2",
"name": "My video",
"description": "A new video for my business.",
"duration_in_ms": 0,
"unpublish": true,
"unpublished_at": "2025-01-01T12:33:22Z",
"published": true,
"published_at": "2024-01-01T12:33:22Z",
"tags": [
"foo",
"bar"
],
"remote": false,
"category_id": "<The account's default category>",
"no_ads": true,
"ad_keywords": "special_ads",
"user_id": "string",
"created_at": "2024-01-01T12:33:22Z",
"updated_at": "2024-01-01T12:33:22Z",
"state": "FINISHED",
"encoding_progress": 0,
"upload_progress": 0,
"error_message": "string",
"deactivated": false,
"images": [
{
"type": "thumbnail",
"url": "https://example.com/image.jpg"
}
],
"encodings": [
{
"audio_bitrate_in_kbps": 2300,
"audio_channel": 2,
"audio_codec": "aac",
"audio_sample_rate": 44100,
"height": 1080,
"width": 1920,
"video_file_url": "https://flowplayer.com/video.mp4",
"video_container": "mp4",
"video_codec": "h264",
"total_bitrate_in_kbps": 1023,
"created_at": "2019-08-24T14:15:22Z",
"size_in_bytes": 8325555
}
],
"drm": {
"com.widevine.alpha": {
"license_server": "string",
"certificate": "string"
},
"com.apple.fps.1_0": {
"license_server": "string",
"certificate": "string"
},
"com.microsoft.playready": {
"license_server": "string",
"certificate": "string"
}
},
"shallow_copy": true,
"shallow_copy_source_id": "string",
"multiple_audio_tracks": true,
"audio_only": true,
"version": 0,
"thumbnails": {
"src": "string"
},
"animated_previews": [
{
"url": "string",
"type": "string",
"height": 1080,
"width": 1920
}
]
}
-
PUT /videos/{id}
- Uploads a new version of the video. Use this endpoint to replace the original source file and retain all the metadata, including playback URLs and embed codes. This is useful when you correct an issue in the video or have a new version of the content.
{
"input": {
"method": "DIRECT"
}
}
{
"id": "2aa3343e-2fb5-42c3-8671-b52c24b7c3e2",
"name": "My video",
"description": "A new video for my business.",
"duration_in_ms": 0,
"unpublish": true,
"unpublished_at": "2025-01-01T12:33:22Z",
"published": true,
"published_at": "2024-01-01T12:33:22Z",
"tags": [
"foo",
"bar"
],
"remote": false,
"category_id": "<The account's default category>",
"no_ads": true,
"ad_keywords": "special_ads",
"user_id": "string",
"created_at": "2025-01-01T12:33:22Z",
"updated_at": "2024-01-01T12:33:22Z",
"state": "FINISHED",
"encoding_progress": 0,
"upload_progress": 0,
"error_message": "string",
"deactivated": false,
"images": [
{
"type": "thumbnail",
"url": "https://example.com/image.jpg"
}
],
"encodings": [
{
"audio_bitrate_in_kbps": 2300,
"audio_channel": 2,
"audio_codec": "aac",
"audio_sample_rate": 44100,
"height": 1080,
"width": 1920,
"video_file_url": "https://flowplayer.com/video.mp4",
"video_container": "mp4",
"video_codec": "h264",
"total_bitrate_in_kbps": 1023,
"created_at": "2019-08-24T14:15:22Z",
"size_in_bytes": 8325555
}
],
"drm": {
"com.widevine.alpha": {
"license_server": "string",
"certificate": "string"
},
"com.apple.fps.1_0": {
"license_server": "string",
"certificate": "string"
},
"com.microsoft.playready": {
"license_server": "string",
"certificate": "string"
}
},
"shallow_copy": true,
"shallow_copy_source_id": "string",
"multiple_audio_tracks": true,
"audio_only": true,
"version": 0,
"thumbnails": {
"src": "string"
},
"animated_previews": [
{
"url": "string",
"type": "string",
"height": 1080,
"width": 1920
}
],
"upload_link": "string"
}
-
DELETE /videos/{id}
- Deletes a video and all its related files.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "DELETE" \
"${WV_HOST}/api/v2.0/videos/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2"
{
"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": []
}
},
}
Categories – Operations related to categorizing videos.
-
POST /categories
- Creates a category you can assign to a video for organization.
{
"name": "My first category",
"description": "This is a category description",
"parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb"
}
{
"id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd",
"name": "My first category",
"description": "This is a category description.",
"parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb"
}
-
GET /categories
- Shows details for all categories available in Wowza Video.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "GET" \
"${WV_HOST}/api/v2.0/categories"
{
"categories": [
{
"id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd",
"name": "My first category",
"description": "This is a category description.",
"parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb"
}
],
"pagination": {
"payload_version": 0,
"total_records": 100,
"page": 1,
"per_page": 10,
"total_pages": 2,
"page_first_index": 10,
"page_last_index": 10
}
}
-
GET /categories/{id}
- Shows details for a single, specified category.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "GET" \
"${WV_HOST}/api/v2.0/categories/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2"
{
"id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd",
"name": "My first category",
"description": "This is a category description.",
"parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb"
}
-
PATCH /categories/{id}
- Updates a category.
{
"name": "My first category",
"description": "This is a category description",
"parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb"
}
{
"id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbbd",
"name": "My first category",
"description": "This is a category description.",
"parent_id": "cb65a918-ad7d-406a-80d8-09c9c8d0dbb"
}
-
DELETE /categories/{id}
- Deletes a category.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "DELETE" \
"${WV_HOST}/api/v2.0/categories/2aa3343e-2fb5-42c3-8671-b52c24b7c3e2"
{
"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": []
}
},
}
-
GET /real_time/{id}/state
- Returns the current state of a real-time stream.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "GET" \
"${WV_HOST}/api/v2.0/real_time/2adffc17/state"
{
"real_time": {
"state": "stopped"
}
}
-
GET /usage/storage/current
- Returns the total amount of recording and VOD stream storage used for the account at the current, or present, time of the request.
// Using cURL
curl -H "Authorization: Bearer ${WV_JWT}" \
-H "Content-Type: application/json" \
-X "GET" \
"${WV_HOST}/api/v2.0/usage/storage/current"
{
"recording_bytes": 1057200777662,
"vod_stream_bytes": 2142226694010
}
Deprecated endpoints
We've deprecated the /asset
, /players
, /recordings
, /vod_streams
, and /transcoder/{id}/recordings
endpoints to provide you with a more unified experience with the new /videos
endpoints. We’ve deprecated a few other endpoints as well.
In the table below, you can find the new endpoints corresponding to respective deprecated endpoints that provide you with the necessary data.
Deprecated endpoint | New endpoint |
---|---|
POST /assets |
POST /videos |
GET /assets |
GET /videos |
GET /assets/{id} |
GET /videos/{id} |
PATCH /assets/{id} |
PATCH /videos/{id} |
DELETE /assets/{id} |
DELETE /videos/{id} |
POST /assets/{id}/live_streams |
No replacement. Streaming an asset as live will come in a future release. |
GET /asset_tags |
No replacement. |
PATCH /assets/{id}/upload_completed |
No replacement. This occurs automatically through POST /videos . |
PATCH /assets/{id}/upload_failed |
No replacement. |
GET /recordings |
GET /videos |
GET /recordings/{id} |
GET /videos/{id} |
DELETE /recordings/{id} |
DELETE videos/{id} |
GET /recordings/{id}/state |
GET /videos/{id} |
GET /vod_streams |
GET /videos |
GET /vod_streams/{id} |
GET /videos/{id} |
PATCH /vod_streams/{id} |
PATCH /videos/{id} |
DELETE /vod_streams/{id} |
DELETE videos/{id} |
GET /transcoders/{id}/recordings |
No replacement. |
GET /players |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
GET /players/{id} |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
PATCH /players/{id} |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
POST /players/{id}/rebuild |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
GET /players/{id}/state |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
POST /players/{player_id}/urls |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
GET /players/{player_id}/urls |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
GET /players/{player_id}/urls/{id} |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
PATCH /players/{player_id}/urls/{id} |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
DELETE /players/{player_id}/urls/{id} |
The player operations are deprecated in 2.0. Create and update player configurations in the user interface. Any values you send using the player operations will be ignored. |
GET /stream_targets/akamai |
GET /stream_targets/custom . Akamai is only supported as a custom stream target. |
GET /stream_targets/akamai/{id} |
GET /stream_targets/custom/ID . Akamai is only supported as a custom stream target. |
PATCH /stream_targets/akamai/{id} |
PATCH /stream_targets/custom/ID . Akamai is only supported as a custom stream target. |
DELETE /stream_targets/akamai/{id} |
DELETE /stream_targets/custom/{id} . Akamai is only supported as a custom stream target. |
GET /usage/vod_streams |
No replacement. |
GET /usage/vod_streams/ID |
No replacement. |
GET /usage/vod_streams/summary |
No replacement. |
GET /usage/storage/peak |
No replacement. |
GET /usage/storage/current |
No replacement. |
Upgrade from older versions
This topic covers REST API changes that occurred between the release of version 1.10 and version 1.11. If you are upgrading from a version earlier than version 1.10, also review all other API changes that apply to your migration: