---
title: "Transcribe audio with new recording system (Celery-based)"
method: POST
path: "/tools/transcribe_v3"
tags: ["Transcription"]
---

# Transcribe audio with new recording system (Celery-based)

`POST /tools/transcribe_v3`

Called by mobile app after S3 upload completes to trigger transcription.

Expected flow:
1. Mobile calls /recordings/upload-started → creates recording with status='uploading'
2. Mobile uploads audio to S3
3. Mobile calls this endpoint → updates to status='transcribing' and queues Celery task

## Request body

- TranscribeRequest
  - `bucket` string, required
  - `object_key` string, required
  - `task_id` string, required
  - `speaker_labels` boolean
  - `streaming_transcribe_text` string, nullable
  - `location_lat` number, nullable
  - `location_lng` number, nullable
  - `location_accuracy` number, nullable
  - `start_timestamp` integer, nullable
  - `end_timestamp` integer, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/noso/crucible-backend-api/revisions/d96feef8e2ef/schema)
