Skip to main content
POST
Start Voice Clip Upload

Authorizations

Authorization
string
header
required

Use Tuner API key (tr_api_...) or user session token. Find your API key in Workspace Settings > API Keys.

Path Parameters

agent_id
integer
required

Tuner's internal numeric ID for the agent.

workspace_id
integer
required

Workspace ID. Find this in Workspace > General Settings.

Body

application/json

Details of the recording to upload.

filename
string
required

Original file name of the audio recording, up to 512 characters.

Required string length: 1 - 512
extension
string
required

File extension of the recording, with or without a leading dot. One of flac, m4a, mp3, ogg, wav, webm.

Required string length: 1 - 10
size_bytes
integer
required

Size of the recording in bytes, up to 200 MB. The upload is split into parts based on this size.

Required range: x <= 209715200

Response

Successful Response

A new upload, with the URLs to send its parts to.

id
integer
required

Voice clip upload ID.

status
string
required

Upload status: uploading, uploaded, analyzing, awaiting_selection, consumed or failed. awaiting_selection means the recording is ready for you to pick the caller's channel; consumed means a clip set has been built from it.

filename
string
required

Original file name of the recording.

extension
string
required

File extension of the recording.

size_bytes
integer
required

Declared size of the recording, in bytes.

created_at
string<date-time>
required

When the upload was started.

part_size_bytes
integer
required

Size of each part in bytes. Every part except the last must be this size.

expires_at
string<date-time>
required

When the part URLs expire.

duration_ms
integer | null

Duration of the recording in milliseconds. Set after analysis.

channel_count
integer | null

Number of audio channels. Set after analysis.

channel_mode
string | null

mono or multi_channel. Set after analysis.

speakers
VoiceClipUploadSpeaker · object[] | null

Channels detected in the recording. Set after analysis.

failure_reason
string | null

Why the upload failed. Set only when status is failed.

parts
VoiceClipUploadPart · object[]

One presigned upload URL per part.