Teams
Teams group users for reporting, compliance roll-ups, and team-scoped assignments. All endpoints sit under /api/public/v1/teams. A user can be in zero or one team at a time.
Endpoints
| Method | Path | Scope | Purpose |
|---|---|---|---|
| GET | /teams | teams:read | List teams with member counts. |
| GET | /teams/{id} | teams:read | Single team with member list. |
| POST | /teams | teams:write | Create a team. |
| PATCH | /teams/{id} | teams:write | Rename a team. |
| DELETE | /teams/{id} | teams:write | Delete a team. Members are unassigned, not deactivated. |
| POST | /teams/{teamId}/members/{userId} | teams:write | Add a user to a team. |
| DELETE | /teams/{teamId}/members/{userId} | teams:write | Remove a user from a team. |
List teams
Returns every team in the organization. Member count is denormalized — call GET /teams/{id} for the actual roster.
GET /api/public/v1/teams
Authorization: Bearer scs_live_…Response
[
{
"id": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
"name": "Payments",
"memberCount": 12,
"createdAt": "2025-11-03T14:20:00Z"
},
{
"id": "a52e1f9b-8c44-4a31-9c0d-3b62e0a17c84",
"name": "Platform",
"memberCount": 8,
"createdAt": "2025-11-03T14:21:42Z"
}
]Example
curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teamsGet team
Returns the team plus its member roster with the same shape as GET /users/{id} minus progress arrays.
GET /api/public/v1/teams/{teamId}
Authorization: Bearer scs_live_…Response
{
"id": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
"name": "Payments",
"createdAt": "2025-11-03T14:20:00Z",
"members": [
{
"id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
"name": "Jane Smith",
"email": "jane.smith@acme.com",
"role": "member",
"teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
"teamName": "Payments",
"isActive": true,
"lastLoginAt": "2026-05-27T16:42:11Z",
"createdAt": "2026-02-04T11:08:00Z"
}
]
}Example
curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teams/4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32Create team
Team names must be unique within the organization. The response returns the new team with a member count of zero.
POST /api/public/v1/teams
Authorization: Bearer scs_live_…
Content-Type: application/jsonRequest body
| Field | Type | Required | Meaning |
|---|---|---|---|
name | string | yes | Team display name. Must be unique within the organization. |
Response
{
"id": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
"name": "Payments",
"memberCount": 0,
"createdAt": "2026-05-29T09:30:12Z"
}Example
curl -sS -X POST \
-H "Authorization: Bearer $SCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Payments"}' \
https://api.limeplate.com/api/public/v1/teamsUpdate team
Only the team name can be changed. To move members in or out, use the member endpoints.
PATCH /api/public/v1/teams/{teamId}
Authorization: Bearer scs_live_…
Content-Type: application/jsonRequest body
| Field | Type | Required | Meaning |
|---|---|---|---|
name | string | yes | New team name. |
Response
{
"message": "Team updated"
}Example
curl -sS -X PATCH \
-H "Authorization: Bearer $SCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Payments Core"}' \
https://api.limeplate.com/api/public/v1/teams/4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32Delete team
Removes the team. Members of the team are unassigned (their teamId becomes null) but are not deactivated — their accounts, XP, and progress stay intact. Team-scoped assignments tied to the deleted team are deactivated.
DELETE /api/public/v1/teams/{teamId}
Authorization: Bearer scs_live_…Response
{
"message": "Team deleted"
}Example
curl -sS -X DELETE \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teams/4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32Add member
Moves a user into the team. If the user was already in a different team, that previous membership is replaced. There is no separate "transfer" call.
POST /api/public/v1/teams/{teamId}/members/{userId}
Authorization: Bearer scs_live_…Response
{
"message": "Member added"
}Example
curl -sS -X POST \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teams/4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32/members/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4Remove member
Detaches the user from the team. Equivalent to PATCH-ing the user with teamId: null, but routes cleanly through the team identity. The user's account and progress are not affected.
DELETE /api/public/v1/teams/{teamId}/members/{userId}
Authorization: Bearer scs_live_…Response
{
"message": "Member removed"
}Example
curl -sS -X DELETE \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teams/4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32/members/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4