---
title: "Upload Audio"
method: POST
path: "/voice/v1/sessions/{session_id}/audio/{file_sequence}"
tags: ["protocol"]
---

# Upload Audio

`POST /voice/v1/sessions/{session_id}/audio/{file_sequence}`

Upload audio as a raw binary body. For `single` uploads (the default upload type), send one complete recording (max 10 MB) and the server performs Voice Activity Detection (VAD) chunking inline — for larger recordings use `chunked` uploads or the SDKs. For `chunked` uploads, call this repeatedly with sequentially numbered filenames (`audio_0.webm`, `audio_1.webm`, ...); the server stores each chunk by its sequence number. The audio content type is detected automatically from the file extension; set the `Content-Type` header only to override it.

## Path parameters

- `session_id` string, required
- `file_sequence` string, required

## Headers

- `Content-Type` 'audio/webm;codecs=opus' | 'audio/mp3' | 'audio/wav' | 'audio/ogg' | 'audio/m4a' | 'audio/mp4'

## Response `200`

Audio uploaded successfully

- object
  - `session_id` string
  - `success` boolean
  - `original_filename` string

## Other responses

- `400` — Session ended, processing completed, or invalid audio format
- `404` — Session not found
- `413` — Chunk too large

---

[API](https://skmtc.dev/eka/apis/eka-developer-apis.md) · [All operations](https://skmtc.dev/eka/apis/eka-developer-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/eka/eka-developer-apis/revisions/9ea23456f722/schema)
