Skip to main content
GET
/
call-logs
List call logs
curl --request GET \
  --url https://api.dialnexa.com/v1/call-logs \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "id": "log_abc123",
      "call_id": "call_abc123",
      "agent_id": "agt_abc123",
      "status": "completed",
      "sentiment": "positive",
      "duration_seconds": 145,
      "recording_url": "https://recordings.dialnexa.com/call_abc123.mp3",
      "analysis": {
        "customer_satisfaction": 8
      },
      "created_at": "2024-03-01T10:00:00.000Z",
      "end_reason": "user_disconnected",
      "fallback_stt_transcriber_id": null
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "totalPages": 8
  }
}
Returns enriched call logs for your organization. Unlike the basic Calls endpoint, call logs include sentiment scores, call outcome, duration, and any custom fields extracted by your agent’s post-call analysis.

When to use this

Use call logs when building:
  • Analytics dashboards with outcome metrics
  • Quality assurance reviews
  • CRM sync pipelines (push outcome data back to your system)
  • Exportable reports filtered by date range or sentiment

ETag caching

This endpoint supports HTTP ETags. On the first request, the server returns an ETag header. On subsequent requests, pass that value as If-None-Match. If the data has not changed, you’ll receive a 304 Not Modified with no body, which saves bandwidth and reduces latency on polling setups.

Key query parameters

ParameterDescription
agent_idFilter logs by a specific agent.
statusFilter by call outcome status.
sentimentFilter by detected sentiment: positive, neutral, or negative.
start_date / end_dateDate range filter (YYYY-MM-DD).
duration_min / duration_maxFilter by call duration in seconds.
created_atSort order, either asc or desc.
duration sortWhen sorting by duration, failed or incomplete calls with zero or empty duration are placed after calls with real durations.

End Reasons

Call logs can include end_reason when the platform can identify why the call ended or failed.
End reasonMeaning
user_disconnectedThe caller or recipient ended the call.
agent_disconnectedThe agent or DialNexa side ended the call.
user_did_not_pick_upThe destination did not answer.
user_busyThe destination line was busy or rejected the call.
user_unreachableThe carrier reported a temporary unreachable state.
invalid_phone_numberThe destination number could not be reached because the number is invalid.
destination_forbiddenThe carrier or route blocked the destination.
network_failureA carrier or network failure prevented completion.
voicemail_detectedVoicemail was detected.
system_failureDialNexa or the speech service failed after retry handling.
system_at_capacityA provider capacity or rate-limit condition exhausted retry handling.
insufficient_balanceThe call could not start because wallet balance was insufficient.
unknownNo more specific reason was available.

Request

curl "https://api.dialnexa.com/v1/call-logs" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "data": [
    {
      "id": "call_x9y3zp4mq7r1",
      "status": "completed",
      "duration_sec": 142,
      "end_reason": "user_disconnected",
      "sentiment": "positive",
      "analysis": { "qualified": true },
      "created_at": "2024-05-01T14:22:00.000Z"
    },
    {
      "id": "call_a2b4cd6ef8gh",
      "status": "no-answer",
      "duration_sec": 0,
      "end_reason": "user_did_not_pick_up",
      "sentiment": "neutral",
      "analysis": {},
      "created_at": "2024-05-01T14:18:00.000Z"
    }
  ],
  "meta": { "page": 1, "limit": 20, "total": 312 }
}

Authorizations

Authorization
string
header
required

Pass your API key as a Bearer token in the Authorization header.

Headers

If-None-Match
string

Pass the ETag from a previous response to receive 304 Not Modified when data is unchanged.

Query Parameters

page
integer
default:1
limit
integer
default:20
agent_id
string
status
string

Canonical call status or comma-separated call statuses. Supported values include created, initiated, sent, received, completed, did_not_pick, busy, no_answer, failed, cancelled, and retry_expired.

sentiment
enum<string>
Available options:
positive,
neutral,
negative
start_date
string<date>

Filter logs created on or after this date (YYYY-MM-DD).

end_date
string<date>
duration_min
integer

Minimum call duration in seconds.

duration_max
integer
created_at
enum<string>

Sort order by creation time.

Available options:
asc,
desc

Response

Success.

data
object[]
meta
object