Squads
Endpoints for managing SLAW squads — creating, reading, updating, archiving, and portability (import/export).
Prerequisites
- API key:
Authorization: Bearer <token> - Operator-scoped key required for create/archive/delete operations
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/squads | List all squads |
GET | /api/squads/{squadId} | Get a squad |
POST | /api/squads | Create a squad |
PATCH | /api/squads/{squadId} | Update a squad |
POST | /api/squads/{squadId}/archive | Archive a squad |
DELETE | /api/squads/{squadId} | Delete a squad |
GET | /api/squads/{squadId}/agents | List agents in a squad |
GET | /api/squads/{squadId}/org | Org chart (JSON) |
POST | /api/squads/{squadId}/exports/preview | Preview export |
POST | /api/squads/{squadId}/exports | Export squad to portable package |
POST | /api/squads/{squadId}/imports/preview | Preview import (dry run) |
POST | /api/squads/{squadId}/imports/apply | Apply an import |
List squads
GET /api/squads
Returns all squads visible to the caller.
Response
{
"squads": [
{
"id": "43490165-b352-45d1-a6ba-f267f158d925",
"name": "Engineering",
"slug": "engineering",
"createdAt": "2026-01-01T00:00:00Z"
}
]
}
Get a squad
GET /api/squads/{squadId}
Path parameters
| Parameter | Type | Description |
|---|---|---|
squadId | UUID | Squad identifier |
Response
{
"squad": {
"id": "...",
"name": "Engineering",
"slug": "engineering",
"createdAt": "2026-01-01T00:00:00Z"
}
}
Create a squad
POST /api/squads
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Squad display name |
slug | string | no | URL-safe identifier; auto-generated if omitted |
Response — 201 Created
{ "squad": { "id": "...", "name": "...", "slug": "..." } }
Update a squad
PATCH /api/squads/{squadId}
Request body
| Field | Type | Description |
|---|---|---|
name | string | New display name |
Archive a squad
POST /api/squads/{squadId}/archive
Marks the squad as archived. Agents are paused; issues become read-only.
Response
{ "ok": true }
Export a squad
POST /api/squads/{squadId}/exports
Produces a portable package of the squad configuration, agents, and optional issues.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
include | string[] | yes | Items to export: squad, agents, issues, skills |
Response
{ "jobId": "...", "status": "queued" }
Import preview (dry run)
POST /api/squads/{squadId}/imports/preview
Validates an import package against the target squad without writing any data.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
source | string | yes | Local path or GitHub owner/repo/path reference |
collision | string | no | Collision policy: rename (default) or skip |
Response
{
"preview": {
"added": [...],
"skipped": [...],
"conflicts": [...]
}
}
Apply an import
POST /api/squads/{squadId}/imports/apply
Applies a validated import. Use preview first to detect conflicts.
Request body
Same shape as preview.
Errors
| Status | Cause |
|---|---|
404 | Squad not found |
409 | Slug collision on create |