Logo
Search
Docs

List squads

GET https://app.sulus.ai/api/squads

List squads you can access

Authentication

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

Authorization: Bearer <YOUR_API_KEY>

Query parameters

search string Optional Nullable
Validation: string (name contains-filter)
Stored in squads.name
status string Optional Nullable
Validation: only draft or published are honoured
Stored in squads.status
sort_by string Optional Default: created_at
Validation: in: name, created_at, updated_at (fallback created_at)
sort_order string Optional Default: desc
Validation: asc|desc
per_page integer Optional Default: 15
Validation: integer

Errors

StatusMeaningBody
401 Missing or invalid bearer token
403 Feature squads not enabled for the account

Notes

  • user and creator are eager-loaded and always present in list rows (id, name, email only).
curl --request GET \
  --url https://app.sulus.ai/api/squads \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
import requests

url = "https://app.sulus.ai/api/squads"
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/squads"
	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": [
        {
            "name": "Front desk",
            "external_squad_id": "e5f6a7b8-1c2d-4e3f-9a8b-7c6d5e4f3a2b",
            "status": "published",
            "user_id": 42,
            "created_by": 42,
            "reseller_id": "f1e2d3c4-b5a6-4978-8901-234567890abc",
            "workspace_id": 7,
            "members": [
                {
                    "assistantId": "a1b2c3d4-1e2f-4a3b-8c9d-0e1f2a3b4c5d",
                    "assistantOverrides": {
                        "name": "Reception",
                        "firstMessage": "Thanks for calling, how can I help?"
                    },
                    "assistantDestinations": [
                        {
                            "type": "assistant",
                            "assistantName": "Booking",
                            "message": "One moment, transferring you.",
                            "description": "Caller wants to book an appointment",
                            "transferMode": "rolling-history"
                        }
                    ],
                    "position": {
                        "x": 120.5,
                        "y": 240
                    }
                },
                {
                    "assistantId": "b2c3d4e5-2f3a-4b4c-9d0e-1f2a3b4c5d6e",
                    "assistantOverrides": {
                        "name": "Booking"
                    },
                    "position": {
                        "x": 420,
                        "y": 240
                    }
                }
            ],
            "members_overrides": {
                "voicemailMessage": "Please leave a message after the tone."
            },
            "variable_values": {
                "business_name": "Acme Dental"
            },
            "metadata": {
                "template_id": 5,
                "personality_id": 16
            },
            "created_at": "2026-06-01T14:22:03+00:00",
            "updated_at": "2026-07-15T09:10:44+00:00",
            "user": {
                "id": 42,
                "name": "Jane Cooper",
                "email": "[email protected]"
            },
            "creator": {
                "id": 42,
                "name": "Jane Cooper",
                "email": "[email protected]"
            },
            "memberCount": 2,
            "entryAssistantName": "Reception",
            "updatedAt": "2026-07-15T09:10:44+00:00",
            "createdAt": "2026-06-01T14:22:03+00:00",
            "coreData": null
        }
    ],
    "pagination": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 15,
        "total": 1,
        "from": 1,
        "to": 1
    }
}