edutap.ai developers

API 레퍼런스

사용자 데이터 등록 및 관리 REST API

사용자 정보를 등록하고 관리하는 REST API입니다.

공통 사항

Base URL

https://tapapi.coxwave.link

인증

모든 API 요청에는 TAP-API-KEY 헤더가 필요합니다.

Request Headers

ParameterTypeRequiredDescription
TAP-API-KEYStringO발급받은 API 키

사용자 관리

개별 또는 대량으로 사용자 정보를 등록하고 관리합니다.
사용자 정보는 맞춤형 학습 경험 제공에 활용됩니다.


수강생 등록

POST/api/v1/client-user#
단일 수강생을 등록합니다.

Request

Request Body

ParameterTypeRequiredDescription
user_idStringO수강생 고유 식별자
ageNumber-나이, (0 < age < 100)
genderString-성별 (남: M, 여: F)
job_categoryString-직무. job_category enum 참조
years_of_experienceNumber-경력 연수, (0 < age < 100)
school_yearNumber-학년, (0 < school_year < 15)
departmentString-학과/부서. department enum 참조
extra_propertiesObject-추가 속성 (자유 형식)

Request Example

curl -X POST "https://tapapi.coxwave.link/api/v1/client-user" \
  -H "Content-Type: application/json" \
  -H "TAP-API-KEY: {YOUR_API_KEY}" \
  -d '{
    "user_id": "user-001",
    "age": 25,
    "gender": "M",
    "job_category": "ITSW",
    "years_of_experience": 3,
    "department": "ENGINEERING"
  }'

Response

ParameterTypeRequiredDescription
resultBooleanO성공 여부

Response Example

{
  "result": true
}

수강생 등록 삭제

PATCH/api/v1/client-user#
단일 수강생 등록을 삭제합니다. (Soft Delete)

수강생 등록 삭제는 소프트 삭제(Soft Delete)로 처리됩니다. 데이터는 DB에 유지되며 is_deleted 플래그가 설정됩니다.

Request

Request Body

ParameterTypeRequiredDescription
user_idStringO삭제할 수강생 ID

Request Example

curl -X PATCH "https://tapapi.coxwave.link/api/v1/client-user" \
  -H "Content-Type: application/json" \
  -H "TAP-API-KEY: {YOUR_API_KEY}" \
  -d '{
    "user_id": "user-001"
  }'

Response

ParameterTypeRequiredDescription
resultBooleanO성공 여부

Response Example

{
  "result": true
}

대량 수강생 등록 (CSV)

POST/api/v1/client-user/bulk/csv#
CSV 파일로 다수의 수강생 정보를 일괄 등록합니다.

Request

Request Body (multipart/form-data)

ParameterTypeRequiredDescription
fileFileOCSV 파일 (UTF-8 인코딩, BOM 지원)

CSV 형식

ColumnRequiredDescription
user_idO수강생 고유 식별자
age-나이 (숫자)
gender-성별
job_category-직군 코드
years_of_experience-경력 연수 (숫자)
school_year-학년 (숫자)
department-학과/부서 코드
extra_properties-추가 속성 (JSON 문자열)

CSV Example

user_id,age,gender,job_category,years_of_experience,school_year,department,extra_properties
user001,25,M,ITSW,3,,ENGINEERING,
user002,30,F,FINANCE,5,,ECONOMIC,"{""team"":""backend""}"
user003,22,M,,,2,NATURAL_SCIENCE,

Request Example

curl -X POST "https://tapapi.coxwave.link/api/v1/client-user/bulk/csv" \
  -H "TAP-API-KEY: {YOUR_API_KEY}" \
  -F "file=@users.csv"

Response

ParameterTypeRequiredDescription
total_rowsNumberO처리된 전체 행 수
inserted_countNumberO신규 등록된 사용자 수
skipped_countNumberO중복으로 건너뛴 사용자 수
failed_countNumberO검증 실패로 등록되지 않은 수

Response Example

{
  "total_rows": 100,
  "inserted_count": 95,
  "skipped_count": 3,
  "failed_count": 2
}

대량 수강생 등록 (JSON)

PATCH/api/v1/client-user/bulk/json#
JSON 배열로 다수의 수강생 정보를 일괄 등록합니다.

Request

Request Body

ParameterTypeRequiredDescription
user_itemsArray of objectsO수강생 정보 배열. user_items item 참조
user_items item
ParameterTypeRequiredDescription
external_user_idStringO수강생 고유 식별자
ageNumber-나이
genderString-성별
job_categoryString-직군 코드
years_of_experienceNumber-경력 연수
school_yearNumber-학년
departmentString-학과/부서 코드
extra_propertiesObject-추가 속성

Request Example

curl -X PATCH "https://tapapi.coxwave.link/api/v1/client-user/bulk/json" \
  -H "Content-Type: application/json" \
  -H "TAP-API-KEY: {YOUR_API_KEY}" \
  -d '{
    "user_items": [
      {
        "external_user_id": "user001",
        "age": 25,
        "gender": "M",
        "job_category": "ITSW",
        "years_of_experience": 3,
        "department": "ENGINEERING"
      },
      {
        "external_user_id": "user002",
        "age": 30,
        "gender": "F",
        "job_category": "FINANCE",
        "years_of_experience": 5,
        "department": "ECONOMIC"
      }
    ]
  }'

Response

ParameterTypeRequiredDescription
total_rowsNumberO처리된 전체 수강생 수
inserted_countNumberO신규 등록된 수강생 수
skipped_countNumberO중복으로 건너뛴 수강생 수
failed_countNumberO등록 실패 수 (JSON의 경우 항상 0)

Response Example

{
  "total_rows": 50,
  "inserted_count": 48,
  "skipped_count": 2,
  "failed_count": 0
}

대량 수강생 등록 삭제

PATCH/api/v1/client-user/bulk#
다수의 수강생 정보를 일괄 삭제합니다. (Soft Delete)

Request

Request Body

ParameterTypeRequiredDescription
user_idsStringO삭제할 수강생 ID 목록 (쉼표로 구분)

Request Example

curl -X PATCH "https://tapapi.coxwave.link/api/v1/client-user/bulk" \
  -H "Content-Type: application/json" \
  -H "TAP-API-KEY: {YOUR_API_KEY}" \
  -d '{
    "user_ids": "user001,user002,user003"
  }'

Response

ParameterTypeRequiredDescription
total_countNumberO요청된 전체 수강생 수
deleted_countNumberO삭제된 수강생 수
not_found_countNumberO존재하지 않거나 이미 삭제된 수강생 수

Response Example

{
  "total_count": 3,
  "deleted_count": 2,
  "not_found_count": 1
}

데이터 타입

job_title (직무)

CodeDescription
ITDEVIT 개발
AIDATAAI/데이터
PLANNING기획/비지니스
MARKETING마케팅/홍보
DESIGN디자인
MEDIA미디어/컨텐츠
SALES영업/고객관리
FINANCE재무/회계
LOGISTICS유통/물류
HR인사/경영지원
ETC기타(공공부문, 전문직 등)

department (학과/부서)

CodeDescription
SOCIAL인문/사회과학
ECONOMIC경제/경영
NATURAL_SCIENCE자연과학
ENGINEERING공학계열
MEDICAL의학계열
ARTS예체능계열

에러

에러 응답 형식

모든 에러는 다음 형식으로 반환됩니다:

{
  "error_code": "NotExistClientUser",
  "message": "Not exist client user",
  "status_code": 400
}

에러 코드

HTTPError CodeDescriptionSolution
400NotExistClientUser수강생 정보를 찾을 수 없음user_id 확인
400AlreadyExistClientUser이미 존재하는 수강생중복 user_id 확인
400InvalidCSVFormat잘못된 CSV 형식CSV 형식 및 인코딩 확인
401-인증 실패API 키 확인
422-요청 데이터 검사 실패요청 데이터 확인
500-서버 내부 에러담당자 문의

다음 단계