Squad call logs search
GET
https://app.sulus.ai/api/squad-call-logs/search
Full-text search squad call logs (call id, summary, transcript)
Authentication
Send a bearer token created on your dashboard's Developer page:
Authorization: Bearer <YOUR_API_KEY>
Query parameters
search
string
Required
Search term. Matched with LIKE against call_id, summary, and transcript.
Validation:
required; minimum length 3 (enforced in controller, not FormRequest)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_idassistant_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_idstatus
string
Optional
Nullable
When present and not the literal string "all", filters status.
Stored in
squad_call_logs.statusdirection
string
Optional
Nullable
When present and not the literal string "all", filters direction.
Stored in
squad_call_logs.directionstart_date
string
Optional
Nullable
Inclusive lower bound on start_time (date portion).
Stored in
squad_call_logs.start_timeend_date
string
Optional
Nullable
Inclusive upper bound on start_time (date portion).
Stored in
squad_call_logs.start_timeper_page
integer
Optional
Nullable
Default: 15
Page size. Not clamped in this controller.
page
integer
Optional
Nullable
Default: 1
Laravel paginator page number.
Errors
| Status | Meaning | Body |
|---|---|---|
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"} |
400 |
Missing search or fewer than 3 characters | {"success":false,"message":"Search term must be at least 3 characters"} |
Notes
- Default per_page is 15. Search select omits created_at (unlike list/index).
- Relevance ORDER BY CASE on call_id, then summary, then transcript; then start_time descending.
- status/direction value "all" is ignored on every squad-call-logs list endpoint.
curl --request GET \
--url https://app.sulus.ai/api/squad-call-logs/search \
--header 'Authorization: Bearer <YOUR_API_KEY>'
import requests
url = "https://app.sulus.ai/api/squad-call-logs/search"
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/search"
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",
"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": 1,
"per_page": 15,
"total": 1,
"from": 1,
"to": 1
}
}
Response — GET
/squad-call-logs/search
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",
"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": 1,
"per_page": 15,
"total": 1,
"from": 1,
"to": 1
}
}