Listar llamadas
POST /v3/list-calls
Devuelve una lista paginada de llamadas con soporte para filtros avanzados. Los filtros pueden combinarse para consultas muy específicas: por agente, estado, número, dirección, fechas, duración, sentimiento del usuario y más.
Nota: Este endpoint usa
POST(noGET) para permitir filtros complejos en el cuerpo de la solicitud.
Parámetros del cuerpo (todos opcionales)
| Campo | Tipo | Predeterminado | Máximo | Descripción |
|---|---|---|---|---|
filter_criteria |
object | — | — | Criterios de filtrado (se aplican con lógica AND). |
sort_order |
string | descending |
— | Ordena por start_timestamp. Valores: ascending | descending |
limit |
integer | 50 | 1000 | Cantidad máxima de registros a retornar. |
skip |
integer | 0 | — | Registros a omitir. No se puede usar junto con pagination_key. |
pagination_key |
string | — | — | Cursor opaco obtenido de una respuesta anterior. No se puede usar junto con skip. |
Filtros disponibles (filter_criteria)
Todos los filtros son opcionales y se combinan con lógica AND.
Filtro por agente
"agent": [
{ "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD" },
{ "agent_id": "otro_agent_id", "version": [1, 2] }
]
Múltiples agentes se combinan con lógica OR.
Filtros de texto (StringFilter)
Aplican a: call_id, batch_call_id, from_number, to_number
| Operador | Descripción |
|---|---|
eq |
Igual a |
ne |
Distinto de |
sw |
Comienza con |
ew |
Termina con |
co |
Contiene |
Ejemplo:
"from_number": { "operator": "eq", "value": "+14157774444" }
Filtros de enumeración (EnumFilter)
Aplican a: call_status, call_type, direction, user_sentiment, disconnection_reason, data_storage_setting
"direction": { "operator": "eq", "value": "outbound" }
"call_status": { "operator": "eq", "value": "ended" }
Valores disponibles por campo:
| Campo | Valores |
|---|---|
call_status |
not_connected | ongoing | ended | error |
call_type |
phone_call | web_call |
direction |
inbound | outbound |
user_sentiment |
Positive | Neutral | Negative | Unknown |
Filtros numéricos y de rango (NumberFilter / RangeFilter)
Aplican a: start_timestamp, end_timestamp, duration_ms, combined_cost, e2e_latency_p50
| Operador | Descripción |
|---|---|
eq |
Igual a |
ne |
Distinto de |
gt |
Mayor que |
ge |
Mayor o igual que |
lt |
Menor que |
le |
Menor o igual que |
bt |
Entre dos valores (rango) |
Ejemplo — llamadas iniciadas después del 1 de mayo de 2025:
"start_timestamp": { "operator": "ge", "value": 1746057600000 }
Ejemplo — llamadas de entre 60 y 300 segundos:
"duration_ms": { "operator": "bt", "low_threshold": 60000, "high_threshold": 300000 }
Filtro booleano (BooleanFilter)
Aplican a: in_voicemail, call_successful
"in_voicemail": { "operator": "eq", "value": false }
Filtros de variables dinámicas
"dynamic_variables": [
{ "key": "campaña", "operator": "eq", "value": "reactivacion-mayo" }
]
Respuesta — 200 OK
{
"pagination_key": "cursor_opaco_para_siguiente_pagina",
"has_more": true,
"items": [ /* array de objetos de llamada */ ]
}
| Campo | Descripción |
|---|---|
pagination_key |
Cursor para obtener la siguiente página. null si no hay más resultados. |
has_more |
true si hay más registros disponibles. |
items |
Array de objetos de llamada. Contiene todos los campos de la llamada excepto la transcripción (para optimizar rendimiento). |
Para obtener la transcripción de una llamada específica, usa Obtener llamada.
Ejemplos de solicitud
Listar las últimas 20 llamadas
curl --request POST \
--url https://calls.anunzi.net/v3/list-calls \
--header 'Authorization: Bearer TU_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"limit": 20,
"sort_order": "descending"
}'
Listar llamadas salientes de un agente específico
curl --request POST \
--url https://calls.anunzi.net/v3/list-calls \
--header 'Authorization: Bearer TU_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"filter_criteria": {
"agent": [{ "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD" }],
"direction": { "operator": "eq", "value": "outbound" },
"call_status": { "operator": "eq", "value": "ended" }
},
"limit": 100
}'
Paginación — segunda página
curl --request POST \
--url https://calls.anunzi.net/v3/list-calls \
--header 'Authorization: Bearer TU_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"limit": 50,
"pagination_key": "cursor_opaco_de_respuesta_anterior"
}'
Códigos de estado
| Código | Descripción |
|---|---|
200 |
Listado devuelto correctamente. |
400 |
Formato de solicitud inválido. |
401 |
API Key ausente o inválida. |
429 |
Límite de solicitudes alcanzado. |
500 |
Error interno del servidor. |