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) v2 Postman collection to configure and monitor real-time AI video analysis on Wowza Streaming Engine (WSE).

VIF REST API v1 is deprecated

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.

What it covers

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.

Prerequisites

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.

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.

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
schemehttp or httpshttp
hostWSE hostlocalhost
portEngine REST API port8087
baseUrlComputed from scheme/host/port; don't edit directly{{scheme}}://{{host}}:{{port}}/v2/vif
appEngine application holding the streamlive
streamA specific stream's exact namefront-entrance
groupConfigNameA stream group config's name (not a pattern)front-entrance-cams
listenerNameA listener's nameOverlays
jobIdA VOD job's id8f14e45f-ceea-467e-9575-9e0d0b0f4a5c
vodFileA file under the content directoryuploads/front-entrance-2024-06-01.mp4
WSE_userNameWSE Manager usernameadmin
WSE_passwordWSE Manager passwordyour_password

Authentication

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

How the collection is organized

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.

Understand how a config resolves

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.

A typical workflow

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.

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