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

# Calls

> Consultar llamadas (Speech Analytics) asociadas al workspace.

<Note>
  El recurso <strong>Calls</strong> es de <strong>solo lectura</strong>. Los
  registros provienen de Speech Analytics.
</Note>

<Info>
  Requiere permisos <code>calls:read</code> y el header
  <code>X-Workspace-Id</code>. Puedes autenticar con <code>X-API-Key</code>
  (recomendado para integraciones) o con token Bearer si tu entorno lo soporta.
</Info>

## Listar llamadas

Lista paginada con filtros opcionales.

<Tabs>
  <Tab title="TypeScript SDK">
    ```ts theme={null}
    import { createClient } from '@getsupervisor/agents-studio-sdk';

    const client = createClient({
      baseUrl: process.env.API_BASE_URL!,
      workspaceId: process.env.WORKSPACE_ID!,
      apiKey: process.env.API_KEY!,
    });

    const page1 = await client.calls.list({
      page: 1,
      limit: 20,
      sort: '-startedAt',
      agentId: '00000000-0000-4000-8000-000000000301',
      recordedAfter: '2025-01-01T00:00:00.000Z',
      recordedBefore: '2025-02-01T00:00:00.000Z',
      durationBucket: 'short',
      goalStatus: 'achieved',
      query: 'texto',
    });

    console.log(page1.data.length, page1.meta.total);

    if (page1.meta.hasNext) {
      const page2 = await page1.next();
      console.log('Siguiente página:', page2?.meta.page);
    }
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -sS "$API_BASE_URL/v1/calls?limit=20&sort=-startedAt&agentId=00000000-0000-4000-8000-000000000301&durationBucket=short&goalStatus=achieved&query=texto" \
      -H "X-API-Key: $API_KEY" \
      -H "X-Workspace-Id: $WORKSPACE_ID"
    ```
  </Tab>
</Tabs>

## Stream incremental

Obtiene llamadas en orden ascendente por <code>startedAt</code> a partir de un
cursor temporal (<code>after</code>). La respuesta incluye

<code>meta.nextAfter</code> para continuar la sincronización.

<Tabs>
  <Tab title="TypeScript SDK">
    ```ts theme={null}
    import { createClient } from '@getsupervisor/agents-studio-sdk';

    const client = createClient({
      baseUrl: process.env.API_BASE_URL!,
      workspaceId: process.env.WORKSPACE_ID!,
      apiKey: process.env.API_KEY!,
    });

    let after: string | null = '2025-01-01T00:00:00.000Z';

    while (after) {
      const page = await client.calls.stream({
        after,
        limit: 50,
        durationBucket: 'short',
        goalStatus: 'achieved',
      });

      for (const call of page.data) {
        console.log(call.id, call.startedAt);
      }

      after = page.meta.nextAfter;
    }
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -sS "$API_BASE_URL/v1/calls/stream?after=2025-01-01T00:00:00.000Z&limit=50&durationBucket=short&goalStatus=achieved" \
      -H "X-API-Key: $API_KEY" \
      -H "X-Workspace-Id: $WORKSPACE_ID"
    ```
  </Tab>
</Tabs>

## Obtener llamada por id

<Tabs>
  <Tab title="TypeScript SDK">
    ```ts theme={null}
    import client from '../client';

    const call = await client.calls.get('00000000-0000-4000-8000-000000000001');
    console.log(call.title, call.startedAt);
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -sS "$API_BASE_URL/v1/calls/00000000-0000-4000-8000-000000000001" \
      -H "X-API-Key: $API_KEY" \
      -H "X-Workspace-Id: $WORKSPACE_ID"
    ```
  </Tab>
</Tabs>
