조직 및 사용자
조직 리소스는 계정에 대한 메타데이터를 반환합니다. 사용자 리소스를 사용하면 교육을 사용하는 개발자를 목록 조회하고, 가져오고, 초대하고, 업데이트하고, 비활성화할 수 있습니다. 모든 엔드포인트는 /api/public/v1 아래에 있습니다.
엔드포인트
| Method | Path | Scope | 용도 |
|---|---|---|---|
| GET | /org | org:read | 호출하는 조직의 메타데이터. |
| GET | /users | users:read | 조직의 사용자 목록 조회. |
| GET | /users/{'{'}id{'}'} | users:read | 진행 상황 합계를 포함한 단일 사용자. |
| POST | /users | users: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 | 필수 | 의미 |
|---|---|---|---|
name | string | 예 | 대시보드와 과제 이메일에 표시되는 표시 이름. |
email | string | 예 | 로그인 식별자. 초대 이메일을 받습니다. |
role | string | 예 | learner (기본값) 또는 org_admin. 다른 값은 learner로 강제 변환됩니다. |
teamId | uuid | 아니오 | 생성 시점에 사용자를 팀에 배치합니다. 할당되지 않은 상태로 두려면 생략하세요. |
응답
{
"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 | 필수 | 의미 |
|---|---|---|---|
name | string | 예 | 표시 이름. |
email | string | 예 | 로그인 식별자. |
role | string | 예 | learner 또는 org_admin. |
teamId | uuid 또는 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사용자 비활성화
isActive를 false로 설정합니다. 레코드는 유지됩니다: 완료된 챌린지, 시나리오, 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