Crews
The teams work gets placed on. Read-only here: a crew is made of real org users, and adding one is an account decision rather than an integration one.
get
https://app.treeinventory.ai/api/v1/crewsList crews
Read this before scheduling. Placing work takes a crewId from here, and an id you invented fails the whole batch. Archived crews are included and marked active: false; do not place new work on one.
Scope: crews:read
Each item in data.items
| Field | Type | Notes |
|---|---|---|
| id | uuid | |
| name | string | |
| color | string | Hex, #rrggbb. The color this crew is drawn in on the board. |
| active | boolean | false means archived. Archived crews are returned because history keeps their identity, but do not schedule new work onto one. |
| memberCount | integer | |
| createdAt | string | ISO-8601, UTC. |
| updatedAt | string | ISO-8601, UTC. |
Example response 200
{
"success": true,
"message": "Crews retrieved",
"data": {
"items": [
{
"id": "d2f4a601-88b3-4c17-9e5a-3b7f0c1d2e94",
"name": "Crew A",
"color": "#2f855a",
"active": true,
"memberCount": 3,
"createdAt": "2026-04-11T13:20:44.101Z",
"updatedAt": "2026-07-02T08:15:03.660Z"
}
]
}
}Failures
401Missing, malformed, revoked or expired credential. TheWWW-Authenticateheader names the scheme, which isApiKey. Carries noRateLimit-*headers: the credential was never resolved, so there is no bucket to report.403The key is valid but does not carry the scope this operation requires. The message names the scope, so you can ask for exactly the grant you need. Carries noRateLimit-*headers: a request refused for scope is not counted against your limit.404No such record in your organization. A record belonging to somebody else is indistinguishable from one that does not exist.422Validation failed. Every bad field is named, at once.429Rate limit exceeded.500Something failed on our side. Retry with the SAME Idempotency-Key; a 5xx is the one status where retrying is correct.