Listar Llamadas
curl --request GET \
--url https://api.example.com/callsimport requests
url = "https://api.example.com/calls"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/calls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/calls",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/calls"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/calls")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"calls": [
{
"id": "<string>",
"created_time": "<string>",
"timestamp": 123,
"assistant_id": "<string>",
"from": "<string>",
"to": "<string>",
"status": "<string>",
"duration": 123,
"recording": "<string>",
"transcript": "<string>",
"success": true,
"summary": "<string>",
"output": {},
"data": {}
}
]
}Endpoints
Listar Llamadas
Recupera una lista de llamadas con opciones de filtrado
GET
/
calls
Listar Llamadas
curl --request GET \
--url https://api.example.com/callsimport requests
url = "https://api.example.com/calls"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/calls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/calls",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/calls"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/calls")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"calls": [
{
"id": "<string>",
"created_time": "<string>",
"timestamp": 123,
"assistant_id": "<string>",
"from": "<string>",
"to": "<string>",
"status": "<string>",
"duration": 123,
"recording": "<string>",
"transcript": "<string>",
"success": true,
"summary": "<string>",
"output": {},
"data": {}
}
]
}Descripción General
Este endpoint recupera una lista de llamadas asociadas con los asistentes del usuario autenticado. Puedes filtrar llamadas por rango de fechas, estado y playbook.Autenticación
Este endpoint requiere autenticación usando un token Bearer en el header Authorization.Authorization: Bearer TU_API_TOKEN
Parámetros de Query
string
Fecha de inicio para filtrar llamadas. Formato:
YYYY-MM-DD o YYYY-MM-DD HH:mm:ssSi no se proporciona, se calculará basándose en el parámetro daysFromNow.string
Fecha de fin para filtrar llamadas. Formato:
YYYY-MM-DD o YYYY-MM-DD HH:mm:ssSi no se proporciona, será por defecto la fecha/hora actual.number
predeterminado:"15"
Número de días hacia atrás desde hoy. Solo se usa si
startDate y endDate no se proporcionan.- Mínimo: 1
- Máximo: 90
- Por defecto: 15
string
Filtrar llamadas por estado. Valores válidos:
open- Llamada en progreso o pendienteclosed- Llamada completada exitosamenterong-phone-forno-answer- Número equivocado o sin respuestawmat- Esperando acción manualfailed- Llamada fallidarecall-scheduled- Rellamada programadavoicemail- Llamada fue al buzón de voz
string
Filtrar llamadas por un ID de playbook (asistente) específico. Debe ser un UUID válido.
Respuesta
array
Array de objetos de llamada, ordenados por
created_time descendente (más recientes primero).Mostrar Objeto de Llamada
Mostrar Objeto de Llamada
string
Identificador único de la llamada (UUID)
string
Cuándo fue creada la llamada. Formato:
YYYY-MM-DD HH:mm:ss (UTC)number
Timestamp Unix en milisegundos de cuándo fue creada la llamada
string
ID del asistente (playbook) que manejó la llamada
string
Número de teléfono que inició la llamada. Vacío si no está disponible o es inválido.
string
Número de teléfono que recibió la llamada
string
Estado actual de la llamada. Ver parámetro status para valores posibles.
number
Duración de la llamada en segundos
string
URL de la grabación de la llamada (si está disponible)
string
Transcripción formateada en HTML de la llamada. Incluye etiquetas de hablante formateadas como
<b>[Hablante]</b>.boolean
Si la llamada fue exitosa
string
Resumen de la llamada generado por IA
object
Datos de salida estructurados de la llamada. El formato depende de la configuración del playbook.
object
Datos adicionales de la llamada y parámetros.
Ejemplos de Peticiones
Obtener llamadas de los últimos 30 días
GET https://api.meetzy.io/calls?daysFromNow=30
Obtener llamadas en un rango de fechas específico
GET https://api.meetzy.io/calls?startDate=2024-01-01&endDate=2024-01-31
Obtener solo llamadas cerradas
GET https://api.meetzy.io/calls?status=closed
Obtener llamadas para un playbook específico
GET https://api.meetzy.io/calls?playbook_id=550e8400-e29b-41d4-a716-446655440000
Combinar filtros
GET https://api.meetzy.io/calls?daysFromNow=7&status=closed&playbook_id=550e8400-e29b-41d4-a716-446655440000
Ejemplo de Respuesta
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"created_time": "2024-11-12 10:30:00",
"timestamp": 1731407400000,
"assistant_id": "550e8400-e29b-41d4-a716-446655440000",
"from": "+34612345678",
"to": "+34987654321",
"status": "closed",
"duration": 180,
"recording": "https://recordings.meetzy.io/call-123.mp3",
"transcript": "<b>[Agente]</b> Hola, soy Sara de Meetzy...<br><br><b>[Cliente]</b> Hola Sara...",
"success": true,
"summary": "El cliente estaba interesado en el plan premium...",
"output": {
"appointment_scheduled": true,
"date": "2024-11-15",
"time": "14:00"
},
"data": {
"params": {
"campaign_id": "verano-2024",
"lead_source": "website"
}
}
}
]
Respuestas de Error
| Código | Descripción |
|---|---|
| 401 | Autenticación fallida o token inválido |
| 403 | El usuario no tiene permiso para acceder a este recurso |
| 500 | Ocurrió un error en el servidor |
Notas
- Todas las fechas se manejan en zona horaria Europe/Madrid y se convierten a UTC en la respuesta
- El campo
fromse sanitiza automáticamente para eliminar entradas inválidas - Las transcripciones están formateadas con etiquetas HTML para mejor legibilidad
- El endpoint filtra automáticamente las llamadas para mostrar solo las pertenecientes a asistentes del usuario autenticado
- El rango máximo de fechas usando
daysFromNowes 90 días
¿Esta página le ayudó?

