---
title: "Render Check"
method: POST
path: "/v1/admin/audio-qa/render-check"
tags: ["admin-audio-qa"]
---

# Render Check

`POST /v1/admin/audio-qa/render-check`

## 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/render-check`
- Auth: none declared

Probe a rendered MP3 for silence/clipping/duration pathologies.

Admin-token-gated. Runs ffprobe + ffmpeg (no ML model, no Whisper),
so this endpoint is cheap and safe to call on every render.
Complementary to ``/verify`` (voiced-PII check) — both should pass
before promoting a render.

## Headers

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

## Request body

- RenderCheckBody
  - `audio_url` string, required: Local file path OR https:// URL of the rendered MP3 to analyse with ffprobe + ffmpeg. URLs are fetched through the project's SSRF guard.
  - `expected_word_count` integer, nullable: Source-text word count. When provided, the duration-ratio check fires (actual vs expected based on ``expected_wpm``).
  - `expected_wpm` number: Narrator words-per-minute. Default 150.

## Response `200`

Successful Response

- RenderCheckResponse
  - `ok` boolean, required
  - `duration_s` number, required
  - `duration_expected_s` number, nullable, required
  - `duration_ratio` number, nullable, required
  - `rms_db` number, required
  - `peak_db` number, required
  - `silent_stretches` array[], required
    - unknown[]
      - unknown
  - `clipping_pct` number, required
  - `issues` 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)
