GET /api/v1/voice/calls/{id} מחזיר את מצב השיחה, משכה, הקרדיטים שחויבו, הסיכום, הניתוח והתמלול. רשימת שיחות מתקבלת עם GET /api/v1/voice/calls?agent_id=&status=&channel=&user_id=&page= (user_id: המזהה שלכם עצמכם לאדם, מאסימון שיחת אינטרנט). השדה turns הוא יומן ניפוי השגיאות של השיחה, תור אחר תור: לאן הלך הזמן מרגע שהמתקשר סיים לדבר ועד ששמע את התשובה, באלפיות שנייה — waitMs (סוף הדיבור), sttMs (זיהוי), llmMs (המילה הראשונה של המודל, ועוד אחת לכל סבב פונקציות), ttsMs (הצליל הראשון של הקול), firstAudioMs (התשובה נשמעה) — יחד עם הפונקציות שנקראו, ההפרעות והשגיאות. דף השיחה מציג אותו גם כן.
עם recording_enabled כל שיחה מוקלטת כקובץ WAV דו-ערוצי: המתקשר בשמאל, הסוכן בימין, בקצב הדגימה של השיחה. עם recording_consent: "announce" הסוכן אומר תחילה שהשיחה מוקלטת; עם "ask" הוא שואל, וההקלטה נשמרת רק אם המתקשר מסכים (היעדר תשובה נחשב לא); עם "none" לא נאמר דבר. בדקו מה החוק דורש במקום שבו אתם והמתקשרים שלכם נמצאים.
הקלטות נשמרות באחסון של EvaSay, או ב-bucket משלכם התואם S3 (AWS S3, Cloudflare R2, Google Cloud Storage, Supabase, MinIO) שמוגדר תחת אינטגרציות ← Webhooks והתראות ← אחסון הקלטות. ה-worker שמריץ את השיחה מעלה את הקובץ ישירות ל-bucket. GET /api/v1/voice/calls/{id} מחזיר recordingUrl שתקף לשעה לאחר שההקלטה נשמרה, ואת recording.status (recording, stored, declined או failed).
DELETE /api/v1/voice/calls/{id} מוחק שיחה שהסתיימה יחד עם התמלול, ההקלטה (באחסון של EvaSay או ב-bucket שלכם), הניתוח ורשומות ה-Webhook. ה-Credits שנוצלו נשארים בהיסטוריית הקרדיטים. שיחה שעדיין אי אפשר למחוק מחזירה 409 עם code call_not_deletable_yet: היא עדיין פעילה או הסתיימה זה עתה, עדיין בחיוב, ההקלטה אולי עדיין מועלית, או שיש בה חוב Credits שהיתרה לא כיסתה (הוסיפו Credits קודם).
כשמישהו מבקש למחוק את הנתונים שלו, POST /api/v1/voice/calls/delete-by-caller עם { "phone_number": "+14155550123" } מוחק את כל השיחות עם המספר הזה (מספר המתקשר בשיחות נכנסות, המספר שחויג בשיחות יוצאות), ועם { "user_id": "..." } את כל שיחות הרשת שבטוקן שלהן היה user_id הזה. התשובה היא { "deleted": 12, "kept_back": { "settling": 1 }, "more": false }: עד 200 שיחות בבקשה, לכן חזרו על הבקשה כל עוד more הוא true, ומאוחר יותר עבור השיחות ב-kept_back. אם המספר ברשימת "אל תתקשרו", הוא נשאר בה. בלוח הבקרה עושים אותו דבר ב-שיחות → מחיקת הנתונים של מתקשר.