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

MethodPathScopePurpose
GET/teamsteams:readList teams with member counts.
GET/teams/{id}teams:readSingle team with member list.
POST/teamsteams:writeCreate a team.
PATCH/teams/{id}teams:writeRename a team.
DELETE/teams/{id}teams:writeDelete a team. Members are unassigned, not deactivated.
POST/teams/{teamId}/members/{userId}teams:writeAdd a user to a team.
DELETE/teams/{teamId}/members/{userId}teams:writeRemove 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/teams

Get 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-5b8c7e1f0a32

Create 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/json

Request body

FieldTypeRequiredMeaning
namestringyesTeam 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/teams

Update 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/json

Request body

FieldTypeRequiredMeaning
namestringyesNew 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-5b8c7e1f0a32

Delete 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-5b8c7e1f0a32

Add 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-2c6f1a90e7b4

Remove 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