At this time, API versions have the following statuses:
| API version | Status |
| v2 | Current |
| v1 | Deprecated |
See How to upgrade to Wowza Video Intelligence Framework 1.1.0 for more information about upgrading from v1.
VIF 1.2.0 only adds to the v2 REST API: new endpoints, two new detector types, and a handful of optional fields.
Highlights:
- The REST API (v1 and v2) now requires Engine credentials by default. Previously, unless the Engine was explicitly configured to put the API behind authentication, it was reachable with no credentials at all, so anyone who could reach the REST port could change your configuration. The server property that controls this,
VideoIntelligenceServer, now defaults toauthorized;unauthorizedstill works if you set it deliberately, and logs a warning at startup. Within an authorized mount, the Engine's read-onlybasicrole gets an explicit403on every non-GET request, and the REST interface can authenticate with digest (MD5 or SHA-256) as well as basic, depending on how it's configured. - Added
motion, a frame-differencing detector type: each detection is a tracked moving region, with confidence expressed as net displacement rather than a quality score. It can run standalone or as a chain's entry stage. - Added
chain, a detector type that runs named detector stages (scene, object, vlm, motion, or synthetic) over the same captured media, with linear, conditional, or dynamic routing between stages. - Added
POST /probes/svd-endpointto check that a Synthetic Video Detector endpoint is reachable and accepts its credentials, the gRPC counterpart to the existing VLM probe. - Added
POST /probes/webhookandPOST /probes/lifecycle-webhookto test-fire a webhook listener or the VOD lifecycle webhook without waiting for a real detection or job. - Secrets are no longer VOD-only. They're now a single named-credential store any config can reference by name — a service key, a VLM or SVD endpoint key, an SVD TLS client key, a webhook listener's credential — stored at
conf.modules/vif/secrets.json(migrated automatically from the oldconf.modules/vif/vod/secrets.jsonon the first write). New secret names follow stricter rules (letters, digits,.,_,-; unique ignoring case). - Webhook listeners can now carry a
credential_secretandcredential_header, so detections can be delivered with an authenticated header instead of an open endpoint. - Added
lifecycle_webhook_headerto VOD jobs and VOD settings, for lifecycle webhook receivers that expect their credential under a header other thanAuthorization. - Added per-GPU readings (
HostStats.gpu.devices[]) alongside the existing host-wide GPU averages.
If you relied on the VIF REST API (v1 or v2) being reachable without credentials, upgrading breaks that. Supply Engine credentials, or set VideoIntelligenceServer=unauthorized in Server.xml to deliberately keep the old behavior.
A client that rejects unknown DetectorType values fails when it reads a stream or job using motion or chain. Separately, DELETE /persist/apps/{app}/streams/{stream}/listeners/{name} can now answer 400 (it validates the stream's resolved configuration before removing the listener) in addition to its previous 204, 404, 412, and 428 — a caller that only handles those four needs to handle 400 too.
Also in this release: a VOD resume's 409 now carries a cause (credentials_required, config_mismatch, or config_drift) so a client can act on a refusal without parsing detail; VodFailureCause gained endpoint_rejected; and the file listing (GET /vod/files) now documents which codecs are refused at submission (AV1, VP9) versus at run time (no readable video track, or H.265 under a detector that only takes H.264).
VIF 1.1.0 introduces the VIF REST API v2, served on /v2/vif alongside the existing v1 API. v2 replaces v1's flat configuration document with a layered model: a default config, a matching stream group config, a per-stream override, and any runtime changes, each layer filling in whatever the one below it left unset. Endpoints are grouped by what they work with: framework-wide status (Server), the streams currently running (Runtime), durable configuration saved to disk (Persist), connectivity checks (Probes), and on-demand video analysis (VOD).
The v1 API is deprecated as of 1.1.0, and Wowza strongly urges customers to move any integration to v2. A v1 write rewrites the configuration in the old format and silently breaks settings saved through 1.1.0 — per-stream overrides lose their meaning and stop layering over their defaults. See How to upgrade to Wowza Video Intelligence Framework 1.1.0 before you upgrade.
Highlights:
- Added the VIF REST API v2, replacing the flat v1 configuration document with layered stream group configs, per-stream overrides, and runtime state.
- Added VOD (video on demand) analysis endpoints which help you with analyzing VOD files.
For a walkthrough of the API grouped by folder, see Trial the Wowza VIF Postman Collection.
- How to upgrade to Wowza Video Intelligence Framework 1.1.0: moving an existing 1.0.x installation, and why v1 writes are unsafe once you're on 1.1.0
- Trial the Wowza VIF Postman Collection: a ready-to-fork collection covering every v2 endpoint
- About Wowza Video Intelligence Framework: overview of VIF's components and deployment options