Monitorizar e integrar
Llamadas y grabaciones
/v1/calls, de la más reciente a la más antigua. GET/v1/calls/{callId} añade la transcripción.Filtrar llamadas
| Parámetro | Filtra por |
|---|---|
agentId, campaignId | Las llamadas de un agente o de una campaña |
customerPhoneNumber | Las llamadas con un cliente |
type | inbound, outbound, webcall |
status | Consulta los estados más abajo |
from, to | Fecha de creación, en formato ISO completo (fecha y hora) (2026-10-01T00:00:00Z) |
endedReason | Un motivo de fin de llamada, coincidencia exacta |
minDuration | Al menos este número de segundos facturados |
isReached, isSignificant, isSuccessful, isSilent | true o false |
# Calls of a campaign that nobody answered in October
curl "https://api.callshift.ai/v1/calls?campaignId=$CAMPAIGN_ID&isReached=false&from=2026-10-01T00:00:00Z&to=2026-11-01T00:00:00Z" \
-H "Authorization: Bearer $CALLSHIFT_API_KEY"const params = new URLSearchParams({
campaignId,
isReached: "false",
from: "2026-10-01T00:00:00Z",
to: "2026-11-01T00:00:00Z",
});
const res = await fetch(`https://api.callshift.ai/v1/calls?${params}`, {
headers: { Authorization: `Bearer ${process.env.CALLSHIFT_API_KEY}` },
});
const { data, pageCount } = await res.json();res = requests.get(
"https://api.callshift.ai/v1/calls",
headers={"Authorization": f"Bearer {os.environ['CALLSHIFT_API_KEY']}"},
params={
"campaignId": campaign_id,
"isReached": "false",
"from": "2026-10-01T00:00:00Z",
"to": "2026-11-01T00:00:00Z",
},
)
calls = res.json()["data"]Estados
| Estado | Significado |
|---|---|
READY | En la cola de una campaña, esperando a ser marcada |
SCHEDULED | Sacada de la cola, se marcará en unos segundos |
IN_PROGRESS | Sonando o en curso |
COMPLETED | Terminada. El endedReason indica cómo. |
REJECTED | Una llamada entrante rechazada antes de que contestara el agente: sin plan activo, sin crédito o marcada como spam |
ERROR | Fallida. El endedReason indica por qué. |
Transcripción
transcript es un solo texto, con una línea por turno, y cada línea empieza por quien habla. Divídelo por saltos de línea para obtener los turnos.
Assistant: Hello, this is Alice, the AI assistant of Club Lyon Part-Dieu. How can I help?
User: Hi, I'd like to book a visit on Saturday.Grabación
recordingUrl es una URL directa, que no caduca y es accesible sin autenticación: guárdala como un secreto. Vale null mientras la llamada está en curso o cuando no se hizo ninguna grabación.
Una llamada transferida termina en COMPLETED, con assistant-forwarded-call como motivo de fin de llamada.
Coste de una llamada
billingSeconds es la duración facturada, redondeada al alza. costEstimationCents la valora a la tarifa de excedente de tu plan, en céntimos de euro, más el cargo por marcación de una llamada de campaña, sea cual sea su resultado. Es una estimación para comparar llamadas y prever el gasto: no descuenta los minutos que incluye tu plan, y vale null cuando la cuenta no tiene tarifa de excedente. Lo que pagas realmente aparece en tus facturas.
