Open documentation ↗Overview
# About the REST API The Wowza Streaming Cloud<sup>TM</sup> REST API (application programming interface) offers complete programmatic control over live streams, transcoders, stream sources, and stream targets. Anything you can do in the Wowza Streaming Cloud UI can also be achieved by making HTTP-based requests to cloud-based servers through the REST API. The Wowza Streaming Cloud REST API features *cross-origin resource sharing*, or CORS. CORS is a [W3C specification](https://www.w3.org/TR/cors/) that provides headers in HTTP requests to enable a web server to safely make a network request to another domain. In order to protect shared resources, the Wowza Streaming Cloud REST API is subject to limits. For details, see [Wowza Streaming Cloud REST API limits](https://www.wowza.com/docs/wowza-streaming-cloud-rest-api-limits). # About this documentation This reference documentation is based on the open-source [Swagger framework](http://swagger.io/specification/). It allows you to view the operations, parameters, and request and reponse schemas for every resource. Request samples are presented in cURL (Shell) and JavaScript; some samples also include just the JSON object. Response samples are all JSON. For more information and examples on using the Wowza Streaming Cloud REST API, see our [library of Wowza Streaming Cloud REST API technical articles](https://www.wowza.com/docs/wowza-streaming-cloud-rest-api). # Query requirements The Wowza Streaming Cloud REST API uses HTTP requests to retrieve data from cloud-based servers. Requests must contain proper JSON, two authentication keys, and the correct version number in the base path. ## JSON The Wowza Streaming Cloud REST API uses the [JSON API specification](http://jsonapi.org/format/) to request and return data. This means requests must include the header `Content-Type: application/json` and must include a single resource object in JSON format as primary data. Responses include HTTP status codes that indicate whether the query was successful. If there was an error, a description explains the problem so that you can fix it and try again. ## Authentication Requests to the Wowza Streaming Cloud REST API must be authenticated with two keys: an API key and an access key. Each key is a 64-character alphanumeric string that you can find on the **API Access** page in Wowza Streaming Cloud. Use the `wsc-api-key` and `wsc-access-key` headers to authenticate requests, like this (in cURL): ```bash curl -H 'wsc-api-key: [64-character-api-key-goes-here]' -H 'wsc-access-key: [64-character-access-key-goes-here]' ``` <!-- ReDoc-Inject: <security-definitions> --> ## Version The Wowza Streaming Cloud API is currently at version 1.0.0. Use `v1` in your base path in every request, like this path to the live_streams endpoint: ``` https://api.cloud.wowza.com/api/v1/live_streams ``` ## Example query Here is a complete example POST request, in cURL, with proper JSON syntax, headers, authentication, and version information: ```bash curl -H 'wsc-api-key: [64-character-api-key-goes-here]' -H 'wsc-access-key: [64-character-access-key-goes-here]' -H 'Content-Type: application/json' -X POST -d '{ "live_stream": { "name": "My live Stream", "...": "..." } }' https://api.cloud.wowza.com/api/v1/live_streams ```
Wowza Streaming Cloud REST API Reference Documentation is a media API from wowza.com. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 104 endpoints.
At a glance
- Authentication
- API key
- HTTPS
- Yes
- CORS
- Unknown
- Category
- Media
- Base URL
https://api-sandbox.cloud.wowza.com/api/v1- Version
- 1
- Endpoints
- 104
- OpenAPI
- Specification ↗
- Spec updated
- 2017-11-25
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "https://api-sandbox.cloud.wowza.com/api/v1/api/v1/specs" \
-H "Accept: application/json" \
-H "X-API-Key: YOUR_API_KEY"const response = await fetch("https://api-sandbox.cloud.wowza.com/api/v1/api/v1/specs", {
method: "GET",
headers: {
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY",
},
});
const data = await response.json();
console.log(data);import requests
response = requests.request(
"GET",
"https://api-sandbox.cloud.wowza.com/api/v1/api/v1/specs",
headers={
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| GET | /api/v1/specs | Fetch Swagger information |
| GET | /live_streams | Fetch all live streams |
| POST | /live_streams | Create a live stream |
| GET | /live_streams/{id} | Fetch a live stream |
| PATCH | /live_streams/{id} | Update a live stream |
| DELETE | /live_streams/{id} | Delete a live stream |
| PUT | /live_streams/{id}/regenerate_connection_code | Regenerate the connection code for a live stream |
| PUT | /live_streams/{id}/reset | Reset a live stream |
| PUT | /live_streams/{id}/start | Start a live stream |
| GET | /live_streams/{id}/state | Fetch the state of a live stream |
| GET | /live_streams/{id}/stats | Fetch metrics for an active live stream |
| PUT | /live_streams/{id}/stop | Stop a live stream |
| GET | /live_streams/{id}/thumbnail_url | Fetch the thumbnail URL of a live stream |
| GET | /players | Fetch all players |
| GET | /players/{id} | Fetch a player |
| PATCH | /players/{id} | Update a player |
| POST | /players/{id}/rebuild | Rebuild player code |
| GET | /players/{id}/state | Fetch the state of a player |
| GET | /players/{player_id}/urls | Fetch all player URLs |
| POST | /players/{player_id}/urls | Create a player URL |
| GET | /players/{player_id}/urls/{id} | Fetch a player URL |
| PATCH | /players/{player_id}/urls/{id} | Update a player URL |
| DELETE | /players/{player_id}/urls/{id} | Delete a player URL |
| GET | /recordings | Fetch all recordings |
| GET | /recordings/{id} | Fetch a recording |
| DELETE | /recordings/{id} | Delete a recording |
| GET | /recordings/{id}/state | Fetch the state of a recording |
| GET | /schedules | Fetch all schedules |
| POST | /schedules | Create a schedule |
| GET | /schedules/{id} | Fetch a schedule |
| PATCH | /schedules/{id} | Update a schedule |
| DELETE | /schedules/{id} | Delete a schedule |
| PUT | /schedules/{id}/disable | Disable a schedule |
| PUT | /schedules/{id}/enable | Enable a schedule |
| GET | /schedules/{id}/state | Fetch the state of a schedule |
| GET | /stream_sources | Fetch all stream sources |
| POST | /stream_sources | Add a stream source |
| POST | /stream_sources/adddeprecated | Deprecated operation |
| GET | /stream_sources/{id} | Fetch a stream source |
| PATCH | /stream_sources/{id} | Update a stream source |
| DELETE | /stream_sources/{id} | Delete a stream source |
| GET | /stream_targets | Fetch all stream targets |
| POST | /stream_targets | Create a stream target |
| POST | /stream_targets/adddeprecated | Deprecated operation |
| GET | /stream_targets/{id} | Fetch a stream target |
| PATCH | /stream_targets/{id} | Update a stream target |
| DELETE | /stream_targets/{id} | Delete a stream target |
| GET | /stream_targets/{id}/metrics/current | Fetch current health metrics for an active Wowza ultra low latency stream target |
| GET | /stream_targets/{id}/metrics/historic | Fetch historic health metrics for a Wowza ultra low latency stream target |
| PUT | /stream_targets/{id}/regenerate_connection_code | Regenerate the connection code for a stream target |
| GET | /stream_targets/{stream_target_id}/geoblock | Fetch geo-blocking for a stream target |
| POST | /stream_targets/{stream_target_id}/geoblock | Create geo-blocking for a stream target |
| PATCH | /stream_targets/{stream_target_id}/geoblock | Update geo-blocking for a stream target |
| GET | /stream_targets/{stream_target_id}/properties | Fetch all properties of a stream target |
| POST | /stream_targets/{stream_target_id}/properties | Create a property for a stream target |
| GET | /stream_targets/{stream_target_id}/properties/{id} | Fetch a property of a stream target |
| DELETE | /stream_targets/{stream_target_id}/properties/{id} | Delete a stream target property |
| GET | /stream_targets/{stream_target_id}/token_auth | Fetch token authorization for a stream target |
| POST | /stream_targets/{stream_target_id}/token_auth | Create token authorization for a stream target |
| PATCH | /stream_targets/{stream_target_id}/token_auth | Update token authorization for a stream target |
| GET | /transcoders | Fetch all transcoders |
| POST | /transcoders | Create a transcoder |
| GET | /transcoders/{id} | Fetch a transcoder |
| PATCH | /transcoders/{id} | Update a transcoder |
| DELETE | /transcoders/{id} | Delete a transcoder |
| PUT | /transcoders/{id}/disable_all_stream_targets | Disable a transcoder's stream targets |
| PUT | /transcoders/{id}/enable_all_stream_targets | Enable a transcoder's stream targets |
| GET | /transcoders/{id}/recordings | Fetch a transcoder's recordings |
| PUT | /transcoders/{id}/reset | Reset a transcoder |
| GET | /transcoders/{id}/schedules | Fetch transcoder's schedules |
| PUT | /transcoders/{id}/start | Start a transcoder |
| GET | /transcoders/{id}/state | Fetch the state and uptime ID of a transcoder |
| GET | /transcoders/{id}/stats | Fetch statistics for a current transcoder |
| PUT | /transcoders/{id}/stop | Stop a transcoder |
| GET | /transcoders/{id}/thumbnail_url | Fetch the thumbnail URL of a transcoder |
| GET | /transcoders/{transcoder_id}/outputs | Fetch all outputs of a transcoder |
| POST | /transcoders/{transcoder_id}/outputs | Create an output |
| GET | /transcoders/{transcoder_id}/outputs/{id} | Fetch an output |
| PATCH | /transcoders/{transcoder_id}/outputs/{id} | Update an output |
| DELETE | /transcoders/{transcoder_id}/outputs/{id} | Delete an output |
| POST | /transcoders/{transcoder_id}/outputs/{id}/add_stream_targetdeprecated | Deprecated operation |
| DELETE | /transcoders/{transcoder_id}/outputs/{id}/remove_stream_targetdeprecated | Deprecated operation |
| GET | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets | Fetch all output stream targets of an output of a transcoder |
| POST | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets | Create an output stream target |
| GET | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets/{stream_target_id} | Fetch an output stream target |
| PATCH | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets/{stream_target_id} | Update an output stream target |
| DELETE | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets/{stream_target_id} | Delete an output stream target |
| PUT | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets/{stream_target_id}/disable | Disable an output stream target |
| PUT | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets/{stream_target_id}/enable | Enable an output stream target |
| PUT | /transcoders/{transcoder_id}/outputs/{output_id}/output_stream_targets/{stream_target_id}/restart | Restart an output stream target |
| GET | /transcoders/{transcoder_id}/properties | Fetch a transcoder's properties |
| POST | /transcoders/{transcoder_id}/properties | Create a property for a transcoder |
| GET | /transcoders/{transcoder_id}/properties/{id} | Fetch a property for a transcoder |
| DELETE | /transcoders/{transcoder_id}/properties/{id} | Delete a transcoder's property |
| GET | /transcoders/{transcoder_id}/uptimes | Fetch all uptime records for a transcoder |
| GET | /transcoders/{transcoder_id}/uptimes/{id} | Fetch an uptime record |
| GET | /transcoders/{transcoder_id}/uptimes/{id}/metrics/current | Fetch current stream health metrics for an active transcoder |
| GET | /transcoders/{transcoder_id}/uptimes/{id}/metrics/historic | Fetch historic stream health metrics for a transcoder |
| GET | /usage/network/stream_sources | Fetch network usage for all stream sources |
| GET | /usage/network/stream_targets | Fetch network usage for all stream targets |
Showing the first 100 of 104 endpoints; the full list is in the documentation.
Questions
Does the Wowza Streaming Cloud REST API Reference Documentation API need an API key?
Yes. The Wowza Streaming Cloud REST API Reference Documentation API uses API key authentication; the documentation explains how to get credentials.
Does the Wowza Streaming Cloud REST API Reference Documentation API support HTTPS?
Yes, the Wowza Streaming Cloud REST API Reference Documentation API is served over HTTPS.
How many endpoints does the Wowza Streaming Cloud REST API Reference Documentation API have?
Its OpenAPI description lists 104 endpoints in version 1. The first 100 are shown on this page.
What are alternatives to the Wowza Streaming Cloud REST API Reference Documentation API?
Other Media APIs include SiriKit Cloud Media, Radio & Music Services, Spotify Web API, setlist.fm API, NBA Stats API.
Similar media APIs
Compare alternatives →SiriKit Cloud Media
MediaAdd intelligent features with Apple Intelligence, machine learning, and related technologies.
Radio & Music Services
MediaWe encapsulate Radio & Music business logic for iPlayer Radio and BBC Music products on all platforms. We add value by reliably providing the right blend of metadata needed by clients.
Spotify Web API
MediaYou can use Spotify's Web API to discover music and podcasts, manage your Spotify library, control audio playback, and much more. Browse our available Web API endpoints using the sidebar at left, or via the navigation bar on top of this page on smaller screens. In order to make successful Web API requests your app will need a valid access token. One can be obtained through <a href="https://developer.spotify.com/documentation/general/guides/authorization-guide/">OAuth 2.0</a>. The base URI for all Web API requests is `https://api.spotify.com/v1`. Need help? See our <a href="https://developer.spotify.com/documentation/web-api/guides/">Web API guides</a> for more information, or visit the <a href="https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotify_Developer">Spotify for Developers community forum</a> to ask questions and connect with other developers.
setlist.fm API
Media<p> The setlist.fm API has been designed to give you easy access to setlist data in order to build fancy websites and other applications. Before starting to use the API, be sure to ... <ol> <li>... understand how setlist.fm works (the <a href="https://www.setlist.fm/faq">FAQ</a> and the <a href="https://www.setlist.fm/guidelines">Guidelines</a> are a good starting point),</li> <li>... read this documentation carefully and</li> <li>... <a href="https://www.setlist.fm/settings/api">apply for an API key</a> (link for logged in users only) - if you're no registered user yet, then <a href="https://www.setlist.fm/signup">register first</a> (it's free).</li> </ol> </p> <p> If this documentation isn't enough or if you've got other things you'd like to tell us about the API, visit the <a href="https://www.setlist.fm/forum/setlistfm/setlistfm-api">API Forum</a>. </p> <p> Note that the setlist.fm API is, according to the <a href="https://www.setlist.fm/help/api-terms">API terms of service</a>, only free for non-commercial projects. If you're interested in using the API for commercial purposes, <a href="https://www.setlist.fm/contact">contact us</a>. </p> <h2>About this Service</h2> <p> This service provides methods to get both setlists and components of setlists such as artists, cities, countries or venues. </p> <h2>Supported Content Types</h2> <p> The REST service currently supports XML (default) and JSON content. </p> <p> To receive a JSON response, set the <code>Accept</code> <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">header</a> to <em>application/json</em>. </p> <h2>Internationalization</h2> <p> <small>(Please note that this is an experimental feature and does not work for all cities!)</small> </p> <p> Most of the featured methods honor the <code>Accept-Language</code> <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">header</a>. This header is used for localizing cities and countries. The default language is English (en), but you can provide any of the languages Spanish (es), French (fr), German (de), Portuguese (pt), Turkish (tr), Italian (it) or Polish (pl). </p> <p> E.g. if you search a setlist for a concert that took place in Vienna and you pass "de" as header, you'll get <em>"Wien, Österreich"</em> instead of <em>"Vienna, Austria"</em>.<br/> This also works if you use a different language than the country's native language. </p> <p> E.g. for a concert in New York, you'll get <em>"Nueva York, Estados Unidos"</em> instead of <em>"New York, United States"</em> if you pass "es" as language. </p> <h2>API Keys</h2> API keys (<a href="https://www.setlist.fm/settings/api">application form</a>) must be included in the request with the <code>x-api-key</code> header. <h2>Version History</h2> <table class="table table-bordered table-versions"> <thead> <tr> <th>Version</th> <th>Docs</th> <th>End of Service</th> </tr> </thead> <tbody> <tr> <td><strong>1.0</strong></td> <td><a href="/docs/1.0">Docs</a></td> <td>-</li> </tr> <tr> <td><strong>0.1</strong></td> <td></td> <td>December 31, 2017</li> </tr> </tbody> </table>
NBA Stats API
MediaThe destination for current and historic NBA statistics.
APOD
MediaThis endpoint structures the APOD imagery and associated metadata so that it can be repurposed for other applications. In addition, if the concept_tags parameter is set to True, then keywords derived from the image explanation are returned. These keywords could be used as auto-generated hashtags for twitter or instagram feeds; but generally help with discoverability of relevant imagery
Listed from APIs.guru (CC0).