GET /api/v1/voice/calls/{id} returnerer opkaldets status, varighed, afregnede kreditter, resumé, analyse og udskrift. Vis opkald med GET /api/v1/voice/calls?agent_id=&status=&channel=&user_id=&page= (user_id: dit eget id for personen, fra et webopkalds-token). Dets turns er opkaldets fejlsøgningslog, tur for tur: hvor tiden gik fra opringeren blev færdig med at tale til de hørte svaret, i millisekunder — waitMs (talens slutning), sttMs (genkendelse), llmMs (modellens første ord, ét ekstra for hver runde funktioner), ttsMs (stemmens første lyd), firstAudioMs (svaret blev hørt) — med de funktioner, der blev kaldt, afbrydelser og fejl. Opkaldssiden viser den også.
Med recording_enabled optages hvert opkald som en WAV med to kanaler: opringeren til venstre, agenten til højre, med opkaldets samplingfrekvens. Med recording_consent: "announce" siger agenten først, at opkaldet optages; med "ask" spørger den, og optagelsen gemmes kun, hvis opringeren siger ja (intet svar tæller som nej); med "none" siges der ikke noget. Tjek, hvad loven kræver, der hvor du og dine opringere befinder jer.
Optagelser gemmes i EvaSays lager eller i din egen S3-kompatible bucket (AWS S3, Cloudflare R2, Google Cloud Storage, Supabase, MinIO), som du indstiller under Integrationer → Webhooks og notifikationer → Lagring af optagelser. Den worker, der kører opkaldet, uploader filen direkte til bucketen. GET /api/v1/voice/calls/{id} returnerer en recordingUrl, der er gyldig i en time, når optagelsen er gemt, og recording.status (recording, stored, declined eller failed).
DELETE /api/v1/voice/calls/{id} sletter et afsluttet opkald med transskription, optagelse (i EvaSays lager eller din egen bucket), analyse og webhook-leveringer. De brugte Credits bliver i kredithistorikken. Et opkald, der ikke kan slettes endnu, svarer 409 med code call_not_deletable_yet: det er i gang eller lige afsluttet, bliver stadig afregnet, optagelsen bliver måske stadig uploadet, eller det skylder Credits, som saldoen ikke dækkede (køb Credits først).
Når en person beder dig slette sine data, sletter POST /api/v1/voice/calls/delete-by-caller med { "phone_number": "+14155550123" } alle opkald med det nummer (opkalderens nummer ved indgående opkald, det kaldte nummer ved udgående), eller med { "user_id": "..." } alle webopkald med det user_id i deres token. Svaret er { "deleted": 12, "kept_back": { "settling": 1 }, "more": false }: højst 200 opkald pr. anmodning, så spørg igen, så længe more er true, og senere igen for opkaldene i kept_back. Står nummeret på din spærreliste, bliver det der. I dashboardet gøres det samme under Opkald → Slet en opkalders data.