Skip to main content
GET
/
v1
/
conversations
/
{conversation_id}
/
audio
Get conversation audio
curl --request GET \
  --url https://api.coval.dev/v1/conversations/{conversation_id}/audio \
  --header 'X-API-Key: <api-key>'
{
  "audio_url": "https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.wav?X-Amz-Signature=...",
  "peaks_url": "https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.peaks.json?X-Amz-Signature=...",
  "conversation_id": "gk3jK9mPq2xRt5vW8yZaBc",
  "url_expires_in_seconds": 3600
}

Authorizations

X-API-Key
string
header
required

API key for authentication.

Path Parameters

conversation_id
string
required

Unique conversation identifier

Required string length: 22 - 26

Response

Presigned audio URL

Response containing presigned URL for audio download.

audio_url
string<uri>
required

Presigned S3 URL for downloading audio file.

URL is valid for duration specified in url_expires_in_seconds. No authentication required to access this URL.

Example:

"https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."

conversation_id
string
required

Conversation identifier

Example:

"gk3jK9mPq2xRt5vW8yZaBc"

url_expires_in_seconds
integer
required

Number of seconds until presigned URL expires

Example:

3600

peaks_url
string<uri> | null

Presigned S3 URL for precomputed waveform peaks JSON (valid for 1 hour). Contains an array of up to 800 [min, max] amplitude pairs for waveform visualization. Null for older recordings without precomputed peaks. May return 404 if peaks were not generated for this recording.

Example:

"https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.peaks.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."