# Monitor streaming events with webhooks Wowza Streaming Engine 4.9.6 adds webhook functionality to provide real-time notifications for key streaming events. Instead of continuously polling the REST API, you can now register webhook endpoints to receive event updates automatically as they happen. These enhancements improve both efficiency and responsiveness, making it easier to monitor, automate, and manage streaming workflows with minimal overhead. This article explains how to set up the **WebhookListener** module using the Wowza Streaming Engine REST API. If you prefer a more manual setup using XML and JSON configuration and a text editor, see [Create webhooks to monitor streaming events in Wowza Streaming Engine](https://www.wowza.com/docs/create-webhooks-to-monitor-streaming-events-in-wowza-streaming-engine). ## Overview The webhooks feature in Wowza Streaming Engine requires a one-time configuration of **Server.xml** and **Webhooks.json**. As this article explains, you can use the Wowza Streaming Engine REST API to complete and manage this configuration. When you update the **Server.xml** file, you ensure that the **WebhookListener** module is loaded when Wowza Streaming Engine starts. The **Webhooks.json** file defines how webhook events are generated and delivered. This file specifies the source identity, filtering criteria, and delivery endpoints for your webhooks. The base URL or root endpoint for this workflow is: ``` http://[your-wowza-server]:8087/v2/servers/{serverName}/webhooks ``` To better understand the events you can capture, see [Supported webhook events](https://www.wowza.com/docs/create-webhooks-to-monitor-streaming-events-in-wowza-streaming-engine#supported-webhook-events). ## Before you start Before you start working with the steps in this guide, we recommend that: - You're familiar with using cURL for making HTTP requests. For more, see [Query the REST API using cURL](https://www.wowza.com/docs/how-to-query-the-wowza-streaming-engine-rest-api#query-the-rest-api-using-curl). - You review the [Authenticating requests](https://www.wowza.com/docs/how-to-query-the-wowza-streaming-engine-rest-api#authenticating-requests2) section to better understand how to authenticate API requests. - You review [Create webhooks to monitor streaming events in Wowza Streaming Engine](https://www.wowza.com/docs/create-webhooks-to-monitor-streaming-events-in-wowza-streaming-engine). - You review the [Wowza Streaming Engine Webhooks.json configuration reference](https://www.wowza.com/docs/wowza-streaming-engine-webhooksjson-configuration-reference). - If you're using webhooks to capture recording events, review [Create and manage stream recorders by using the Wowza Streaming Engine REST API](https://www.wowza.com/docs/stream-recording-query-examples) for information on obtaining a list of recordings, creating a recorder, splitting an active recording, or stopping a recording. ## Webhooks REST API endpoint reference You can use the various API requests in this section to programmatically manage and work with REST API endpoints for your webhooks. For more details, see the [Wowza Streaming Engine Webhooks.json configuration reference](https://www.wowza.com/docs/wowza-streaming-engine-webhooksjson-configuration-reference). In the examples, all values in **curly brackets { }** are placeholders and should be replaced with your own values, where appropriate. details summary span GET span /v2/servers/{serverName}/webhooks p strong Purpose: Fetch all webhook configurations to view the current rules and targets defined in the strong Webhooks.json file. p strong Sample request: pre curl -X GET --basic -u " USERNAME:PASSWORD " \ -H " Accept: application/JSON; charset=utf-8 " \ -H " Content-Type: application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks " p strong Sample response: pre { " serverName " : " _defaultServer_ " , " webhooks " : {   " debugLog " : false, " filters " : [ { " criteria " : " vHost.*.app.myApp.appInstance.*.stream.*.state.* " , " enabled " : false, " id " : " myAppStreamFilter " , " maxRetryAttempts " : 3, " retryDelay " : 5, " retryDelayUnit " : " m " , " targetRef " : " myEndpointName " }, { " criteria " : " vHost.myVhost. > " , " enabled " : false, " id " : " myServerFilter " , " maxRetryAttempts " : 3, " retryDelay " : 5, " retryDelayUnit " : " ms " , " targetRef " : " myEndpointName2 " }, { " criteria " : " vHost.myVhost2.app.*.appInstance._definst_. > " , " enabled " : false, " id " : " myAppInstanceFilter " , " maxRetryAttempts " : null, " retryDelay " : null, " retryDelayUnit " : null, " targetRef " : " myEndpointName " } ], " source " : " myWSEInstanceName " , " targets " : [ { " auth " : { " secret " : " abc123secret " , " type " : " jwt " }, " headers " : [ { " name " : " Authorization " , " value " : " Bearer abc123token " }, { " name " : " X-Custom-Header " , " value " : " my-value " } ], " id " : " myEndpointName " , " url " : " https://my.site.com/ " }, { " auth " : { " secret " : " def456secret " , " type " : " jwt " }, " headers " : [ { " name " : " Authorization " , " value " : " Bearer def456token " }, { " name " : " X-Custom-Header " , " value " : " my-value2 " } ], " id " : " myEndpointName2 " , " url " : " https://my.site2.com/ " } ] } } details summary span PUT span /v2/servers/{serverName}/webhooks p strong Purpose: Update the current rules and targets defined in the span Webhooks.json file. The following sample request sends supported webhook events from the strong _defaultServer_ virtual host to a URL defined in the strong targets array. p strong Sample request: pre curl -X PUT --basic -u " USERNAME:PASSWORD " \ -H " Accept: application/JSON; charset=utf-8 " \ -H " Content-Type: application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks " \ -d ' { " serverName " : " _defaultServer_ " , " webhooks " : { " source " : " myWSEInstanceName " , " filters " : [ { " id " : " myServerFilter " , " enabled " : true, " criteria " : " vHost._defaultVHost_. > " , " targetRef " : " myEndpointName " } ], " targets " : [ { " id " : " myEndpointName " , " url " : " https://webhook.site/123e4567-e89b-12d3-a456-426614174000 " , " auth " : { " secret " : " def456secret " , " type " : " jwt " }, " headers " : [ { " name " : " Authorization " , " value " : " Bearer def456token " }, { " name " : " X-Custom-Header " , " value " : " my-value " } ] } ] } } ' p strong Sample response: pre { " webhooks " : { " source " : " myWSEInstanceName " , " filters " : [ { " id " : " myServerFilter " , " enabled " : true,   " targetRef " : " myEndpointName " ,   " retryDelay " : null, " criteria " : " vHost._defaultVHost_. > " , " maxRetryAttempts " : null,   " retryDelayUnit " : null } ], " targets " : [ { " id " : " myEndpointName " , " url " : " https://webhook.site/123e4567-e89b-12d3-a456-426614174000 " , " headers " : [ { " name " : " Authorization " , " value " : " Bearer def456token " }, { " name " : " X-Custom-Header " , " value " : " my-value " } ], " auth " : { " type " : " jwt " , " secret " : " def456secret " } } ] } } details summary span GET span /v2/servers/{serverName}/webhooks/filters p strong Purpose: Fetch a list of all filters defined in the span Webhooks.json file. p strong Sample request: pre curl -X GET --basic -u " USERNAME:PASSWORD " \ -H " Accept:application/JSON; charset=utf-8 " \ -H " Content-Type:application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/filters " p strong Sample response: pre { " serverName " : " _defaultServer_ " , " filters " : [ { " criteria " : " vHost._defaultVHost_. > " ,   " enabled " : true,   " id " : " myServerFilter " ,   " maxRetryAttempts " : null,   " retryDelay " : null,   " retryDelayUnit " : null, " targetRef " : " myEndpointName " } ] } details summary span POST span /v2/servers/{serverName}/webhooks/filters p strong Purpose: Create a filter in the span Webhooks.json file. This requires that the strong targetRef exists. In this case, we ' re creating a filter with the strong myAppStartedFilter identifier. p strong Sample request: pre curl -X POST --basic -u " USERNAME:PASSWORD " \ -H " Accept: application/JSON; charset=utf-8 " \ -H " Content-Type: application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/filters " \ -d ' { " id " : " myAppStartedFilter " , " enabled " : true, " criteria " : " vHost.*.app.*.appInstance.*.stream.*.state.started " , " targetRef " : " myEndpointName " , " serverName " : " _defaultServer_ " } ' p strong Sample response: pre { " id " : " myAppStartedFilter " , " enabled " : true,   " targetRef " : " myEndpointName " ,   " retryDelay " : null, " criteria " : " vHost.*.app.*.appInstance.*.stream.*.state.started " ,   " maxRetryAttempts " : null,   " retryDelayUnit " : null } details summary span GET span /v2/servers/{serverName}/webhooks/filters/{id} p strong Purpose: Fetch a webhook filter based on the filter strong id path parameter. In this case, we ' re getting details about the strong myAppStartedFilter . p strong Sample request: pre curl -X GET --basic -u " USERNAME:PASSWORD " \ -H " Accept:application/JSON; charset=utf-8 " \ -H " Content-Type:application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/filters/myAppStartedFilter " p strong Sample response: pre { " criteria " : " vHost.*.app.*.appInstance.*.stream.*.state.started " ,   " enabled " : true,   " serverName " : " _defaultServer_ " ,   " targetRef " : " myEndpointName " } details summary span PUT span /v2/servers/{serverName}/webhooks/filters/{id} p strong Purpose: Update a webhook filter based on the filter strong id path parameter. In this case, we ' re span modifying the strong myAppStartedFilter criteria to notify us when any stream on the server has stopped. blockquote strong Note: The filter strong id value cannot be updated using this method. p strong Sample request: pre curl -X PUT --basic -u " USERNAME:PASSWORD " \ -H " Accept: application/JSON; charset=utf-8 " \ -H " Content-Type: application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/filters/myAppStartedFilter " \ -d ' { " criteria " : " vHost.*.app.*.appInstance.*.stream.*.state.stopped " , " enabled " : true, " id " : " myAppStartedFilter " , " serverName " : " _defaultServer_ " , " targetRef " : " myEndpointName " } ' p strong Sample response: pre { " criteria " : " vHost.*.app.*.appInstance.*.stream.*.state.stopped " , " enabled " : true, " id " : " myAppStartedFilter " , " maxRetryAttempts " : null, " retryDelay " : null, " retryDelayUnit " : null, " targetRef " : " myEndpointName " } details summary span DELETE span /v2/servers/{serverName}/webhooks/filters/{id} p strong Purpose: Delete a webhook filter based on the filter strong id path parameter. In this case, we ' re deleting the filter with the strong myAppStartedFilter span strong identifier. p strong Sample request: pre curl -X DELETE --basic -u " USERNAME:PASSWORD " \ -H " Accept:application/JSON; charset=utf-8 " \ -H " Content-Type:application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/filters/myAppStartedFilter " p strong Sample response: pre { " success " : true, " message " : " Deleted " , " data " : null } details summary span GET span /v2/servers/{serverName}/webhooks/source p strong Purpose: Fetch the source from a strong Webhooks.json configuration file. p strong Sample request: pre curl -X GET --basic -u " USERNAME:PASSWORD " \ -H " Accept:application/JSON; charset=utf-8 " \ -H " Content-Type:application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/source " p strong Sample response: pre { " serverName " : " _defaultServer_ " , " source " : " myWSEInstanceName " } details summary span PUT span /v2/servers/{serverName}/webhooks/source p strong Purpose: Update the source in the strong Webhooks.json configuration file. In this case, we ' re updating the source name to strong myWSEInstanceNameUpdated . p strong Sample request: pre curl -X PUT --basic -u " USERNAME:PASSWORD " \ -H " Accept: application/JSON; charset=utf-8 " \ -H " Content-Type: application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/source " \ -d ' { " source " : " myWSEInstanceNameUpdated " } ' p strong Sample response: pre { " source " : " myWSEInstanceNameUpdated " } details summary span GET span /v2/servers/{serverName}/webhooks/targets p strong Purpose: Fetch a list of all targets in the strong Webhooks.json configuration file. p strong Sample request: pre curl -X GET --basic -u " USERNAME:PASSWORD " \ -H " Accept:application/JSON; charset=utf-8 " \ -H " Content-Type:application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/targets " p strong Sample response: pre { " serverName " : " _defaultServer_ " , " targets " : [ { " auth " : { " secret " : " def456secret " , " type " : " jwt " }, " headers " : [ { " name " : " Authorization " , " value " : " Bearer def456token " }, { " name " : " X-Custom-Header " , " value " : " my-value " } ], " id " : " myEndpointName " , " url " : " https://webhook.site/123e4567-e89b-12d3-a456-426614174000 " } ] } details summary span POST span /v2/servers/{serverName}/webhooks/targets p strong Purpose: Create a target in the strong Webhooks.json configuration file. In this case, we ' re adding a new strong myEndpointName2 target. p strong Sample request: pre curl -X POST --basic -u " USERNAME:PASSWORD " \ -H " Accept: application/JSON; charset=utf-8 " \ -H " Content-Type: application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/targets " \ -d ' { " serverName " : " _defaultServer_ " , " id " : " myEndpointName2 " , " url " : " https://webhook.site/9f8b7c6d-a12b-34d5-b678-90abcdef1234 " } ' p strong Sample response: pre { " id " : " myEndpointName2 " , " url " : " https://webhook.site/9f8b7c6d-a12b-34d5-b678-90abcdef1234 " , " headers " : null, " auth " : null, } details summary span GET span /v2/servers/{serverName}/webhooks/targets/{id} p strong Purpose: Fetch a target from the strong Webhooks.json configuration file using the strong id path parameter. In this case, we ' re getting details about the strong myEndpointName2 target. p strong Sample request: pre curl -X GET --basic -u " USERNAME:PASSWORD " \ -H " Accept:application/JSON; charset=utf-8 " \ -H " Content-Type:application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/targets/myEndpointName2 " p strong Sample response: pre { " serverName " : " _defaultServer_ " , " url " : " https://webhook.site/9f8b7c6d-a12b-34d5-b678-90abcdef1234 " } details summary span PUT span /v2/servers/{serverName}/webhooks/targets/{id} p strong Purpose: Update a target in the strong Webhooks.json configuration file based on the strong id path parameter. In this case, we ' re updating the strong myEndpointName2 target. p strong Sample request: pre curl -X PUT --basic -u " USERNAME:PASSWORD " \ -H " Accept: application/JSON; charset=utf-8 " \ -H " Content-Type: application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/targets/myEndpointName2 " \ -d ' { " id " : " MyEndpointName2 " , " url " : " https://webhook.site/4a1b2c3d-e456-78f9-a012-3456789abcde " , " headers " : [ { " name " : " Authorization " , " value " : " Bearer abc123token " }, { " name " : " X-Custom-Header " , " value " : " some-value " } ], " auth " : { " type " : " jwt " , " secret " : " abc123secret " } } ' p strong Sample response: pre { " id " : " myEndpointName2 " , " url " : " https://webhook.site/4a1b2c3d-e456-78f9-a012-3456789abcde " , " headers " : [ { " name " : " Authorization " , " value " : " Bearer abc123token " }, { " name " : " X-Custom-Header " , " value " : " some-value " } ], " auth " : { " type " : " jwt " , " secret " : " abc123secret " } } details summary span DELETE span /v2/servers/{serverName}/webhooks/targets/{id} p span strong Purpose: Delete a target in the strong Webhooks.json configuration file based on the target strong id path parameter. In this case, we ' re deleting the strong myEndpointName2 target. p strong Sample request: pre curl -X DELETE --basic -u " USERNAME:PASSWORD " \ -H " Accept:application/JSON; charset=utf-8 " \ -H " Content-Type:application/JSON; charset=utf-8 " \ " http://localhost:8087/v2/servers/_defaultServer_/webhooks/targets/myEndpointName2 " p strong Sample response: pre { " success " : true, " message " : " Deleted " , " data " : null } ## 1. Configure your Server.xml file The first step is to update the **Server.xml** configuration file located at **[install-dir]/conf/Server.xml** to include: ```xml com.wowza.wms.webhooks.WebhookListener ``` **Sample request:** ```bash curl -X PUT --basic -u "USERNAME:PASSWORD" \ -H "Accept: application/json; charset=utf-8" \ -H "Content-Type: application/json; charset=utf-8" \ "http://localhost:8087/v2/servers/_defaultServer_" \ -d '{ "description": "desc", "name": "Wowza Streaming Engine", "serverName": "_defaultServer_", "defaultStreamPrefix": "mp4", "ipAddress": "*", "port": 8083, "handlerThreadPool": "${com.wowza.wms.TuningAuto}", "handlerThreadPoolAutoValue": "120", "transportThreadPool": "${com.wowza.wms.TuningAuto}", "transportThreadPoolAutoValue": "80", "rtpDataPortSharing": false, "rtpDataPortSharingPort": 6970, "serverListeners": { "serverName": "_defaultServer_", "serverListeners": [ { "order": 0, "baseClass": "com.wowza.wms.webhooks.WebhookListener" }, { "order": 1, "baseClass": "com.wowza.wms.mediacache.impl.MediaCacheServerListener" } ] }, "serverTS": 0 }' ``` **Sample response:** ```json { "success": true, "message": "Saved", "data": null } ``` ## 2. Configure your Webhooks.json file Next, define the rules and targets in the **Webhooks.json** file. This JSON configuration file defines how webhook events are generated and delivered. For more, see the [Wowza Streaming Engine Webhooks.json configuration reference](https://www.wowza.com/docs/wowza-streaming-engine-webhooksjson-configuration-reference). > **Note:** In this section, we use [Webhook.site](https://webhook.site) to generate a unique URL endpoint to use as a test webhook destination. Webhook.site is useful for quickly inspecting webhook payloads, but it isn't intended for production or automated testing. Request data may be temporary, and the service can reset without notice. It doesn't validate signatures, simulate endpoint logic, or guarantee reliable delivery under load. Another similar testing tool you can use is this [Webhook tester](https://webhook-test.com/). 1. Go to [Webhook.site](https://webhook.site) and create a unique URL for your endpoint. 2. Run this cURL request to fetch the content of the **Webhooks.json** configuration file located at **[install-dir]/conf/Webhooks.json**: ```bash curl -X GET --basic -u "USERNAME:PASSWORD" \ -H "Accept: application/json; charset=utf-8" \ -H "Content-Type: application/json; charset=utf-8" \ "http://localhost:8087/v2/servers/_defaultServer_/webhooks" ``` **Sample response:** ```json { "serverName": "_defaultServer_", "webhooks": { "debugLog": false, "filters": [ { "criteria": "vHost.*.app.myApp.appInstance.*.stream.*.state.*", "enabled": false, "id": "myAppStreamFilter", "maxRetryAttempts": 3, "retryDelay": 5, "retryDelayUnit": "m", "targetRef": "myEndpointName" }, { "criteria": "vHost.myVhost.>", "enabled": false, "id": "myServerFilter", "maxRetryAttempts": 3, "retryDelay": 5, "retryDelayUnit": "ms", "targetRef": "myEndpointName2" }, { "criteria": "vHost.myVhost2.app.*.appInstance._definst_.>", "enabled": false, "id": "myAppInstanceFilter", "maxRetryAttempts": null, "retryDelay": null, "retryDelayUnit": null, "targetRef": "myEndpointName" } ], "source": "myWSEInstanceName", "targets": [ { "auth": { "secret": "abc123secret", "type": "jwt" }, "headers": [ { "name": "Authorization", "value": "Bearer abc123token" }, { "name": "X-Custom-Header", "value": "my-value" } ], "id": "myEndpointName", "url": "https://my.site.com/" }, { "auth": { "secret": "def456secret", "type": "jwt" }, "headers": [ { "name": "Authorization", "value": "Bearer def456token" }, { "name": "X-Custom-Header", "value": "my-value2" } ], "id": "myEndpointName2", "url": "https://my.site2.com/" } ] } } ``` 1. Run the following cURL request to update the **Webhooks.json** configuration file. 2. The endpoint **URL** in the **targets** array is a placeholder. Replace it with your own value, or in this case, add the unique URL from Webhook.site in [step 1](#1-configure-your-serverxml-file): ```bash curl -X PUT --basic -u "USERNAME:PASSWORD" \ -H "Accept: application/json; charset=utf-8" \ -H "Content-Type: application/json; charset=utf-8" \ "http://localhost:8087/v2/servers/_defaultServer_/webhooks" \ -d '{ "serverName": "_defaultServer_", "webhooks": { "source": "myWSEInstanceName", "debugLog": false, "filters": [ { "id": "myServerFilter", "enabled": true, "targetRef": "myEndpointName", "retryDelay": null, "criteria": "vHost._defaultVHost_.>", "maxRetryAttempts": null, "retryDelayUnit": null } ], "targets": [ { "id": "myEndpointName", "url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000", "auth": { "type": "jwt", "secret": "def456secret" }, "headers": [ { "name": "Authorization", "value": "Bearer def456token" }, { "name": "X-Custom-Header", "value": "my-value" } ] } ] } }' ``` **Sample response:** ```json { "webhooks": { "debugLog": false, "source": "myWSEInstanceName", "filters": [ { "id": "myServerFilter", "enabled": true, "targetRef": "myEndpointName", "retryDelay": null, "criteria": "vHost._defaultVHost_.>", "maxRetryAttempts": null, "retryDelayUnit": null } ], "targets": [ { "id": "myEndpointName", "url": "https://webhook.site/123e4567-e89b-12d3-a456-426614174000", "headers": [ { "name": "Authorization", "value": "Bearer def456token" }, { "name": "X-Custom-Header", "value": "my-value" } ], "auth": { "type": "jwt", "secret": "def456secret" } } ] } } ``` > **Note:** In this example, we want to capture supported webhook events only from the ***defaultVHost*** virtual host (vhost) and send them to the target endpoint. For information about authenticating the request, see [JSON Web Token (JWT) details](https://www.wowza.com/docs/wowza-streaming-engine-webhooksjson-configuration-reference#json-web-token-details). ## 3. Restart your server After making any configuration changes to your **Server.xml** and **Webhook.json** files, ensure that you restart your Wowza Streaming Engine server for the changes to take effect. **Sample request:** ```bash curl -X PUT --basic -u "USERNAME:PASSWORD" \ -H "Accept: application/json; charset=utf-8" \ -H "Content-Type: application/json; charset=utf-8" \ "http://localhost:8087/v2/servers/_defaultServer_/actions/restart" ``` **Sample response:** ```json { "success": true, "message": "Restarting server in 5 seconds", "data": null } ``` ## 4. Test your webhook notification In this section, we use [Webhook.site](https://webhook.site) to capture and inspect webhook notifications from Wowza Streaming Engine during development. This makes it easy to view raw payloads, confirm request formatting, and debug your setup. > **Note:** For production environments, you'll want to integrate webhooks in a more secure and scalable manner, for example, by using direct server endpoints to receive and process events in your app, event streaming processors such as Kafka, serverless functions like AWS Lambda, or no-code platforms like Zapier. 1. Start a stream and send it to your Wowza Streaming Engine server. For more about publishing live streams, see [Connect a live source to Wowza Streaming Engine](https://www.wowza.com/docs/how-to-connect-a-publisher-to-wowza-streaming-engine). 2. Use the [unique URL](#1-configure-your-serverxml-file) you created in [Webhook.site](https://webhook.site) to verify that webhook notifications from Wowza Streaming Engine are received. For example, you get a notification each time a stream starts or stops, or an application shuts down. img ## More resources - [Create webhooks to monitor streaming events in Wowza Streaming Engine](https://www.wowza.com/docs/create-webhooks-to-monitor-streaming-events-in-wowza-streaming-engine) - [Wowza Streaming Engine Webhooks.json configuration reference](https://www.wowza.com/docs/wowza-streaming-engine-webhooksjson-configuration-reference) - [Access reference documentation for the Wowza Streaming Engine REST API](https://www.wowza.com/docs/how-to-access-documentation-for-wowza-streaming-engine-rest-api) - [Query the Wowza Streaming Engine REST API](https://www.wowza.com/docs/how-to-query-the-wowza-streaming-engine-rest-api)