---
title: "Analyze voice/audio for safety concerns with transcription"
method: POST
path: "/api/v1/safety/voice"
tags: ["Safety"]
---

# Analyze voice/audio for safety concerns with transcription

`POST /api/v1/safety/voice`

## Request

- Base URL: `https://api.tuteliq.ai`
- URL: `https://api.tuteliq.ai/api/v1/safety/voice`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Upload an audio file (mp3, wav, m4a, ogg, flac, webm, mp4 — max 25MB) for automatic transcription followed by full safety analysis on the transcript. Returns timestamped segments, per-category analysis (bullying, grooming, unsafe, emotions), and an overall risk score. Ideal for monitoring voice chats, audio messages, and recorded conversations.

## Response `200`

Default Response

- object
  - `file_id` string
  - `transcription` object
    - `text` string
    - `language` string
    - `duration` number
    - `segments` object[]
      - `start` number
      - `end` number
      - `text` string
  - `analysis` object
  - `overall_risk_score` number
  - `overall_severity` 'none' | 'low' | 'medium' | 'high' | 'critical'
  - `detected` boolean: A concern was observed at ANY severity, including monitor-only cases. For production branching prefer `recommended_action`.
  - `confidence` number: Confidence in the overall verdict (0-1).
  - `recommended_action` 'none' | 'monitor' | 'flag_for_review' | 'block' | 'immediate_intervention': Routing key, weakest to strongest: `none`, `monitor`, `flag_for_review`, `block`, `immediate_intervention`. Safe to switch on.
  - `action_detail` string: Human-readable expansion of `recommended_action` for a moderator UI. Free text: do not branch on it.
  - `rationale` string: Why this verdict was reached. Built from category and severity labels only; never contains the transcript or media description.
  - `language` string: Detected or specified language code. 32 supported languages: en is stable, the other 31 are beta (ar, bg, cs, da, de, el, es, et, fi, fr, ga, hr, hu, it, ja, ko, lt, lv, mt, nl, no, pl, pt, ro, ru, sk, sl, sv, tr, uk, zh).
  - `language_status` 'stable' | 'beta': Language support maturity: "stable" (en) or "beta" (all others)
  - `credits_used` number: Number of credits consumed by this request
  - `external_id` string
  - `incident_moderation_enabled` string: Per-call override of account incident logging: "true" forces persistence, "false" suppresses it. Omit for account default.
  - `customer_id` string
  - `metadata` object: Echo of the metadata you provided in the request

---

[API](https://skmtc.dev/tuteliq/apis/tuteliq-api.md) · [All operations](https://skmtc.dev/tuteliq/apis/tuteliq-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tuteliq/apis/tuteliq-api/revisions/8490332e0031?raw)
