문서/API 및 웹훅/

팀은 보고, 컴플라이언스 롤업 및 팀 범위 과제를 위해 사용자를 그룹화합니다. 모든 엔드포인트는 /api/public/v1/teams 아래에 있습니다. 사용자는 한 번에 0개 또는 1개의 팀에 속할 수 있습니다.

엔드포인트

MethodPathScope용도
GET/teamsteams:read구성원 수와 함께 팀 목록 조회.
GET/teams/{'{'}id{'}'}teams:read구성원 목록이 있는 단일 팀.
POST/teamsteams: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필수의미
namestring팀 표시 이름. 조직 내에서 고유해야 합니다.

응답

{
  "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필수의미
namestring새 팀 이름.

응답

{
  "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

팀 삭제

팀을 제거합니다. 팀의 구성원은 할당이 해제되지만(teamIdnull이 됨) 비활성화되지 않습니다 — 그들의 계정, 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