Logo
Search
Docs

Get squad

GET https://app.sulus.ai/api/squads/{id}

Retrieve one squad (local state — deliberately no live read)

Authentication

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

Authorization: Bearer <YOUR_API_KEY>

Path parameters

id string Required

The squad's public id.

Validation: the squad's external_squad_id (UUID, or draft_… slug for drafts)
Stored in squads.external_squad_id

Errors

StatusMeaningBody
404 Squad not found, or outside your account scope {"success":false,"message":"Squad not found"}
401 Missing or invalid bearer token
403 Feature squads not enabled for the account

Notes

  • coreData is always null here — this endpoint deliberately skips the live platform read (see Overview) and only returns the local mirror.
curl --request GET \
  --url https://app.sulus.ai/api/squads/{id} \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
import requests

url = "https://app.sulus.ai/api/squads/{id}"
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/{id}"
	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
    }
}