Logo
Search
Docs

Squad call logs list

GET https://app.sulus.ai/api/squad-call-logs/list

List squad call logs (dashboard default; alias of index)

Authentication

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

Authorization: Bearer <YOUR_API_KEY>

Query parameters

squad_id integer Optional Nullable

Filter by local squads.id. Accepted as a query filter only — the numeric squad_id is stripped from every response row.

Stored in squad_call_logs.squad_id
assistant_id integer Optional Nullable

Filter by the member assistant that was active at end of call (local assistants.id).

Stored in squad_call_logs.assistant_id
status string Optional Nullable

When present and not the literal string "all", filters status.

Stored in squad_call_logs.status
direction string Optional Nullable

When present and not the literal string "all", filters direction.

Stored in squad_call_logs.direction
start_date string Optional Nullable

Inclusive lower bound on start_time (date portion).

Stored in squad_call_logs.start_time
end_date string Optional Nullable

Inclusive upper bound on start_time (date portion).

Stored in squad_call_logs.start_time
search string Optional Nullable

Substring match on call_id and summary (list/index). On /search it is required and also matches transcript.

per_page integer Optional Nullable Default: 20

Page size. Not clamped in this controller.

page integer Optional Nullable Default: 1

Laravel paginator page number.

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"}

Notes

  • Implemented as a direct call to index() — same select, filters, created_at, and envelope.
  • Numeric squad_id is stripped from every row; use squad_external_id as the public squad id.
  • reseller relation (id, domain) is eager-loaded so recording URL appends can resolve the tenant domain.
  • cost and currency are present only for content admins; examples show the end-user shape.
curl --request GET \
  --url https://app.sulus.ai/api/squad-call-logs/list \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
import requests

url = "https://app.sulus.ai/api/squad-call-logs/list"
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/list"
	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,
            "reseller_id": "9f3c2a10-5b6d-4e8f-9a1b-2c3d4e5f6789",
            "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",
            "summary": "Caller transferred from intake to billing specialist; confirmed invoice date.",
            "call_record_file_name": "rec_01hsquad9abcdeFGHIjklmnopq.mp3",
            "created_at": "2026-07-30T14:04:40.000000Z",
            "squad_name": "Frontline Team",
            "squad_external_id": "sq_01habcdeFGHIjklmnopqrs",
            "assistant_name": "Billing Specialist",
            "assistant_phone": "+14155550100",
            "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",
            "reseller": {
                "id": "9f3c2a10-5b6d-4e8f-9a1b-2c3d4e5f6789",
                "domain": "app.example.com"
            }
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 2,
        "per_page": 20,
        "total": 28,
        "from": 1,
        "to": 20
    }
}