<!-- Source: https://docs.vinsi.ai/api-docs/calls -->
# Get Calls

Fetch a paged list of calls in your organization. Transcript and summary are not included here (use Get Call by ID); hasTranscript and hasSummary show whether they exist. Recording URLs are pre-signed and expire. Filters: direction (inbound | outbound | web | voicemail | no-answer | softphone), agentId, disposition, startDate and endDate (ISO dates), searchTerm, transcriptSearch, summarySearch, audited (audited | notAudited), favorites (true), excludeWebCalls (true), minDuration and maxDuration (seconds), batchId. Sort with sortField (default startTime) and sortDirection (asc | desc). pageSize defaults to 50, max 500.

```http
GET https://dashboard.vinsi.ai/api/calls
```

## Authentication

Send your API key in the `x-api-key` header. Create keys in the VINSI dashboard under Settings → API Keys.

## Headers

| Name | Type | Required |
|---|---|---|
| Content-Type | string | yes (application/json) |
| x-api-key | string | yes |

## Query parameters

| Name | Required | Example |
|---|---|---|
| page | no | 1 |
| pageSize | no | 50 |
| direction | no | inbound |
| agentId | no | cmexampleagent000000000001 |
| disposition | no | Appointment Booked |
| startDate | no | 2026-09-01 |
| endDate | no | 2026-09-16 |
| searchTerm | no | 5555550142 |
| transcriptSearch | no | cleaning |
| summarySearch | no | appointment |
| audited | no | notAudited |
| favorites | no | false |
| excludeWebCalls | no | false |
| minDuration | no | 30 |
| maxDuration | no | 600 |
| batchId | no |  |
| sortField | no | startTime |
| sortDirection | no | desc |

## Example request

```bash
curl -X GET 'https://dashboard.vinsi.ai/api/calls' \
  -H 'x-api-key: YOUR_API_KEY'
```

## Example response

```json
{
  "calls": [
    {
      "id": "c_1757964000123",
      "agentName": "Front Desk Agent",
      "agentNameRaw": "Front Desk Agent",
      "softphone": false,
      "callerUserName": null,
      "callerUserEmail": null,
      "agentId": "cmexampleagent000000000001",
      "incomingPhone": "+15555550142",
      "outgoingPhone": "+15555550199",
      "contact": {
        "id": 1042,
        "name": "Alex Morgan",
        "phone": "+15555550142"
      },
      "variables": {},
      "duration": 94,
      "disposition": "Appointment Booked",
      "dispositions": [
        "Appointment Booked",
        "Callback Requested",
        "Not Interested"
      ],
      "startTime": "2026-09-15T18:02:11.000Z",
      "endTime": "2026-09-15T18:03:45.000Z",
      "status": "completed",
      "recordingUrl": "https://example-bucket.s3.amazonaws.com/recordings/c_1757964000123.wav?X-Amz-Signature=...",
      "completeRecordingUrl": null,
      "transcript": null,
      "summary": null,
      "hasTranscript": true,
      "hasSummary": true,
      "audited": false,
      "auditedBy": null,
      "auditedByEmail": null,
      "auditedByName": null,
      "auditedAt": null,
      "favorite": false,
      "favoriteBy": null,
      "favoriteByEmail": null,
      "favoriteByName": null,
      "favoriteAt": null,
      "callScore": null,
      "callScoreNotes": null,
      "scoredAt": null,
      "scoredBy": null,
      "scoredByEmail": null,
      "scoredByName": null,
      "number": 48213,
      "comments": null,
      "batchId": null,
      "call_type": "inbound",
      "error": null,
      "data": {}
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 50,
    "total": 1,
    "totalPages": 1,
    "hasMore": false,
    "totalInbounds": 1,
    "totalOutbounds": 0,
    "totalWebs": 0,
    "totalVoicemails": 0,
    "totalSoftphones": 0,
    "totalNoAnswer": 0,
    "grandTotal": 1
  },
  "filters": {
    "direction": "inbound",
    "agentId": "cmexampleagent000000000001",
    "startDate": "2026-09-01",
    "endDate": "2026-09-16",
    "sortField": "startTime",
    "sortDirection": "desc",
    "favorites": false,
    "excludeWebCalls": false
  }
}
```

