팀
팀은 보고, 컴플라이언스 롤업 및 팀 범위 과제를 위해 사용자를 그룹화합니다. 모든 엔드포인트는 /api/public/v1/teams 아래에 있습니다. 사용자는 한 번에 0개 또는 1개의 팀에 속할 수 있습니다.
엔드포인트
| Method | Path | Scope | 용도 |
|---|---|---|---|
| GET | /teams | teams:read | 구성원 수와 함께 팀 목록 조회. |
| GET | /teams/{'{'}id{'}'} | teams:read | 구성원 목록이 있는 단일 팀. |
| POST | /teams | teams:write | 팀 생성. |
| PATCH | /teams/{'{'}id{'}'} | teams:write | 팀 이름 변경. |
| DELETE | /teams/{'{'}id{'}'} | teams:write | 팀 삭제. 구성원은 할당이 해제되며, 비활성화되지 않습니다. |
| POST | /teams/{'{'}teamId{'}'}/members/{'{'}userId{'}'} | teams:write | 팀에 사용자 추가. |
| DELETE | /teams/{'{'}teamId{'}'}/members/{'{'}userId{'}'} | teams:write | 팀에서 사용자 제거. |
팀 목록 조회
조직의 모든 팀을 반환합니다. 구성원 수는 비정규화되어 있습니다 — 실제 명단을 위해 GET /teams/{id}를 호출하세요.
GET /api/public/v1/teams
Authorization: Bearer scs_live_…응답
[
{
"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"
}
]예시
curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teams팀 가져오기
진행 상황 배열을 제외한 GET /users/{id}와 동일한 형태로 팀과 구성원 명단을 반환합니다.
GET /api/public/v1/teams/{teamId}
Authorization: Bearer scs_live_…응답
{
"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"
}
]
}예시
curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teams/4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32팀 생성
팀 이름은 조직 내에서 고유해야 합니다. 응답은 구성원 수가 0인 새 팀을 반환합니다.
POST /api/public/v1/teams
Authorization: Bearer scs_live_…
Content-Type: application/json요청 본문
| 필드 | Type | 필수 | 의미 |
|---|---|---|---|
name | string | 예 | 팀 표시 이름. 조직 내에서 고유해야 합니다. |
응답
{
"id": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
"name": "Payments",
"memberCount": 0,
"createdAt": "2026-05-29T09:30:12Z"
}예시
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팀 업데이트
팀 이름만 변경할 수 있습니다. 구성원을 이동하려면 멤버 엔드포인트를 사용하세요.
PATCH /api/public/v1/teams/{teamId}
Authorization: Bearer scs_live_…
Content-Type: application/json요청 본문
| 필드 | Type | 필수 | 의미 |
|---|---|---|---|
name | string | 예 | 새 팀 이름. |
응답
{
"message": "Team updated"
}예시
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팀 삭제
팀을 제거합니다. 팀의 구성원은 할당이 해제되지만(teamId가 null이 됨) 비활성화되지 않습니다 — 그들의 계정, XP 및 진행 상황은 그대로 유지됩니다. 삭제된 팀과 연결된 팀 범위 과제는 비활성화됩니다.
DELETE /api/public/v1/teams/{teamId}
Authorization: Bearer scs_live_…응답
{
"message": "Team deleted"
}예시
curl -sS -X DELETE \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/teams/4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32구성원 추가
사용자를 팀으로 이동합니다. 사용자가 이미 다른 팀에 있었다면 이전 멤버십이 대체됩니다. 별도의 "이전" 호출이 없습니다.
POST /api/public/v1/teams/{teamId}/members/{userId}
Authorization: Bearer scs_live_…응답
{
"message": "Member added"
}예시
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구성원 제거
팀에서 사용자를 분리합니다. teamId: null로 사용자를 PATCH하는 것과 동일하지만 팀 identity를 통해 깔끔하게 라우팅됩니다. 사용자의 계정과 진행 상황은 영향을 받지 않습니다.
DELETE /api/public/v1/teams/{teamId}/members/{userId}
Authorization: Bearer scs_live_…응답
{
"message": "Member removed"
}예시
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