문서/API 및 웹훅/조직 및 사용자

조직 및 사용자

조직 리소스는 계정에 대한 메타데이터를 반환합니다. 사용자 리소스를 사용하면 교육을 사용하는 개발자를 목록 조회하고, 가져오고, 초대하고, 업데이트하고, 비활성화할 수 있습니다. 모든 엔드포인트는 /api/public/v1 아래에 있습니다.

엔드포인트

MethodPathScope용도
GET/orgorg:read호출하는 조직의 메타데이터.
GET/usersusers:read조직의 사용자 목록 조회.
GET/users/{'{'}id{'}'}users:read진행 상황 합계를 포함한 단일 사용자.
POST/usersusers:write사용자 초대. 초대 이메일을 발송합니다.
PATCH/users/{'{'}id{'}'}users:write이름, 이메일, 역할 또는 팀 멤버십 업데이트.
DELETE/users/{'{'}id{'}'}users:write사용자 비활성화. 하드 삭제하지 않습니다.

조직 가져오기

API 키와 연결된 조직의 플랜, 좌석 한도, 슬러그, 도메인 및 평가판 상태를 반환합니다.

GET /api/public/v1/org
Authorization: Bearer scs_live_…

응답

{
  "id": "9c2f4b8e-0c1d-4a52-b6f3-1ed7b0a4c9f1",
  "name": "Acme Corp",
  "slug": "acme",
  "domain": "acme.com",
  "plan": "growth",
  "maxSeats": 250,
  "trialExpiresAt": null,
  "isActive": true,
  "createdAt": "2025-08-12T09:14:22Z"
}

예시

curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/org

사용자 목록 조회

조직의 모든 사용자를 활성 또는 비활성화 상태로 반환합니다. 목록은 페이지가 매겨지지 않으며, 플랜에 따라 최대 수천 개의 항목이 예상됩니다.

GET /api/public/v1/users
Authorization: Bearer scs_live_…

응답

[
  {
    "id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
    "name": "Jane Smith",
    "email": "jane.smith@acme.com",
    "role": "learner",
    "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/users

사용자 가져오기

목록 항목과 동일한 필드에 더해 누적 XP, 완료된 챌린지, 완료된 시나리오 및 주제별 진행 상황 배열을 반환합니다. 단일 개발자의 전체 교육 기록이 필요할 때 사용하세요.

GET /api/public/v1/users/{userId}
Authorization: Bearer scs_live_…

응답

{
  "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",
  "totalXp": 4280,
  "completedChallenges": 38,
  "completedScenarios": 4,
  "practiceProgress": [],
  "learnProgress": []
}

예시

curl -sS -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/users/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4

사용자 생성

사용자 레코드를 생성하고 제공된 주소로 초대 이메일을 보냅니다. email에 멱등적입니다: 동일한 이메일을 다시 POST하면 중복을 생성하는 대신 오류를 반환합니다. SCIM 프록시, HRIS 동기화 또는 온보딩 스크립트에서 이를 사용하세요.

POST /api/public/v1/users
Authorization: Bearer scs_live_…
Content-Type: application/json

요청 본문

필드Type필수의미
namestring대시보드와 과제 이메일에 표시되는 표시 이름.
emailstring로그인 식별자. 초대 이메일을 받습니다.
rolestringlearner (기본값) 또는 org_admin. 다른 값은 learner로 강제 변환됩니다.
teamIduuid아니오생성 시점에 사용자를 팀에 배치합니다. 할당되지 않은 상태로 두려면 생략하세요.

응답

{
  "id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
  "name": "Jane Smith",
  "email": "jane.smith@acme.com",
  "role": "learner",
  "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
  "teamName": "Payments",
  "isActive": true,
  "lastLoginAt": null,
  "createdAt": "2026-05-29T09:22:14Z"
}

예시

curl -sS -X POST \
  -H "Authorization: Bearer $SCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jane Smith",
    "email": "jane.smith@acme.com",
    "role": "learner",
    "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32"
  }' \
  https://api.limeplate.com/api/public/v1/users

사용자 업데이트

본문의 모든 필드가 기록됩니다. 사용자를 팀에서 이동하려면 teamId: null을 보내세요. 이메일 주소 변경은 초대를 다시 보내지 않습니다.

PATCH /api/public/v1/users/{userId}
Authorization: Bearer scs_live_…
Content-Type: application/json

요청 본문

네 필드 모두 필수입니다. 변경하지 않으려면 현재 값을 보내세요 — 이 엔드포인트에는 부분 PATCH 의미론이 없습니다.

필드Type필수의미
namestring표시 이름.
emailstring로그인 식별자.
rolestringlearner 또는 org_admin.
teamIduuid 또는 null팀 id, 또는 분리하려면 null.

응답

{
  "id": "b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4",
  "name": "Jane Smith",
  "email": "jane.smith@acme.com",
  "role": "org_admin",
  "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32",
  "teamName": "Payments",
  "isActive": true,
  "lastLoginAt": "2026-05-27T16:42:11Z",
  "createdAt": "2026-02-04T11:08:00Z"
}

예시

curl -sS -X PATCH \
  -H "Authorization: Bearer $SCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Jane Smith",
    "email": "jane.smith@acme.com",
    "role": "org_admin",
    "teamId": "4f8d3e2a-71cb-4d09-9ad7-5b8c7e1f0a32"
  }' \
  https://api.limeplate.com/api/public/v1/users/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4

사용자 비활성화

isActivefalse로 설정합니다. 레코드는 유지됩니다: 완료된 챌린지, 시나리오, XP 및 과거 과제가 보존되어 감사 및 보고가 계속 작동합니다. 사용자는 더 이상 로그인할 수 없으며, SARIF 또는 POST /assignments를 통해 새 과제가 생성되지 않습니다. 하드 삭제 엔드포인트는 없습니다. 데이터 삭제 요청은 개인정보 보호 팀을 통해 진행됩니다.

DELETE /api/public/v1/users/{userId}
Authorization: Bearer scs_live_…

응답

{
  "message": "User deactivated"
}

예시

curl -sS -X DELETE \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/users/b1a4d7c2-9e58-4f3a-83cd-2c6f1a90e7b4