Skip to content

Get Call Logs

Retrieve call logs for a specific assistant with support for pagination, sorting, and date filtering.

  • URL: /assistant/call-logs/{assistant_id}
  • Method: GET
  • Headers: Authorization: Bearer <your_api_key>

Path Parameters

Parameter Type Description
assistant_id string The UUID of the assistant.

Query Parameters

Parameter Type Required Default Description
page integer No 1 Page number for pagination (minimum: 1).
limit integer No 10 Number of items per page (minimum: 1, maximum: 100).
start_date string No - Start date for filtering (ISO 8601 format).
end_date string No - End date for filtering (ISO 8601 format).
sort_by string No started_at Field to sort by (e.g., started_at, ended_at, call_duration_minutes, call_cost).
sort_order string No desc Sort order: asc or desc.

Response Schema

Field Type Description
success boolean Indicates if the operation was successful.
message string Human-readable success message.
data object Contains the call logs and pagination metadata.
data.logs array List of call record objects.
data.logs[].room_name string Unique identifier for the call (LiveKit room name).
data.logs[].assistant_id string ID of the assistant involved in the call.
data.logs[].assistant_name string Name of the assistant at the time of the call.
data.logs[].to_number string Destination phone number.
data.logs[].call_status string Call status (initiated, answered, completed, busy, no_answer, rejected, cancelled, unreachable, timeout, failed).
data.logs[].call_status_reason string Optional status detail for terminal non-completed calls.
data.logs[].sip_status_code integer SIP status code when available.
data.logs[].sip_status_text string SIP status text when available.
data.logs[].answered_at string ISO 8601 timestamp when the call was answered.
data.logs[].started_at string ISO 8601 timestamp of when the call started.
data.logs[].ended_at string ISO 8601 timestamp of when the call ended.
data.logs[].call_duration_minutes float Total call duration in minutes.
data.logs[].recording_path string URL/Path to the call recording (if available).
data.logs[].transcripts array List of transcript objects {speaker, text, timestamp}.
data.pagination object Pagination metadata.
data.pagination.total integer Total number of call logs matching the query.
data.pagination.page integer Current page number.
data.pagination.limit integer Number of items per page.
data.pagination.total_pages integer Total number of pages available.

HTTP Status Codes

Code Description
200 Success - Call logs retrieved successfully.
401 Unauthorized - Invalid or missing Bearer token.
404 Not Found - Assistant does not exist.
500 Server Error - Internal server error.

Example Request

curl -X GET "https://api-livekit-vyom.indusnettechnologies.com/assistant/call-logs/550e8400-e29b-41d4-a716-446655440000?page=1&limit=5" \
     -H "Authorization: Bearer <your_api_key>"

Response:

{
  "success": true,
  "message": "Call logs retrieved successfully",
  "data": {
    "logs": [
      {
        "room_name": "550e8400-e29b-41d4-a716-446655440000_abc123",
        "assistant_id": "550e8400-e29b-41d4-a716-446655440000",
        "assistant_name": "Support Bot",
        "to_number": "+1234567890",
        "call_status": "completed",
        "call_status_reason": null,
        "sip_status_code": null,
        "sip_status_text": null,
        "answered_at": "2024-01-20T14:30:02.000Z",
        "started_at": "2024-01-20T14:30:00.000Z",
        "ended_at": "2024-01-20T14:35:00.000Z",
        "call_duration_minutes": 5.0,
        "recording_path": "https://bucket.s3.amazonaws.com/recordings/550e8400...abc123.ogg",
        "transcripts": [
          {
            "speaker": "agent",
            "text": "Hello, how can I help you?",
            "timestamp": "2024-01-20T14:30:05.000Z"
          }
        ]
      }
    ],
    "pagination": {
      "total": 25,
      "page": 1,
      "limit": 5,
      "total_pages": 5
    }
  }
}

Status Interpretation

  • Completed calls usually have call_status="completed" and non-null answered_at.
  • Calls not answered or failed during setup can end with terminal statuses like busy, no_answer, timeout, or failed.
  • For SIP-driven failures, sip_status_code and sip_status_text help explain provider-level outcomes.