Video verification
Preview: Video verification is in preview and available on selected data sources. The API may change.
What it is
Video verification is an alternative to the cryptographic web-proof (TLSN) flow. Instead of notarizing an HTTP transcript, the Vouch Verifier mobile app screen-records the user's session and hands the recording to an AI verifier, which returns a verdict (approved / rejected) and the same structured outputs you get from a web proof.
Use it for sources that can't be notarized but can be demonstrated on screen. Everything else — creating the request, the webhook, redirectBackUrl — works exactly like First steps.
Prerequisites
- A data source with video verification enabled. Contact the Vouch team to enable it for a source.
- The end user needs the Vouch Verifier mobile app (iOS 16.4+ or Android 8+). Recording happens in the app; on desktop the user is handed off to mobile.
Trigger the video flow
Pass verificationMethod: "video" to getDataSourceUrl. The target data source must have video verification enabled; otherwise the request is rejected.
import { Vouch } from "@getvouch/sdk";
const vouch = new Vouch({
customerId: "1be03be8-5014-413c-835a-feddf4020da2",
apiKey: "your-api-key",
});
const { verificationUrl, requestId } = await vouch.getDataSourceUrl({
datasourceId: "your-video-data-source-id",
redirectBackUrl: "https://your-app.example.com/callback",
webhookUrl: "https://your-app.example.com/webhook",
verificationMethod: "video",
});
// Redirect the user to `verificationUrl` as usual.verificationMethod defaults to "web-proof", so existing integrations are unaffected.
What the user sees
Consent
The app explains that the screen will be recorded and asks for permission.
Record
The user performs the requested action while the app screen-records. Recording stops on a timeout or when the user ends it.
Verify
The recording is uploaded to the AI verifier and analyzed. The request stays in progress until the verdict is ready.
Receive the result
The verdict is delivered to your webhookUrl, the same way web proofs are (see Verifying web proofs). A video payload sets verificationMethod: "video" and adds a videoVerification block; webProofs is empty and the AI-extracted data is in outputs:
{
"requestId": "…",
"dataSourceId": "…",
"verificationMethod": "video",
"videoVerification": {
"verdict": "approved",
"recordingId": "…"
},
"outputs": {
/* AI-extracted fields, matching the data source's outputs schema */
},
"webProofs": []
}A rejected verdict is "verdict": "rejected" and may include a "reason".
Download the recording
The recording is stored by the verifier, not by Vouch. Mint a short-lived download URL on demand with your API key:
const { downloadUrl, expiresAt } = await vouch.getRecordingDownloadUrl({
requestId,
});The URL is short-lived — call getRecordingDownloadUrl again to get a fresh one when it expires.
Screen recording captures everything visible on screen. Make sure users only show what's needed for the verification.