---
title: "Verify"
method: POST
path: "/v1/admin/audio-qa/verify"
tags: ["admin-audio-qa"]
---

# Verify

`POST /v1/admin/audio-qa/verify`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/admin/audio-qa/verify`
- Auth: none declared

Transcribe an audio file with Whisper and scan for spoken PII.

Admin-token-gated. The audio is downloaded (URL) or read (path),
transcribed with the smallest appropriate Whisper variant, and the
transcript is matched against
:data:`app.audio_qa.whisper_check.SPOKEN_PII_PATTERNS`.

Returns the verdict verbatim. The route does NOT publish, alert, or
persist — it's a tuning / re-check surface, not a worker hook.

## Headers

- `x-storyflo-email-token` string, nullable

## Request body

- VerifyBody
  - `audio_url` string, required: Local file path OR https:// URL of the rendered MP3 to transcribe and scan. URLs are fetched through the project's SSRF guard.
  - `language` string: BCP-47 language hint. Selects the Whisper model variant (``tiny.en`` for English, ``tiny`` multilingual otherwise).

## Response `200`

Successful Response

- VerifyResponse
  - `ok` boolean, required
  - `transcript` string, required
  - `pii_hits` string[], required
  - `duration_s` number, required
  - `audio_bytes` integer, required
  - `model` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
