This guide walks you through setting up and using the Wowza Video Intelligence Framework (VIF) Postman collection to monitor and control real-time AI video analysis on Wowza Streaming Engine (WSE).
The collection exposes the VIF REST API which is the control plane for object detection, scene analysis, and event-driven intelligence on your live streams. With it you can check system and per-stream health, read and update configuration at three levels (defaults, stream patterns, and single streams), and pull annotated thumbnails.
Before you start, make sure you have:
- A running Wowza Streaming Engine with the VIF module installed and the REST API enabled (default port
8087). - Your WSE Manager username and password.
- Postman installed.
- The collection file imported — or the accompanying
vif-openapi-3.1.yamlspec, if you prefer working from OpenAPI.
The VIF collection is published on Postman here:
postman.com/wowzavideo/wowza-video-intelligence-framework
Fork it into your own workspace so your copy stays linked to the published source:
- Open the collection link above in Postman.
- Click the ⋯ menu next to the collection name and choose Create a fork (or click the fork icon).
- Give your fork a label.
- Select the workspace to fork it into.
- Click Fork Collection.
Your forked copy appears in your workspace with all folders and saved example responses.
If you don't have a Postman account or prefer a standalone copy, you can Import the Wowza Video Intelligence Framework (VIF) - Postman Collection.postman_collection.json file instead. An imported copy works the same way day to day but is not linked to the source, so it won't receive updates.
Click the collection name, open the Variables tab, and set the values for your environment. The collection ships with sensible defaults, so in most cases you only need to fill in your credentials.
| Variable | Purpose | Example |
|---|---|---|
baseURL | WSE REST API base URL | http://localhost:8087 |
server | WSE server name | _defaultServer_ |
appName | Your Wowza application | live |
streamName | A specific stream | myStream |
streamType | Stream name or regex pattern for saved config | object.* |
vhost | Virtual host (qualified paths) | _defaultVHost_ |
instance | Application instance (qualified paths) | _definst_ |
overlay | Draw detection overlays on thumbnail | true |
frameId | Thumbnail frame id (0 = latest) | 0 |
WSE_userName | WSE Manager username | admin |
WSE_password | WSE Manager password | your_password |
Every request uses HTTP Basic Auth, inherited from the collection level — you only set WSE_userName and WSE_password once and all requests pick them up. A built-in pre-request script warns you in the console if baseURL, WSE_userName, or WSE_password is missing, and a collection-level test flags 401 (bad credentials) and 404 (wrong server/app/stream) responses.
The requests are grouped into folders that mirror the API:
- Status & Health — check overall system status (versions, CPU, GPU utilization, active streams) and drill into a single stream's performance metrics.
- Configuration (Defaults) — read and update the global default settings that apply to any stream without its own override.
- Stream Management – Active Config — read or change the in-memory config of a running stream: enable/disable VIF, adjust
skip_frames, swap models, toggle overlays. - Stream Management – Saved Config — read, create, update, or delete the persisted per-stream config in
video-intelligence.json, including a fully-qualified vhost/instance variant. - Media — retrieve a stream thumbnail, optionally with detection overlays and a chosen frame.
- Server Management — restart WSE when a change requires it.
GET /v1/{server}/plugin/vif/status
GET /v1/{server}/plugin/vif/config
PUT /v1/{server}/plugin/vif/config
GET /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName} (active config)
PUT /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}
GET /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}/config (saved config)
PUT /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}/config
POST /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}/config
DELETE /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}/config
GET /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}/status
GET /v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}/thumbnail?overlay=&frameId=A fully-qualified variant lets you name the virtual host and instance explicitly: /v1/{server}/plugin/vif/vhosts/{vhost}/applications/{appName}/instances/{instance}/streams/{streamName}/config. When omitted, these default to _defaultVHost_ and _definst_.
This distinction matters. Active config (.../streams/{streamName}) is what's applied in memory to a running stream right now — changes take effect immediately and are ideal for live tuning. Saved config (.../streams/{streamName}/config) is what's persisted to disk and reloaded on restart. Use active config to experiment on a live stream, and saved config to make changes stick.
Start with Check System Status to confirm connectivity and see your GPU and active streams. Read the current configuration with Get Default Configuration so you know what you're modifying. Enable analysis on a stream via Enable / Disable VIF on a Stream, then fine-tune with Update Active Stream Settings (e.g. detection classes, model size, confidence threshold). Monitor the result with Check Single Stream Status, and pull a Get Stream Thumbnail with overlay=true to visually confirm detections. If a change requires it, use Restart WSE and wait 15–30 seconds before resuming.
Enable VIF globally: { "active": true }
Process every Nth frame: { "skip_frames": 10 }
Set object detection classes:
{ "object_analysis": { "class_names": ["person", "car", "truck"] } }Switch model and tighten confidence:
{ "object_analysis": { "model_name": "large", "confidence_threshold": 0.5 } }Set scene detection classes:
{ "scene_analysis": { "class_names": ["taking pictures", "running", "fight"] } }Disable the overlay event listener on a stream:
{ "vif_event_listeners": { "Overlays": { "methods": ["disabled"] } } }Each request ships with a saved example response, so you can see the expected payload shape without hitting a live server. If you get a 401, recheck WSE_userName and WSE_password; a 404 usually means server, appName, or streamName doesn't match your setup. Remember that some settings apply live while others need a WSE restart — when in doubt, restart and re-check status. Thumbnail responses are binary images and render in Postman's response preview pane; use Send and Download to save one to disk.
The vif-openapi-3.1.yaml OpenAPI 3.1 specification describes the same API with full request/response schemas, and can be imported directly into Postman or used for code generation and validation.
For more information, see Wowza VIF Documentation.