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

# Registros de chamadas e retenção

> Leia estatísticas e registros detalhados de chamadas, exporte esses dados e defina por quanto tempo os dados de chamadas são mantidos.

`calls` em um cliente de equipe ou de projeto lê o histórico de chamadas.
`callRetention` define por quanto tempo a Polymorfa mantém os dados de
chamadas.

| Tarefa | Permissão |
| - | - |
| Ler estatísticas, registros e exportações; ler a retenção | `sessions:read` |
| Alterar a retenção | `sessions:manage` |

Um cliente de equipe abrange todos os projetos, a menos que você passe
`projectId`. Um cliente de projeto lê apenas o próprio projeto.

## Leia estatísticas de chamadas

```typescript theme={null}
const { data: stats } = await platform.calls.stats({
  since: "2026-09-01T00:00:00Z",
  until: "2026-10-01T00:00:00Z",
  groupBy: "day",
  timezone: "Europe/Lisbon",
});

console.log(stats.totals.answerRate, stats.groups.length);
```

`groupBy` é `day` (o padrão), `hour`, `session` ou `outcome`. Sem `since` e
`until`, o intervalo é os últimos 7 dias. `timezone` é o nome de um fuso IANA e
tem `UTC` como padrão.

Todos os métodos de chamadas aceitam os mesmos filtros: `sessionId`,
`direction` (`inbound` ou `outbound`), `upstream` (`linked_device` ou
`cloud_api`), `outcome` (`answered`, `missed`, `declined`, `failed` ou
`in_progress`), e `since` e `until` como timestamps RFC 3339 ou objetos `Date`.

## Liste registros de chamadas

```typescript theme={null}
for await (const call of await platform.calls.list({ outcome: "missed" })) {
  console.log(call.callId, call.sessionId, call.direction, call.peerRef);
}
```

Os registros vêm do mais recente para o mais antigo. Eles nunca contêm números
de telefone. `peerRef` é um pseudônimo da outra parte que continua o mesmo em
todas as chamadas da sua equipe.

Leia o detalhe completo de uma chamada, incluindo o histórico de eventos e as
medições de mídia:

```typescript theme={null}
const detail = await platform.calls.retrieve("<call-id>");
console.log(detail.data.history.events);
```

## Exporte registros de chamadas

`exportAll` retorna todas as páginas como texto, em ordem. As páginas CSV
depois da primeira omitem a linha de cabeçalho, então você pode gravar os
trechos em um único arquivo:

```typescript theme={null}
import { createWriteStream } from "node:fs";

const file = createWriteStream("calls.csv");
for await (const chunk of platform.calls.exportAll({ since: "2026-09-01T00:00:00Z" })) {
  file.write(chunk);
}
file.end();
```

Passe `format: "ndjson"` para obter um registro JSON por linha. `export`
retorna uma única página de até 1.000 registros com um `nextCursor`.

## Defina a retenção dos dados de chamadas

A retenção é uma única configuração para toda a equipe. Para alterá-la, é
preciso uma chave da equipe.

```typescript theme={null}
const { data: current } = await platform.callRetention.retrieve();
console.log(current.policy, current.retentionDays);

await platform.callRetention.update({
  policy: "custom",
  retentionDays: 45,
  expectedRevision: current.revision,
});
```

| Política | Dias mantidos |
| - | - |
| `short` | 7 |
| `standard` | 30 |
| `extended` (padrão) | 90 |
| `compliance` | 365 |
| `custom` | `retentionDays`, de 1 a 2555 |

Um `expectedRevision` desatualizado falha com `409 state_conflict`. Sem ele, a
atualização é aplicada independentemente de outras alterações.

> [!WARNING]
>
> A exclusão de dados de chamadas mais antigos que o período de retenção começa
> em uma data que a Polymorfa anuncia no [changelog](/changelog). Até lá, a
> configuração registra sua escolha e nada é excluído. Depois que a exclusão
> começar, um período mais curto também remove dados de chamadas já armazenados,
> e os dados excluídos não podem ser recuperados.

Veja [Retenção de dados de chamadas](/pt-br/guides/calls/overview#call-data-retention).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.