---
title: "Notify Upload Complete"
method: PUT
path: "/v1/external/voice-file/jobs/{jobId}/upload-complete"
tags: ["Voice File"]
---

# Notify Upload Complete

`PUT /v1/external/voice-file/jobs/{jobId}/upload-complete`

## Request

- Base URL: `https://api.tiro.ooo`
- URL: `https://api.tiro.ooo/v1/external/voice-file/jobs/{jobId}/upload-complete`
- Auth: HTTP bearer

Notify that audio file upload is complete and start processing.

- Call this after uploading your file to the presigned URL from Create Voice File Job
- Triggers the transcription (and optional translation) pipeline
- Job status transitions: `CREATED` → `UPLOADED` → `PROCESSING`
- Calling it again for a job that already left `CREATED` returns 200 and changes nothing

Documentation: [Step-by-step upload guide](/voice-file/tutorial#step-3-notify-upload-completion)

## Path parameters

- `jobId` string, required

## Response `200`

Upload notification received. No response body.

## Other responses

- `401`: `401009 unauthorized` when the API key is missing or invalid. Send a valid key in the Authorization header.
- `404`: Job not found

---

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