VI-Streamer dummy

This is a stand-in for the VI-Stream API, so that developers can build their integration without a real streamer instance, a real recorder instance or a real interrogation room.

OpenAPI JSON

GET /openapi.json serves the identical OpenAPI document the real system generates.

URL What it is
/openapi.json The document. Integrate against this one.
/ Index: the rooms, the auth, some curls.

Authentication

Every route except /app/config wants the case-management API key as X-API-KEY, exactly as the real streamer does. Default dummy-cm-api-key; a wrong or missing key answers 401.

Note for production: real keys are 256-bit random secrets, e.g. sk_LMzJZrNds89LKkxBtILxupM2mMQLjDBMnRxeRZYyCno.

Configured rooms

Every state a real room can report is available, so each possible situation can be reproduced :

Room key Always reports Exercises
room-free free the happy path
room-busy busy 409 — someone is being interrogated in there
room-offline offline 503 — its recorder is not connected
room-maintenance maintenance 503 — online, but not fit to record
room-random-1 changes a picker that must not assume a state is fixed
room-random-2 changes the same, out of step with the other one

Any other room key answers 404.

The two random rooms change every 30 seconds and hold their value in between.

The launch URL

A successful handover returns a launchUrl — which the case management system opens in the officer's browser (the "Start VEV" button). It is short-lived (15 minutes).

The officer-authentication step that sits in front of the launch in the real system is a placeholder there too right now.

Try it


# Load list of rooms
curl -H 'X-API-KEY: dummy-cm-api-key' https://vis.tmp.veeting.net/vi-api/v1/rooms

# Start an interrogation in an empty room
curl -X POST https://vis.tmp.veeting.net/vi-api/v1/interrogations \
  -H 'X-API-KEY: dummy-cm-api-key' -H 'Content-Type: application/json' \
  -d '{"roomKey":"room-free","case":{"caseId":"2026-001234"}}'

# 409 — the room is in use
curl -i -X POST https://vis.tmp.veeting.net/vi-api/v1/interrogations \
  -H 'X-API-KEY: dummy-cm-api-key' -H 'Content-Type: application/json' \
  -d '{"roomKey":"room-busy"}'
	

Real case data The case object in the CURL above ({"caseId":"2026-001234"}) is a placeholder. This dummy accepts any data structure within the case.