# CallHistory Estrutura de dados do contrato OpenAPI. ## Campos | Campo | Tipo | Presença | Descrição | |---|---|---|---| | `calls` | `array` | obrigatório | — | | `calls[].callId` | `string` | obrigatório | — | | `calls[].direction` | `string` | obrigatório | Valores: `"inbound"`, `"outbound"` | | `calls[].number` | `string` | obrigatório | Identidade telefônica canônica, quando conhecida. | | `calls[].jid` | `string` | opcional | — | | `calls[].status` | `string` | obrigatório | Valores: `"ringing"`, `"connecting"`, `"active"`, `"ended"` | | `calls[].startedAt` | `string` | obrigatório | Formato: `date-time` | | `calls[].answeredAt` | `string` | opcional | Momento do aceite remoto ou do atendimento local; não depende do primeiro áudio. Formato: `date-time` | | `calls[].endedAt` | `string` | opcional | Formato: `date-time` | | `calls[].endReason` | `string` | opcional | hangup, rejected, ring_timeout, closed ou motivo do motor. | | `calls[].endedBy` | `string` | opcional | Valores: `"local"`, `"remote"` | | `calls[].answered` | `boolean` | opcional | Verdadeiro a partir do aceite, mesmo antes de o áudio iniciar. | | `calls[].mediaStartedAt` | `string` | opcional | Momento em que o motor confirmou mídia recebida. Formato: `date-time` | | `calls[].durationSeconds` | `number` | opcional | Tempo entre atendimento e encerramento; zero para chamadas sem atendimento ou ainda em curso. Mínimo: `0` | | `calls[].recording` | `object` | opcional | Modelo: [CallRecording](https://wpp.atendro.cloud/docs/modelos/call-recording.md). | | `hasMore` | `boolean` | obrigatório | — | | `nextCursor` | `string` | obrigatório | Usar como before na próxima página; vazio quando não há mais resultados. | ## Definição OpenAPI ```json { "type": "object", "required": [ "calls", "hasMore", "nextCursor" ], "properties": { "calls": { "type": "array", "items": { "$ref": "#/components/schemas/Call" } }, "hasMore": { "type": "boolean" }, "nextCursor": { "type": "string", "description": "Usar como before na próxima página; vazio quando não há mais resultados." } }, "additionalProperties": false } ```