API Reference

Prev Next

The Daily Conversation Audio Recordings API allows authorized clients to retrieve daily conversation audio recordings in ZIP format. This is essential for meeting legal compliance requirements.


1. Creating an Application

In order to utilize the The Daily Conversation Audio Recordings API, an application with dataservice_external scope must be created. This application enables secure authentication and authorization of client requests.

📄 For setup instructions, please refer to the official guide.


2. Getting an Access Token

To authenticate API requests, an access token must be obtained using the credentials of your registered application.

📄 For getting an access token, please refer to the official guide.

Important Note

The retrieved token must be included in the Authorization header as a Bearer token in all API requests.


3. The Daily Conversation Audio Recordings API

Endpoint:

  • Method: GET
  • URL: {{BaseUrl}}/api/external/conversations/daily-audio-recordings/{{utcDay}}
Feature Requirement

The "Enable daily conversation audio recordings" feature must be enabled for your tenant to use this API. Contact your administrator if the feature is not available.

Path Parameters

Parameter Type Description
utcDay string Date in YYYY-MM-DD format (UTC)

Responses

Status Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
429 Too Many Requests
500 Internal server error


3.1. Example Request & Response

Here's an example of a request:

curl --location '{{BaseUrl}}/api/external/conversations/daily-audio-recordings/2025-12-12' \
--header 'Authorization: Bearer {{Token}}'


Here's an example of a response:

{
  "date": "2025-12-12",
  "totalSessions": 287,
  "totalFiles": 1543,
  "totalSizeBytes": 1567890432,
  "generatedAt": "2025-12-13T02:15:32Z",
  "retentionDays": 3,
  "expiresAt": "2024-12-16T02:15:32Z",
  "links": [
    {
      "hour": "00",
      "url": "https://minio-domain.com/presigned-url?token=...",
      "sessionCount": 12,
      "fileCount": 67,
      "sizeBytes": 15360000,
      "status": "available"
    },
    {
      "hour": "01",
      "url": null,
      "sessionCount": 0,
      "fileCount": 0,
      "sizeBytes": 0,
      "status": "no_data"
    },
    {
      "hour": "02",
      "url": "https://minio-domain.com/presigned-url?token=...",
      "sessionCount": 8,
      "fileCount": 42,
      "sizeBytes": 9870000,
      "status": "available"
    },
    {
      "hour": "23",
      "url": "https://minio-domain.com/presigned-url?token=...",
      "sessionCount": 9,
      "fileCount": 45,
      "sizeBytes": 12300000,
      "status": "available"
    }
  ]
}

3.2. Metadata Field of the Response

Each ZIP file also includes a metadata.json file with detailed information:

{
  "generatedAt": "2025-12-13T02:15:32Z",
  "utcDay": "2025-12-12",
  "hour": "14",
  "totalSessions": 12,
  "sessions": [
    {
      "externalConversationId": "conv-123",
      "sessionId": "session-456",
      "files": [
        {
          "fileName": "message_789_agent_tts.opus",
          "originalPath": "knovvu-va/tenant/project/conversations/...",
          "messageId": 789,
          "type": "agent_tts",
          "timestamp": "2025-12-12T14:23:45Z",
          "originalSizeBytes": 45000
        }
      ]
    }
  ]
}

3.2. Error Responses

Status Code Description Condition Error Response
400 Bad Request utcDay is not a valid date { "error": "Invalid date format for 'utcDay'. Please use the format YYYY-MM-DD." }
400 Bad Request utcDay is in the future { "error": "'utcDay' cannot be in the future. Please provide a past date." }
401 Unauthorized Token is invalid or expired { "error": "Unauthorized access. The provided token is invalid or has expired. Please authenticate again." }
401 Unauthorized Download URL validity period has passed { "error": "The download link has expired. Please request a new presigned URL to access the audio files." }
403 Forbidden Daily audio recordings feature is disabled for tenant { "error": "The daily conversation audio recordings feature is not enabled for this tenant. Please contact your administrator." }
404 Not found utcDay is older than retention period { "error": "The requested date is older than the allowed retention period and cannot be retrieved." }
429 Too Many Requests More than 5 downloads per hour { "error": "Download limit exceeded. Please try again later." }