> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thinnest.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Calls

> Retrieve all voice calls for the authenticated user.

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.thinnest.ai/v2/calls \
    -H "Authorization: Bearer $THINNESTAI_API_KEY"
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.thinnest.ai/v2/calls"
  headers = {
      "Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.thinnest.ai/v2/calls", {
    method: "GET",
    headers: {
      "Authorization": "Bearer " + "YOUR_THINNESTAI_API_KEY",
    },
  });

  const data = await response.json();
  console.log(data);
  ```

  ```go Go theme={null}
  package main

  import (
      "fmt"
      "io"
      "net/http"
  )

  func main() {
      req, _ := http.NewRequest("GET", "https://api.thinnest.ai/v2/calls", nil)
      req.Header.Set("Authorization", "Bearer YOUR_THINNESTAI_API_KEY")

      resp, err := http.DefaultClient.Do(req)
      if err != nil { panic(err) }
      defer resp.Body.Close()
      body, _ := io.ReadAll(resp.Body)
      fmt.Println(string(body))
  }
  ```
</RequestExample>

***

## Response `200`

<ResponseExample>
  ```json 200 theme={null}
  {
    "calls": [
      {
        "id": 77,
        "type": "web",
        "status": "ended",
        "agent_id": "ag_5d2678fd_e556",
        "agent_name": "Priya Support Agent",
        "started_at": "2026-03-25T10:20:57Z",
        "ended_at": "2026-03-25T10:22:36Z",
        "duration_seconds": 99.1,
        "latency_ms": 475,
        "cost": {
          "total_usd": 0.08,
          "total_inr": 6.80
        }
      }
    ],
    "total": 42
  }
  ```
</ResponseExample>

### Response Fields

<ResponseField name="calls" type="array">
  List of call objects
</ResponseField>

<ResponseField name="calls[].id" type="integer">
  Call ID
</ResponseField>

<ResponseField name="calls[].type" type="string">
  web, inbound, or outbound
</ResponseField>

<ResponseField name="calls[].status" type="string">
  active, ended, error, pending
</ResponseField>

<ResponseField name="calls[].agent_id" type="string">
  Agent public ID (ag\_\*)
</ResponseField>

<ResponseField name="calls[].agent_name" type="string">
  Agent display name
</ResponseField>

<ResponseField name="calls[].duration_seconds" type="number">
  Call duration in seconds
</ResponseField>

<ResponseField name="calls[].latency_ms" type="integer">
  Average turn-around latency
</ResponseField>

<ResponseField name="calls[].cost.total_inr" type="number">
  Total cost in INR
</ResponseField>

<ResponseField name="total" type="integer">
  Total matching calls
</ResponseField>

***

## Errors

| Code  | Description                       |
| ----- | --------------------------------- |
| `401` | Missing or invalid authentication |
