Skip to content
Last updated

Trial the Wowza VIF Postman Collection

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).

What it covers

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.

Prerequisites

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.yaml spec, if you prefer working from OpenAPI.

Fork the collection

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:

  1. Open the collection link above in Postman.
  2. Click the menu next to the collection name and choose Create a fork (or click the fork icon).
  3. Give your fork a label.
  4. Select the workspace to fork it into.
  5. 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.

Configure variables

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.

VariablePurposeExample
baseURLWSE REST API base URLhttp://localhost:8087
serverWSE server name_defaultServer_
appNameYour Wowza applicationlive
streamNameA specific streammyStream
streamTypeStream name or regex pattern for saved configobject.*
vhostVirtual host (qualified paths)_defaultVHost_
instanceApplication instance (qualified paths)_definst_
overlayDraw detection overlays on thumbnailtrue
frameIdThumbnail frame id (0 = latest)0
WSE_userNameWSE Manager usernameadmin
WSE_passwordWSE Manager passwordyour_password

Authentication

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.

How the collection is organized

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.

The endpoints at a glance

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_.

Understand active vs. saved config

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.

A typical workflow

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.

Common configuration examples

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"] } } }

Tips and troubleshooting

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.