Logo
Search
Docs

Squad call logs show

GET https://app.sulus.ai/api/squad-call-logs/{callId}

Retrieve one squad call log and its structured conversation

Authentication

Send a bearer token created on your dashboard's Developer page:

Authorization: Bearer <YOUR_API_KEY>

Path parameters

callId string Required

Public call identifier (not the numeric primary key).

Validation: must match squad_call_logs.call_id for a row in the caller's content-protection scope
Stored in squad_call_logs.call_id

Errors

StatusMeaningBody
401 Missing or invalid bearer token
403 Feature squad_call_logs not enabled for the account {"message":"This feature is not enabled for your account. Please contact your administrator.","feature":"squad_call_logs"}
404 No call_id in scope {"success":false,"message":"Squad call log not found"}

Notes

  • Lookup is where(call_id, {callId}) under contentProtection.
  • Numeric squad_id is always unset from data, for every role.
  • End-user example omits cost, currency, metadata, webhook_data, nested assistant, and nested squad.
  • Content admins also receive cost, currency, metadata, webhook_data, nested assistant (including vapi_assistant_id), and nested squad (Squad model hides numeric id). Raw dump bodies omitted from examples.
  • Empty transcript yields conversation: {conversation:[], total_messages:0, participants:[]} with no summary key.
curl --request GET \
  --url https://app.sulus.ai/api/squad-call-logs/{callId} \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
import requests

url = "https://app.sulus.ai/api/squad-call-logs/{callId}"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}

response = requests.get(url, headers=headers)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://app.sulus.ai/api/squad-call-logs/{callId}"
	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
Response 200
{
    "success": true,
    "data": {
        "id": 902,
        "call_id": "call_01hsquad9abcdeFGHIjklmnopq",
        "assistant_id": 57,
        "user_id": 12,
        "reseller_id": "9f3c2a10-5b6d-4e8f-9a1b-2c3d4e5f6789",
        "workspace_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "phone_number": "+14155550100",
        "caller_number": "+14155550199",
        "duration": 210,
        "status": "completed",
        "direction": "inbound",
        "start_time": "2026-07-30T15:10:00.000000Z",
        "end_time": "2026-07-30T15:13:30.000000Z",
        "transcript": "Assistant: Thanks for calling the frontline team.\nCustomer: I need billing help.\nAssistant: Transferring you now.",
        "summary": "Caller transferred from intake to billing specialist; confirmed invoice date.",
        "call_record_file_name": "rec_01hsquad9abcdeFGHIjklmnopq.mp3",
        "created_at": "2026-07-30T15:13:40.000000Z",
        "updated_at": "2026-07-30T15:13:40.000000Z",
        "has_recording": true,
        "public_audio_url": "https://app.example.com/play/rec_01hsquad9abcdeFGHIjklmnopq.mp3",
        "public_audio_player_url": "https://app.example.com/p/rec_01hsquad9abcdeFGHIjklmnopq.mp3",
        "squad_name": "Frontline Team",
        "squad_external_id": "sq_01habcdeFGHIjklmnopqrs",
        "assistant_name": "Billing Specialist",
        "assistant_phone": "+14155550100"
    },
    "conversation": {
        "conversation": [
            {
                "id": 1,
                "speaker": "Assistant",
                "message": "Thanks for calling the frontline team.",
                "timestamp": null,
                "original_speaker": "Assistant"
            },
            {
                "id": 2,
                "speaker": "Customer",
                "message": "I need billing help.",
                "timestamp": null,
                "original_speaker": "Customer"
            },
            {
                "id": 3,
                "speaker": "Assistant",
                "message": "Transferring you now.",
                "timestamp": null,
                "original_speaker": "Assistant"
            }
        ],
        "total_messages": 3,
        "participants": [
            "Assistant",
            "Customer"
        ],
        "summary": {
            "assistant_messages": 2,
            "customer_messages": 1
        }
    }
}