---
title: "Turn one recorded spoken answer into text for the user to check before it is accepted."
method: POST
path: "/v1/transcribe_voice_interview_answer"
tags: ["Voice Interviews"]
---

# Turn one recorded spoken answer into text for the user to check before it is accepted.

`POST /v1/transcribe_voice_interview_answer`

## Request

- Base URL: `https://partner.mindupload.app`
- URL: `https://partner.mindupload.app/v1/transcribe_voice_interview_answer`
- Auth: API key in header `X-Partner-Key`

Transcribes one recorded answer and returns the text. Send the recording base64-encoded in `answer_audio_base64` with its container in `answer_audio_content_type`. Show the returned text to the user to confirm or correct before you accept it with `advance_voice_interview` — that review step is the point of this being a separate call. The recording is transcribed and discarded; it is never stored. Record compactly: a short, compressed clip transcribes several times faster than a large uncompressed one of the same speech.

## Request body

- object
  - `preferred_language` string, nullable: BCP-47-ish language code (e.g. 'en', 'zh-cn') for localized messages.
  - `username` string, nullable: The end-user's username.
  - `password` string, nullable: The end-user's password on first sign-in. After login/register, send the returned session token (JWT) here instead — the field accepts either, and reusing the token keeps raw passwords out of your storage.
  - `interview_session_id` string, nullable: Identifies one interview. Returned by start_voice_interview and required by every later call.
  - `answer_audio_base64` string, nullable: The user's recorded answer, base64-encoded. Discarded after transcription; never stored.
  - `answer_audio_content_type` string, nullable: Container of the recording being sent.

## Response `200`

Result envelope — check the success field.

- object
  - `success` boolean: Whether the call succeeded.
  - `error_message` string, nullable: Human-readable reason when success is false.
  - `error_code` string
  - `recognized_text` string, nullable: What the user was heard to say. Show it to them to confirm or correct.

## Other responses

- `400`: Invalid request payload.
- `401`: Missing or invalid partner key.
- `403`: Partner is not authorized for this operation.
- `429`: Rate limit exceeded — retry later.
- `500`: Internal server error.

---

[API](https://skmtc.dev/mindupload/apis/mind-upload-partner-api.md) · [All operations](https://skmtc.dev/mindupload/apis/mind-upload-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mindupload/apis/mind-upload-partner-api/revisions/0371bdf78533?raw)
