This guide walks you through setting up and using the Wowza Video Intelligence Framework (VIF) v2 Postman collection to configure and monitor real-time AI video analysis on Wowza Streaming Engine (WSE).
This collection covers the v2 REST API. The v1 API is deprecated, and Wowza strongly urges customers to move any integration to v2 — a v1 write silently breaks settings saved through 1.1.0 or later, since it rewrites your configuration files in the old format. See How to upgrade to Wowza Video Intelligence Framework 1.1.0 if you're still on a v1 installation.
The collection exposes the VIF v2 REST API, the control plane for object detection, scene analysis, and VLM (vision-language model) analysis on your live streams. With it you can check framework and per-stream status, read and manage configuration at every layer (default, stream group, and per-stream override), run VOD analysis jobs, and pull stream thumbnails.
Before you start, make sure you have:
- A running Wowza Streaming Engine (4.11.1 or later) with the VIF 1.1.0+ module installed and the REST API enabled (default port
8087). - Your WSE Manager username and password.
- Postman installed.
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.
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 |
|---|---|---|
scheme | http or https | http |
host | WSE host | localhost |
port | Engine REST API port | 8087 |
baseUrl | Computed from scheme/host/port; don't edit directly | {{scheme}}://{{host}}:{{port}}/v2/vif |
app | Engine application holding the stream | live |
stream | A specific stream's exact name | front-entrance |
groupConfigName | A stream group config's name (not a pattern) | front-entrance-cams |
listenerName | A listener's name | Overlays |
jobId | A VOD job's id | 8f14e45f-ceea-467e-9575-9e0d0b0f4a5c |
vodFile | A file under the content directory | uploads/front-entrance-2024-06-01.mp4 |
WSE_userName | WSE Manager username | admin |
WSE_password | WSE Manager password | your_password |
Every request uses HTTP Basic Auth, inherited from the collection level — set WSE_userName and WSE_password once and every request picks 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 (a variable doesn't match anything on your Engine).
The requests are grouped into folders that mirror the API itself:
- Server — framework-wide status: which VIS instances are connected, which streams are running, and which detection models are available. Read-only.
- Runtime — the stream instances currently running. Writes here are ephemeral: they change only the running instance, are never saved, and are lost on restart.
- Persist — the durable configuration that lives on disk whether or not a stream is running: stream group configs and per-stream overrides.
- Probes — connectivity checks for external endpoints, such as the VLM endpoint a detector calls out to.
- VOD — on-demand analysis: the video files under the Engine's content directory, and the jobs that analyze them.
Almost everything in this API comes down to one idea: a config, the group of settings that tells VIF how to analyze a stream. A stream's actual, effective config is built from four layers, from most general to most specific: the default config, then a matching stream group config (applies to every stream whose name matches a pattern), then a per-stream override (applies to one specific stream by exact name), then any changes made directly to the running stream. Each layer fills in whatever the one below it left unset.
Start with Framework status in the Server folder to confirm connectivity and see connected VIS instances and running streams. Read Default config so you know the baseline every stream inherits. Create a stream group config to apply settings automatically to any stream matching a pattern (e.g. front-entrance*), or write a per-stream override for one specific stream. Check One running stream to see the resolved config, health, and performance for a stream that's actually running. Use Thumbnail image of the running stream with an overlay to visually confirm detections.
For one-off analysis instead of a live stream, upload a file with Upload a source file into the content directory, then Submit a file for analysis and poll One job until it completes.
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 app, stream, groupConfigName, listenerName, jobId, or vodFile doesn't match your setup. Writes to /persist resources require an If-Match header quoting the document's current ETag — read the document first if you get a 428 or 412. Thumbnail responses are binary images and render in Postman's response preview pane; use Send and Download to save one to disk.
- About Wowza Video Intelligence Framework: overview of VIF's components and deployment options
- How to upgrade to Wowza Video Intelligence Framework 1.1.0: moving an existing 1.0.x installation, including why v1 writes are unsafe once you're on 1.1.0