Skip to main content

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​

MethodPathDescription
GET/api/squadsList all squads
GET/api/squads/{squadId}Get a squad
POST/api/squadsCreate a squad
PATCH/api/squads/{squadId}Update a squad
POST/api/squads/{squadId}/archiveArchive a squad
DELETE/api/squads/{squadId}Delete a squad
GET/api/squads/{squadId}/agentsList agents in a squad
GET/api/squads/{squadId}/orgOrg chart (JSON)
POST/api/squads/{squadId}/exports/previewPreview export
POST/api/squads/{squadId}/exportsExport squad to portable package
POST/api/squads/{squadId}/imports/previewPreview import (dry run)
POST/api/squads/{squadId}/imports/applyApply 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​

ParameterTypeDescription
squadIdUUIDSquad identifier

Response​

{
"squad": {
"id": "...",
"name": "Engineering",
"slug": "engineering",
"createdAt": "2026-01-01T00:00:00Z"
}
}

Create a squad​

POST /api/squads

Request body​

FieldTypeRequiredDescription
namestringyesSquad display name
slugstringnoURL-safe identifier; auto-generated if omitted

Response — 201 Created​

{ "squad": { "id": "...", "name": "...", "slug": "..." } }

Update a squad​

PATCH /api/squads/{squadId}

Request body​

FieldTypeDescription
namestringNew 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​

FieldTypeRequiredDescription
includestring[]yesItems 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​

FieldTypeRequiredDescription
sourcestringyesLocal path or GitHub owner/repo/path reference
collisionstringnoCollision 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​

StatusCause
404Squad not found
409Slug collision on create

Next steps​

  • Agents — manage agents within a squad
  • Issues — create and manage issues