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

# Get Recordings

> Get session recordings

List recordings for a session. Dual-channel recording provides stereo audio with agent and customer on separate channels.

## Path Parameters

<ParamField path="id" type="string" required>
  Session ID (e.g., `sess_01HXYZ123456789`).
</ParamField>

## Response

<ResponseField name="object" type="string">
  Always `list`.
</ResponseField>

<ResponseField name="data" type="array">
  Recording objects.

  <Expandable title="recording properties">
    <ResponseField name="id" type="string">
      Recording identifier.
    </ResponseField>

    <ResponseField name="object" type="string">
      Always `recording`.
    </ResponseField>

    <ResponseField name="session_id" type="string">
      Parent session ID.
    </ResponseField>

    <ResponseField name="duration" type="number">
      Duration in seconds.
    </ResponseField>

    <ResponseField name="format" type="string">
      Audio format (`mp3` or `wav`).
    </ResponseField>

    <ResponseField name="status" type="string">
      `processing`, `ready`, or `failed`.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Creation timestamp (ISO 8601).
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.kallglot.com/v1/sessions/sess_01HXYZ123456789/recordings \
    -H "Authorization: Bearer sk_live_your_api_key"
  ```

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

  API_KEY = os.environ.get('KALLGLOT_API_KEY')
  SESSION_ID = 'sess_01HXYZ123456789'

  response = requests.get(
      f'https://api.kallglot.com/v1/sessions/{SESSION_ID}/recordings',
      headers={'Authorization': f'Bearer {API_KEY}'}
  )

  if response.status_code == 200:
      recordings = response.json()
      if recordings['data']:
          for rec in recordings['data']:
              print(f"Recording {rec['id']}")
              print(f"  Duration: {rec['duration']}s")
              print(f"  Format: {rec['format']}")
              print(f"  Status: {rec['status']}")
      else:
          print('No recordings available yet')
  elif response.status_code == 404:
      print('Session not found')
  else:
      error = response.json()
      print(f"Error: {error['error']['message']}")
  ```

  ```javascript JavaScript theme={null}
  const API_KEY = process.env.KALLGLOT_API_KEY;
  const SESSION_ID = 'sess_01HXYZ123456789';

  const response = await fetch(`https://api.kallglot.com/v1/sessions/${SESSION_ID}/recordings`, {
    headers: { 'Authorization': `Bearer ${API_KEY}` }
  });

  const data = await response.json();

  if (response.ok) {
    if (data.data.length > 0) {
      for (const rec of data.data) {
        console.log(`Recording ${rec.id}`);
        console.log(`  Duration: ${rec.duration}s`);
        console.log(`  Format: ${rec.format}`);
        console.log(`  Status: ${rec.status}`);
      }
    } else {
      console.log('No recordings available yet');
    }
  } else {
    console.error('Error:', data.error.message);
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "object": "list",
    "data": [
      {
        "id": "rec_01HABC987654321",
        "object": "recording",
        "session_id": "sess_01HXYZ123456789",
        "duration": 245.3,
        "format": "mp3",
        "status": "ready",
        "created_at": "2026-03-26T11:04:20Z"
      }
    ]
  }
  ```

  ```json 200 No recordings theme={null}
  {
    "object": "list",
    "data": []
  }
  ```

  ```json 404 theme={null}
  {
    "error": {
      "code": "session_not_found",
      "message": "Session not found",
      "type": "not_found_error"
    }
  }
  ```
</ResponseExample>

<Note>
  Recordings are available after the session ends. Processing typically takes a few seconds.
</Note>
