본문 바로가기
KLASSLAB API / V1

MCP 연결

AI에 연결하고, 필요한 업무를 대화로 요청하세요.

대화로 KlassLab 사용하기

학생 조회, 수강반·상담·생활기록 관리와 OMR 채점 등 데이터 기능을 MCP로 호출합니다. 별도 앱 화면 없이 사용할 수 있습니다.

연결 주소: https://api.klasslab.com/mcp/v1
  1. 활성 API 구독을 준비합니다. 일반 무료 계정은 별도 API 전용 계정이 필요합니다.
  2. 사용할 MCP 클라이언트에 HTTPS 연결 주소를 등록하고 OAuth 인증을 선택합니다.
  3. KlassLab 계정으로 로그인하고 요청한 권한과 연결할 서비스를 확인한 후 동의합니다.
  4. “이번 주 상담 예약을 보여줘”처럼 요청합니다. 사용할 학생·반·시험은 조회 결과에서 선택하세요.

Codex에서 연결이 불안정할 때

Codex에서 로그인·연결 동의 후 오류가 나더라도, 같은 플러그인을 ChatGPT 웹에서 연결하면 정상 완료되는 사례가 있습니다. 다음 순서로 확인해 보세요.

  1. ChatGPT 웹에 Codex와 같은 OpenAI 계정·워크스페이스로 로그인합니다.
  2. 웹의 플러그인 목록에서 기존 KlassLab 플러그인을 열고 연결 또는 재연결을 진행합니다. 연결할 KlassLab 계정과 요청 권한을 확인한 뒤 동의합니다.
  3. 웹에서 연결 완료를 확인하고 Codex로 돌아와 플러그인 연결 상태를 새로 고칩니다. 상태가 갱신되지 않으면 Codex를 완전히 종료한 뒤 다시 실행합니다.
  4. Codex에서 KlassLab 플러그인을 선택하고 “수강반 목록을 보여줘”처럼 조회 요청으로 실제 사용이 되는지 확인합니다. 연결 표시만으로 성공을 판단하지 마세요.
연결 실패 시 먼저 웹에서 확인하세요.

이 방법은 모든 환경에서의 성공을 보장하지는 않습니다. 처음부터 기존 플러그인을 삭제하거나 새로 만들 필요는 없습니다.

도구 목록이 오래된 경우 플러그인 관리에서 도구 새로 고침을 실행합니다. 그래도 연결되지 않으면 오류 문구·발생 시각·사용한 서비스와 앱 버전을 문의 페이지으로 알려 주세요. 비밀번호·API 키·인증 코드가 포함된 전체 연결 주소는 보내지 마세요.

권한과 연결 해제

조회 권한만 허용한 연결에는 등록·수정·삭제 도구가 표시되지 않으며 직접 호출도 차단됩니다. 연결은 최대 90일 유지됩니다.

키 관리에서 MCP · 연결 이름 항목을 폐기하면 해당 연결의 모든 토큰이 즉시 차단됩니다. API 키 원문이나 비밀번호를 대화에 입력하지 마세요.

OMR 양식 받기부터 채점까지

  1. “OMR 양식 목록을 보여줘”라고 요청하고 필요한 양식 번호를 선택합니다.
  2. “120번 양식 PDF로 줘”처럼 요청해 원본 PDF를 받습니다. 실제 크기(100%)로 인쇄하고 학생들이 답안을 작성하도록 합니다.
  3. 작성한 답안을 스캔한 PDF 또는 이미지로 첨부하고 “시험 목록을 보여주고 선택한 시험으로 채점해 줘”라고 요청합니다.
  4. 시험을 선택한 뒤 장수·채점 기준·구독 한도을 확인하고 채점에 동의합니다.
  5. 채점 결과를 확인합니다. 이름이나 학생 번호를 인식하지 못한 답안은 별도로 확인해 주세요.

첨부파일 전달을 지원하는 환경에서 이용할 수 있습니다. PDF는 최대 50MB·100쪽, PNG·JPG는 파일당 최대 5MB입니다. 변환된 이미지는 페이지당 5MB·전체 100MB 이하여야 합니다. 학원별로 유효한 업로드 파일을 최대 100개까지 보관하며, PDF는 페이지마다 1개로 계산합니다. 파일은 업로드 후 24시간 동안 사용할 수 있습니다.

구독과 채점 이용량

MCP와 API는 같은 구독의 호출량·OMR 한도를 사용합니다. API 콘솔에서 현재 요금제와 사용량을 확인하세요.

업로드만으로 채점하지 않습니다. 실행에 동의하면 실제 이미지 장수를 집계하며 PDF는 페이지별로 계산합니다. 별도 크레딧 차감은 없습니다. 인식 실패도 시도한 장수에 포함됩니다.

페이지

API 구독 · 크레딧API 키 관리API 사용량 · 호출 로그문의 · 증액 신청

문서

MCP 연결KlassLab API · v1선생님 개발 가이드KlassLab API · v1KlassLab API 소개KlassLab API · v1빠른 시작KlassLab API · v1API 키KlassLab API · v1API 레퍼런스KlassLab API · v1제공 기능 · 요금KlassLab API · v1API ExplorerKlassLab API · v1

API 레퍼런스

등록된 온라인 과제·재시험 조회(온라인 번호·구분·진행 상태)온라인 과제·재시험 · GET /grading/online-exams온라인 시험 구분·응시대상 설정 현황온라인 과제·재시험 · GET /grading/online-exams/{onlineExamId}온라인 시험 구분 변경(연결된 재시험은 먼저 연결 해제)온라인 과제·재시험 · PATCH /grading/online-exams/{onlineExamId}/kind과제장 재시험 연결·해제할 등록 번호 조회과제장 재시험 연결 · GET /teaching/lessons/{lessonId}/retest재시험 연결·선택한 과제장 학생 응시 등록·재시험 대상 체크(원자적 저장)과제장 재시험 연결 · PUT /teaching/lessons/{lessonId}/retest조회한 연결 해제·개별 응시 등록 제거(공유 학생·반 등록·성적·출결 보존)과제장 재시험 연결 · DELETE /teaching/lessons/{lessonId}/retest미제출 명단 조회(재시험은 지정 응시대상, 통합은 두 시험 모두 성적 없음)미제출 명단 · GET /grading/exams/{examId}/missing-submissions직원 기본정보 상세(비밀번호·급여 제외)직원 출퇴근 · GET /attendance/staff/{staffId}직원 기본정보 등록(로그인 비밀번호 발급 없음)직원 출퇴근 · POST /attendance/staff직원 기본정보·입퇴사일 수정직원 출퇴근 · PUT /attendance/staff/{staffId}직원 퇴사 처리(근무 이력 보존)직원 출퇴근 · DELETE /attendance/staff/{staffId}전반 취소(새 반 수강번호 지정·이전 반 복원·취소 이력 보존)수강생관리 · POST /students/{id}/enrollments/{enrollmentId}/cancel-transfer수강 등록일 수정수강생관리 · PATCH /students/{id}/enrollments/{enrollmentId}수강 등록 삭제(출결·과제 기록이 있으면 거절)수강생관리 · DELETE /students/{id}/enrollments/{enrollmentId}학생 단일 필드 수정수강생관리 · PATCH /students/{id}퇴원 취소수강생관리 · POST /students/{id}/enrollments/{enrollmentId}/restore수강반 전반(원 수강 종료와 신규 등록을 함께 저장)수강생관리 · POST /students/{id}/enrollments/{enrollmentId}/moveTeaching teacher names and IDs, including teachers without classes; shared by classes, lessons and exams. Not employee time-clock staff.수강반관리 · GET /teams/teachers상담 담당자 선택 목록상담예약관리 · GET /consultations/staff생활기록 분류 목록학생생활기록 · GET /life-records/categories수강반·담당·시간표 목록. status=open 미종강(미래 개강·종강 포함), closed 종강, all 전체. 한국 오늘 기준. sort=id_desc 최신 등록번호순, begin_date_asc/desc 개강일순. appliedSort/appliedStatus 확인수강반관리 · GET /teams예정 수업·담당자·시각·고유 재원 인원. date의 하루 조회; lookAheadDays>0이면 그날부터 범위 안 첫 수업일 조회. 개강·종강·시간표 기간 적용, 저장 출석부 아님수강반관리 · GET /teams/daily-plan수강반 상세수강반관리 · GET /teams/{id}수강반 등록수강반관리 · POST /teams새 수강반과 시간표를 함께 등록(원자적 저장·하나라도 실패하면 전체 취소)수강반관리 · POST /teams/with-schedules수강반 수정 · 종강/종강 취소수강반관리 · PUT /teams/{id}수강반 삭제(재원생이 있으면 거절)수강반관리 · DELETE /teams/{id}수강반의 시간표 목록(id는 teamId이며 scheduleId 아님)수강반관리 · GET /teams/{id}/schedules시간표 등록수강반관리 · POST /teams/{id}/schedules시간표 수정수강반관리 · PUT /teams/{id}/schedules/{scheduleId}시간표 삭제(수업·재원생이 있으면 거절)수강반관리 · DELETE /teams/{id}/schedules/{scheduleId}학생 검색 · 목록(공백으로 구분한 이름·학생번호·연락처 중 하나라도 일치)수강생관리 · GET /students학생 기본정보수강생관리 · GET /students/{id}학생 기본정보 등록(수강 등록은 별도)수강생관리 · POST /students학생 기본정보 수정(전체 필드 교체)수강생관리 · PUT /students/{id}학생 삭제(재원 중이면 거절)수강생관리 · DELETE /students/{id}학생 수강 이력수강생관리 · GET /students/{id}/enrollments기존 학생 수강 등록수강생관리 · POST /enrollments퇴원 처리수강생관리 · PUT /students/{id}/enrollments/{enrollmentId}/end기간별 상담 예약상담예약관리 · GET /consultations상담 예약 상세상담예약관리 · GET /consultations/{id}상담 예약 등록상담예약관리 · POST /consultations상담 예약 변경 · 완료 · 취소상담예약관리 · PUT /consultations/{id}상담 예약 삭제상담예약관리 · DELETE /consultations/{id}생활기록 항목 정의학생생활기록 · GET /life-records/fields생활기록 항목 설정학생생활기록 · PUT /life-records/fields수강 시간표별 학생 생활기록학생생활기록 · GET /life-records학생 생활기록 저장(항목 값 병합)학생생활기록 · PUT /life-records학생 생활기록 삭제학생생활기록 · DELETE /life-records/{id}채점 과목 목록채점 과목 · GET /grading/subjects과목별 대분류 목록채점 과목 · GET /grading/subjects/{subject}/sections과목·대분류 등록채점 과목 · POST /grading/sections과목 내 대분류 수정채점 과목 · PUT /grading/sections/{sectionId}대분류 삭제(사용 중이면 거절)채점 과목 · DELETE /grading/sections/{sectionId}대분류의 소분류 목록채점 과목 · GET /grading/sections/{sectionId}/patterns소분류 등록채점 과목 · POST /grading/sections/{sectionId}/patterns소분류 수정채점 과목 · PUT /grading/sections/{sectionId}/patterns/{patternId}소분류 삭제(사용 중이면 거절)채점 과목 · DELETE /grading/sections/{sectionId}/patterns/{patternId}공식 OMR 양식별 총 칸 수·종류 목록·PDF/이미지 제공 정보. 개별 문항 번호·답안 종류·정답 입력 틀은 grading.answer-template.get에 있음. answerTypes는 필요한 종류 교집합 필터(0 객관식, 1 단답형 정답 비교, 2 서술형 획득점수). 미지정 필터는 생략. 양식 코드는 학원 시험 이름이 아님OMR 양식 정보 · GET /grading/omr-templates공식 빈 OMR PDF·이미지 원본 다운로드OMR 양식 정보 · GET /grading/omr-templates/{code}/files/{format}지정한 OMR 양식의 문항별 번호(number)·답안 종류(answerType)·정답·배점 입력 틀 배열. 특정 문항 범위의 종류 확인에도 사용. 0 객관식, 1 단답형 정답 비교, 2 서술형 획득점수. 실제 시험·채점 점수 조회가 아님정답지 등록 · GET /grading/omr-templates/{code}/answers시험·정답지 검색·목록(제목·회차·연도·학년으로 구별, 수강반 목록과 다름)정답지 등록 · GET /grading/exams시험과 전체 문항별 정답 상세정답지 등록 · GET /grading/exams/{examId}새 시험·정답지 등록(학생 답안 채점 아님)정답지 등록 · POST /grading/exams정답지 전체 교체(성적표 설정·문항 이미지 연결 보존)정답지 등록 · PUT /grading/exams/{examId}시험 삭제(채점 자료가 있으면 거절)정답지 등록 · DELETE /grading/exams/{examId}채점 점수·답안·코멘트 조회. 오답·보충·만점 대비 비율 분석은 includeAnalysis=true로 서버 판정을 사용. 빈 답안은 실제 무응답으로 단정하지 않고 미식별 학생은 추측하지 않음채점 자료 수정 · GET /grading/exams/{examId}/scores기존 시험에 학생 수기·엑셀 답안 채점·저장(결과는 학생별 번호 배열)채점 자료 수정 · POST /grading/exams/{examId}/scores개별·일괄 기존 채점 답안 수정 및 재채점. 기존 미식별 답안은 행 id와 빈 studentId로 학생 연결·인식 이름을 보존하며 수정. 정답지와 원본 marks 전체를 조회해 요청하지 않은 답안은 유지채점 자료 수정 · PUT /grading/exams/{examId}/scores채점 행 삭제채점 자료 수정 · DELETE /grading/exams/{examId}/scores/{scoreId}학생별 성적 개별 코멘트 저장채점 자료 수정 · PATCH /grading/exams/{examId}/scores/{scoreId}/commentOMR PDF 원본 업로드(최대 50MB·100쪽 / 페이지 자동 변환)작업 파일 · POST /grading/pdf-uploads채팅 첨부 OMR PDF 업로드(최대 50MB·100쪽 / 이미지·XLSX도 지원)작업 파일 · POST /grading/attachments보조 업로드: PNG·JPG 스캔 이미지·XLSX 답안 파일(파일당 5MB)작업 파일 · POST /grading/uploads단일·두 회차 OMR 채점 작업 등록(구독 OMR 장수 집계)OMR 채점 · POST /grading/omr-jobsXLSX 답안 등록 작업 생성엑셀 채점 등록 · POST /grading/exams/{examId}/excel-imports데이터 작업 진행 상태·인식 결과 조회작업 상태 · GET /grading/jobs/{jobId}정답 변경 후 점수·통계 재계산 작업 생성채점 자료 수정 · POST /grading/recalculation-jobs현재 API 호출·OMR 장수의 사용량과 구독 한도 확인OMR 채점 · GET /grading/usage날짜·반별 수업 기록·과제장 목록(수강반 목록 아님)수업·과제장 · GET /teaching/lessons과제장 수업과 항목 상세수업·과제장 · GET /teaching/lessons/{lessonId}수업·과제장 내용과 숙제 정의 등록(학생별 출석·과제완료는 학생별 결과 변경으로 별도 처리)수업·과제장 · POST /teaching/lessons수업·과제장 전체 수정수업·과제장 · PUT /teaching/lessons/{lessonId}수업·과제장 삭제와 연결 출석 정리수업·과제장 · DELETE /teaching/lessons/{lessonId}수업 목록의 lessonId로 저장된 출석·검사 조회(반·시간표 번호 아님, 빈 명단은 roster.add 후 기록)수업·과제장 · GET /teaching/lessons/{lessonId}/students수강 등록에서 선택한 일반 학생을 출석부에 추가수업·과제장 · POST /teaching/lessons/{lessonId}/students수업 학생 출석·결석·검사결과 부분 수정(입퇴실·수강등록 아님). 학생 코멘트는 rows[].values.comment에 전달하고 생략 항목은 보존수업·과제장 · PATCH /teaching/lessons/{lessonId}/results명단 학생 삭제(연결된 원래 결석 복원)수업·과제장 · DELETE /teaching/lessons/{lessonId}/students/{studentId}수업의 저장된 출석부 삭제수업·과제장 · DELETE /teaching/lessons/{lessonId}/attendance보강완료 연결 후보(같은 학생·타반·수업일 ±10일)수업·과제장 · GET /teaching/lessons/{lessonId}/students/{studentId}/makeup-candidates원래 수업의 현재 보강 연결·복원 출결 조회(해제 전 필수 확인)수업·과제장 · GET /teaching/lessons/{lessonId}/students/{studentId}/makeup-link조회한 보강 연결만 해제하고 보존된 원래 출결 복원. 보강생 행·과제·코멘트는 보존하며 확인값이 달라지면 거절수업·과제장 · PATCH /teaching/lessons/{lessonId}/students/{studentId}/makeup-link목적지 보강 수업 lessonId로 원래 결석 후보 조회(응답 originalLessonId에서 선택)수업·과제장 · GET /teaching/lessons/{lessonId}/absence-candidates목적지 lessonId에 선택한 원래 결석 originalLessonId를 연결해 보강생(8) 추가·원반 보강완료(7) 처리수업·과제장 · POST /teaching/lessons/{lessonId}/makeups연결된 OMR 점수를 과제장에 동기화수업·과제장 · POST /teaching/lessons/{lessonId}/score-sync선택 과제장의 학기·기간 일괄 변경수업·과제장 · PUT /teaching/seasons기간별 재검사 일정 목록재검사 일정 · GET /teaching/todos재검사 일정 상세재검사 일정 · GET /teaching/todos/{todoId}재검사 메모·날짜·처리 결과 저장재검사 일정 · PUT /teaching/todos/{todoId}기간별 누적 과제·시험·출결 결과. valueItems가 같은 수업의 제목·슬롯·표시 안내·결과를 연결. 값만으로 만점·단위를 추측하지 않음과제장 누적 성적표 · GET /teaching/cumulative-results반·날짜별 학생 이름·출결 상태·검사 조회. teamId와 from/to로 직접 조회하며 lessonId 불필요. 출결 단순 조회에 우선 사용수업일별 출석부 · GET /attendance/daily기간 내 전체 또는 선택 반의 학생별 출결 합계·결석 학생 명단 조회. 무결·유결 합계로 결석 구분, 타반 보강생 제외수강생별 출결현황 · GET /attendance/students학생 입퇴실 체크 내역입퇴실 체크 · GET /attendance/checks현재 시각 입실·퇴실 기록(수업 출석 아님·발송 없음)입퇴실 체크 · POST /attendance/checks학생 입퇴실 기록 삭제입퇴실 체크 · DELETE /attendance/checks/{checkId}기간별 클리닉 리뷰 목록클리닉 리뷰 · GET /teaching/clinic-reviews클리닉 리뷰 상세클리닉 리뷰 · GET /teaching/clinic-reviews/{reviewId}클리닉 리뷰 등록클리닉 리뷰 · POST /teaching/clinic-reviews클리닉 리뷰 전체 수정클리닉 리뷰 · PUT /teaching/clinic-reviews/{reviewId}클리닉 리뷰 삭제클리닉 리뷰 · DELETE /teaching/clinic-reviews/{reviewId}Time-clock employee identities, excluding passwords/payroll. Never use as the teaching teacher roster or teacher IDs.직원 출퇴근 · GET /attendance/staff기간별 직원 출퇴근·근무일지직원 출퇴근 · GET /attendance/staff/journals직원 출퇴근·근무일지 상세직원 출퇴근 · GET /attendance/staff/journals/{journalId}직원 출근·퇴근·근무일지 등록직원 출퇴근 · POST /attendance/staff/journals직원 출퇴근·근무일지 수정직원 출퇴근 · PUT /attendance/staff/journals/{journalId}직원 출퇴근 기록 삭제직원 출퇴근 · DELETE /attendance/staff/journals/{journalId}직원별 근무 일수·시간 합계직원 출퇴근 · GET /attendance/staff/summary교재비 항목 목록교재 출고 · GET /books교재비 항목 상세교재 출고 · GET /books/{bookId}교재비 항목 등록교재 출고 · POST /books교재비 항목 수정교재 출고 · PUT /books/{bookId}사용 이력이 없는 교재비 항목 삭제교재 출고 · DELETE /books/{bookId}기존 출고 부교재 이름 목록교재 출고 · GET /books/{bookId}/items원본 교재 번호(books.list/get id)별 출고·반품·수납 현황교재 출고 · GET /books/{bookId}/issues원본 교재·출고 번호의 학생별 현재 지급·반품·제외·금액·수납·메모 조회교재 출고 · GET /books/{bookId}/issues/{issueId}원본 교재 번호·학생·시간표로 학생별 교재 출고 등록교재 출고 · POST /books/{bookId}/issues원본 출고 조회 후 전체 값 수정(반품 해제·원복은 returned=false, 제외 해제·원복은 excluded=false, 다른 현재 값 보존)교재 출고 · PUT /books/{bookId}/issues/{issueId}청구에 사용하지 않은 출고 기록 삭제교재 출고 · DELETE /books/{bookId}/issues/{issueId}학생 이름 클릭 통합정보: 기본정보·수강 전체·최근 상담·시험성적·클리닉 요약학생 통합 정보 · GET /students/{id}/detail학생 통합정보 기본정보 조회(이름·번호·연락처·학교·학년·메모, 비밀번호 제외)학생 통합 정보 · GET /students/{id}/detail/profile학생 통합정보의 수강·퇴원·전반·종강·전반취소 이력과 이전 수강반 조회학생 통합 정보 · GET /students/{id}/detail/enrollments지정 학생 1명의 수업일별 출결·보강 이력(0=무결·4=유결은 결석, 5=출석·6=인강·7=보강완료·8=보강생과 구별)학생 통합 정보 · GET /students/{id}/detail/attendance학생 과제·시험 검사결과와 수업 회차·출결·코멘트. valueItems가 같은 수업의 실제 항목 제목·안내·결과를 연결, 빈 값은 미완료로 추측하지 않음학생 통합 정보 · GET /students/{id}/detail/homework학생 시험별 점수·평균·만점·등수 이력(오답 미제공, 공개 성적표 링크 발급 없음)학생 통합 정보 · GET /students/{id}/detail/scores학생의 원문 상담 내역·예약 유형·담당자·진행 상태 조회학생 통합 정보 · GET /students/{id}/detail/notes선택 학생의 특정 상담 원문·담당자·예약 일시·변경 검증 version 조회학생 통합 정보 · GET /students/{id}/detail/notes/{noteId}학생 통합정보에서 상담 기록 등록(선택한 담당자·유형·명시한 예약일만 사용)학생 통합 정보 · POST /students/{id}/detail/notes상담 원문·담당자·유형·예약 수정(생략한 값 보존·학원/학생/현재 version 원자적 검증)학생 통합 정보 · PATCH /students/{id}/detail/notes/{noteId}선택 학생의 상담 기록 삭제(현재 version 확인·소프트 삭제)학생 통합 정보 · DELETE /students/{id}/detail/notes/{noteId}학생 통합정보 상담 편집에서 실제 선택 가능한 담당자·예약 유형 목록학생 통합 정보 · GET /students/detail/note-options학생별 생활기록 이력과 실제 사용 설정된 항목 이름·값·도표 설정 조회학생 통합 정보 · GET /students/{id}/detail/life학생의 클리닉 예약·완료·취소·불참과 리뷰·메모 이력 조회학생 통합 정보 · GET /students/{id}/detail/clinics학생 통합정보의 할인율·형제 할인 연결 학생 이름과 번호 조회학생 통합 정보 · GET /students/{id}/detail/discounts학생별 문자·알림톡 발송 내용·수신번호·요청번호 이력 조회(발송 실행 없음)학생 통합 정보 · GET /students/{id}/detail/messages학생별 로그인 시각·접속 주소·구분 이력 조회학생 통합 정보 · GET /students/{id}/detail/logins반별 최근 학기·다음 회차와 실제 시간표에서 계산한 다음 수업일 후보(저장·자동 지정 없음)수업·과제장 · GET /teaching/teams/{id}/registration-defaults선택 과제장 제목과 현재 학생 공개 상태 조회수업·과제장 · GET /teaching/lessons/{lessonId}/publication학생에게 과제장 공개·비공개 변경(직전 공개 상태 일치 확인·수업 내용 보존)수업·과제장 · PATCH /teaching/lessons/{lessonId}/publication반별 전체 수강 이력(종료 포함·재원 인원 아님). 현재 학생 명단·인원은 students.list의 teamId 사용. 학생·수강번호·퇴원/전반/종강 사유수강반 관리 · GET /teams/{id}/detail/students과제장 등록에서 실제 선택 가능한 담당 선생님 이름과 번호수업·과제장 · GET /teaching/options/teachers실제 저장된 과제장 학기·기간 선택 목록수업·과제장 · GET /teaching/options/seasons담당 선생님의 복사 원본 과제장 선택 목록(조회만 하며 새 과제장을 만들지 않음)수업·과제장 · GET /teaching/options/copy-sources공유 템플릿 불러오기에서 실제 선택 가능한 과제장 목록수업·과제장 · GET /teaching/options/templates과제장의 시험 항목에 연결 가능한 담당 선생님의 채점지 이름과 번호수업·과제장 · GET /teaching/options/exams선택 수강반의 실제 시간표 목록(요일에 맞는 시간표를 임의 지정하지 않음)수업·과제장 · GET /teaching/teams/{id}/schedules반별 과제장 분류·교과·저장 양식과 실제 적용 양식 조회(시간표 자동 선택 없음)수업·과제장 · GET /teaching/teams/{id}/course반별 과제장 성적표 저장값·실제 적용 양식·이름·version 조회(미지정 0 등은 당일형 80, 82는 누적형)과제장 성적표 양식 설정 · GET /teaching/teams/{id}/report-settings반별 과제장 성적표를 당일형 80/누적형 82로 변경(현재 version 확인·다른 반 설정 보존)과제장 성적표 양식 설정 · PATCH /teaching/teams/{id}/report-settings클리닉 실제 예약·입실·퇴실·불참·취소 학생 명단 조회(상태 동기화나 메시지 발송 없음)클리닉 리뷰 · GET /teaching/clinic-appointments클리닉 리뷰 등록에서 저장된 리뷰 문구 목록 조회클리닉 리뷰 · GET /teaching/clinic-review-templates클리닉 문자 작성에서 저장된 문구 목록 조회(발송 없음)클리닉 리뷰 · GET /teaching/clinic-message-templates공유 문자 예제 분류 목록(학원 저장 문구와 분리)문자·알림톡 문구 · GET /messages/template-examples/categories공유 문자 예제 제목·분류·원문 조회(제목순·삭제 제외)문자·알림톡 문구 · GET /messages/template-examples현재 학원이 저장한 문자 문구 목록(공유 예제·AI 프롬프트 제외)문자·알림톡 문구 · GET /messages/templates저장된 문자 문구 원문·현재 변경 검증 version 조회문자·알림톡 문구 · GET /messages/templates/{templateId}학원 문자 문구 신규 저장(발송·AI 호출 없음)문자·알림톡 문구 · POST /messages/templates현재 학원의 문자 문구 제목·분류·내용 수정(현재 version 검증·공유 예제 수정 불가)문자·알림톡 문구 · PUT /messages/templates/{templateId}현재 학원 문자 문구 삭제(현재 version 검증·소프트 삭제)문자·알림톡 문구 · DELETE /messages/templates/{templateId}통계 조회 가능한 수강반·시간표 key 목록수강생 통계 조회 · GET /students/statistics/teams월별·연간 신규·재원·퇴원 고유 인원(명시 선택한 수강반 기준 전환)수강생 통계 조회 · GET /students/statistics/summary기간별 퇴원 명단. basis=academy는 학원 최종 퇴원, enrollment는 반별 퇴원 이력(다른 반 계속 수강도 포함). 반별 명단은 enrollment 사용. 원본 학생·반명·퇴원일, 전반·종강·전반취소 제외수강생 통계 조회 · GET /students/statistics/withdrawals통계 학생별 상세(학생 이름·번호 포함, month=0은 연간 월별 집합 합집합)수강생 통계 조회 · GET /students/statistics/students