> For the complete documentation index, see [llms.txt](https://docs.archisketch.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.archisketch.com/guide/dev-kr/api-sdk/api/undefined-3.md).

# 프로젝트

## 프로젝트 조회

> 프로젝트 ID로 프로젝트 상세 정보를 조회합니다.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ApiResponseProjectDetailResponse":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"$ref":"#/components/schemas/ProjectDetailResponse","description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"ProjectDetailResponse":{"type":"object","properties":{"id":{"type":"string","description":"프로젝트 ID"},"name":{"type":"string","description":"프로젝트 이름"},"enterpriseId":{"type":"string","description":"엔터프라이즈 ID"},"floorplans":{"type":"array","description":"도면 목록","items":{}},"images":{"type":"array","description":"프로젝트 이미지 목록","items":{"$ref":"#/components/schemas/ProjectImage"}},"mapFloorplanDetail":{"$ref":"#/components/schemas/MapFloorplanDetailResponse","description":"맵 도면 상세"},"ownerUser":{"$ref":"#/components/schemas/ProjectUser","description":"소유자 정보"},"projectAccessUsers":{"type":"array","description":"공유 사용자 목록","items":{"$ref":"#/components/schemas/AccessUserResponse"}},"createdAt":{"type":"string","format":"date-time","description":"생성일시"},"updatedAt":{"type":"string","format":"date-time","description":"수정일시"}},"required":["createdAt","floorplans","id","images","name","ownerUser","projectAccessUsers","updatedAt"]},"ProjectImage":{"type":"object","properties":{"type":{"type":"string","description":"이미지 유형 (DEFAULT: 프로젝트 기본 이미지, THUMBNAIL: 프로젝트 썸네일 이미지, RENDER: 프로젝트 랜더샷 이미지)","enum":["DEFAULT","THUMBNAIL","RENDER"]},"imageId":{"type":"string","description":"이미지 ID"},"url":{"type":"string","description":"이미지 URL"},"order":{"type":"integer","format":"int32","description":"순서"}},"required":["imageId","order","type","url"]},"MapFloorplanDetailResponse":{"type":"object","properties":{"id":{"type":"string","description":"ID"},"mapFloorplanId":{"type":"string","description":"맵 도면 ID"},"floorplanDetailId":{"type":"string","description":"도면 상세 ID"},"enterpriseId":{"type":"string","description":"엔터프라이즈 ID"},"userId":{"type":"string","description":"사용자 ID"},"access":{"type":"string","description":"접근 권한 타입"},"lat":{"type":"number","format":"double","description":"위도"},"lng":{"type":"number","format":"double","description":"경도"},"floorplanDetails":{"type":"array","description":"도면 상세 목록","items":{"$ref":"#/components/schemas/FloorplanDetailResponse"}},"address":{"$ref":"#/components/schemas/MapFloorplanAddress","description":"주소"},"createdAt":{"type":"string","format":"date-time","description":"생성일시"}},"required":["access","address","createdAt","enterpriseId","floorplanDetailId","floorplanDetails","id","lat","lng","mapFloorplanId","userId"]},"FloorplanDetailResponse":{"type":"object","properties":{"id":{"type":"string","description":"ID"},"mapFloorplanId":{"type":"string","description":"맵 도면 ID"},"preview":{"type":"string","description":"미리보기 이미지 URL"},"status":{"type":"string","description":"도면 상태","enum":["CREATED","WORKING","TESTING","COMPLETED","FAILED"]},"areaInfo":{"$ref":"#/components/schemas/MapFloorplanAreaInfo","description":"면적 정보"},"assign":{"$ref":"#/components/schemas/MapFloorplanAssign","description":"담당자 정보"},"oldMapId":{"type":"integer","format":"int32","description":"이전 맵 ID"},"createdAt":{"type":"string","format":"date-time","description":"생성일시"},"updatedAt":{"type":"string","format":"date-time","description":"수정일시"}},"required":["areaInfo","createdAt","id","mapFloorplanId","status","updatedAt"]},"MapFloorplanAreaInfo":{"type":"object","properties":{"areaType":{"type":"string","description":"면적 타입"},"area":{"type":"string","description":"면적"},"supplyArea":{"type":"string","description":"공급 면적"},"exclusiveArea":{"type":"string","description":"전용 면적"}},"required":["area","areaType","exclusiveArea","supplyArea"]},"MapFloorplanAssign":{"type":"object","properties":{"userId":{"type":"string","description":"담당자 사용자 ID"},"email":{"type":"string","description":"담당자 이메일"}}},"MapFloorplanAddress":{"type":"object","properties":{"id":{"type":"string","description":"주소 ID"},"parentId":{"type":"string","description":"상위 주소 ID"},"userId":{"type":"string","description":"사용자 ID"},"enterpriseId":{"type":"string","description":"엔터프라이즈 ID"},"numberAddress":{"type":"string","description":"지번 주소"},"roadAddress":{"type":"string","description":"도로명 주소"},"zipcode":{"type":"string","description":"우편번호"},"danjiCode":{"type":"string","description":"단지 코드"},"adminCode":{"type":"string","description":"행정 코드"},"roadCode":{"type":"string","description":"도로 코드"},"buildingCode":{"type":"string","description":"건물 코드"},"buildingName":{"type":"string","description":"건물명"}},"required":["id","parentId","userId"]},"ProjectUser":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"}},"required":["email","id","name"]},"AccessUserResponse":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"},"accessType":{"type":"string","description":"접근 권한 유형 (EDIT: 수정, VIEW: 보기)","enum":["EDIT","VIEW"]}},"required":["accessType","email","id","name"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/projects/{id}":{"get":{"tags":["프로젝트"],"summary":"프로젝트 조회","description":"프로젝트 ID로 프로젝트 상세 정보를 조회합니다.","operationId":"getProjectDetail","parameters":[{"name":"id","in":"path","description":"프로젝트 ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseProjectDetailResponse"}}}}}}}}}
```

## 프로젝트 수정

> 프로젝트 ID로 프로젝트 이름을 수정합니다.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"UpdateRequest":{"type":"object","properties":{"name":{"type":"string","description":"프로젝트 이름"}},"required":["name"]},"ApiResponseUnit":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/projects/{id}":{"put":{"tags":["프로젝트"],"summary":"프로젝트 수정","description":"프로젝트 ID로 프로젝트 이름을 수정합니다.","operationId":"updateProject","parameters":[{"name":"id","in":"path","description":"프로젝트 ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRequest"}}},"required":true},"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## 휴지통 프로젝트 노출 상태 보이기로 변경

> 프로젝트 ID 목록으로 휴지통 프로젝트를 복원합니다.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"RestoreRequest":{"type":"object","properties":{"ids":{"type":"array","description":"복구할 프로젝트 ID 목록","items":{"type":"string"}}},"required":["ids"]},"ApiResponseUnit":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/projects/restore":{"post":{"tags":["프로젝트"],"summary":"휴지통 프로젝트 노출 상태 보이기로 변경","description":"프로젝트 ID 목록으로 휴지통 프로젝트를 복원합니다.","operationId":"restoreProjects","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreRequest"}}},"required":true},"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## 북마크 프로젝트 목록 조회

> 북마크된 프로젝트 목록을 조회합니다.\
> \
> \### 사용처\
> \- 사용자가 북마크한 프로젝트 목록 확인\
> \- 기업/개인별 북마크 프로젝트 관리\
> \- 북마크 프로젝트 검색 및 필터링\
> \
> \### 페이지네이션\
> \- offset 기반 페이징 (0부터 시작)\
> \- limit: 페이지 크기 (최소 1, 최대 100)\
> \- 응답의 hasNext로 다음 페이지 존재 여부 확인\
> \
> \### 필터 조건\
> \- bookmarkOwnerType: 북마크 소유자 유형 (필수)\
> \- projectDirectoryType: 프로젝트 디렉토리 유형 (필수)\
> \- userId: PERSONAL 타입일 때 필수\
> \- directoryId: 특정 디렉토리 내 조회\
> \- targetType: 사용자 검색 유형\
> \- keyword: 프로젝트 이름 검색\
> \- sortType: 정렬 기준 (기본값: ID\_DESC)\
> \- status: 프로젝트 상태 (기본값: ACTIVE)

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ApiResponsePageResponseProjectResponse":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"$ref":"#/components/schemas/PageResponseProjectResponse","description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"PageResponseProjectResponse":{"type":"object","properties":{"content":{"type":"array","description":"콘텐츠 목록","items":{"$ref":"#/components/schemas/ProjectResponse"}},"hasNext":{"type":"boolean","description":"다음 페이지 존재 여부"},"totalCount":{"type":"integer","format":"int64","description":"전체 개수"}},"required":["content","hasNext","totalCount"]},"ProjectResponse":{"type":"object","properties":{"id":{"type":"string","description":"프로젝트 ID"},"name":{"type":"string","description":"프로젝트 이름"},"images":{"type":"array","description":"프로젝트 이미지 목록","items":{"$ref":"#/components/schemas/ProjectImage"}},"bookmarked":{"type":"boolean","description":"북마크 여부"},"ownerUser":{"$ref":"#/components/schemas/ProjectUser","description":"소유자 정보"},"projectAccessUsers":{"type":"array","description":"공유 사용자 목록","items":{"$ref":"#/components/schemas/AccessUserResponse"}},"createdAt":{"type":"string","format":"date-time","description":"생성일시"},"updatedAt":{"type":"string","format":"date-time","description":"수정일시"}},"required":["bookmarked","createdAt","id","images","name","ownerUser","projectAccessUsers","updatedAt"]},"ProjectImage":{"type":"object","properties":{"type":{"type":"string","description":"이미지 유형 (DEFAULT: 프로젝트 기본 이미지, THUMBNAIL: 프로젝트 썸네일 이미지, RENDER: 프로젝트 랜더샷 이미지)","enum":["DEFAULT","THUMBNAIL","RENDER"]},"imageId":{"type":"string","description":"이미지 ID"},"url":{"type":"string","description":"이미지 URL"},"order":{"type":"integer","format":"int32","description":"순서"}},"required":["imageId","order","type","url"]},"ProjectUser":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"}},"required":["email","id","name"]},"AccessUserResponse":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"},"accessType":{"type":"string","description":"접근 권한 유형 (EDIT: 수정, VIEW: 보기)","enum":["EDIT","VIEW"]}},"required":["accessType","email","id","name"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/bookmark-projects":{"get":{"tags":["프로젝트"],"summary":"북마크 프로젝트 목록 조회","description":"북마크된 프로젝트 목록을 조회합니다.\n\n### 사용처\n- 사용자가 북마크한 프로젝트 목록 확인\n- 기업/개인별 북마크 프로젝트 관리\n- 북마크 프로젝트 검색 및 필터링\n\n### 페이지네이션\n- offset 기반 페이징 (0부터 시작)\n- limit: 페이지 크기 (최소 1, 최대 100)\n- 응답의 hasNext로 다음 페이지 존재 여부 확인\n\n### 필터 조건\n- bookmarkOwnerType: 북마크 소유자 유형 (필수)\n- projectDirectoryType: 프로젝트 디렉토리 유형 (필수)\n- userId: PERSONAL 타입일 때 필수\n- directoryId: 특정 디렉토리 내 조회\n- targetType: 사용자 검색 유형\n- keyword: 프로젝트 이름 검색\n- sortType: 정렬 기준 (기본값: ID_DESC)\n- status: 프로젝트 상태 (기본값: ACTIVE)","operationId":"getBookmarkProjects","parameters":[{"name":"userId","in":"query","description":"사용자 ID (PERSONAL 타입 필수)","required":false,"schema":{"type":"string"}},{"name":"bookmarkOwnerType","in":"query","description":"북마크 소유자 유형","required":true,"schema":{"type":"string","description":"북마크 소유자 유형","enum":["PERSONAL","ENTERPRISE"]}},{"name":"projectDirectoryType","in":"query","description":"프로젝트 디렉토리 유형","required":true,"schema":{"type":"string","description":"프로젝트 디렉토리 타입","enum":["ENTERPRISE","PERSONAL"]}},{"name":"directoryId","in":"query","description":"디렉토리 ID","required":false,"schema":{"type":"string"}},{"name":"targetType","in":"query","description":"사용자 검색 유형","required":false,"schema":{"type":"string","description":"사용자 검색 대상 타입","enum":["NAME","EMAIL"]}},{"name":"keyword","in":"query","description":"검색어","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"페이지 번호 (0부터 시작, offset 페이징)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"페이지 크기 (최소: 1, 최대: 100)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"sortType","in":"query","description":"정렬 유형","required":false,"schema":{"type":"string","default":"ID_DESC","description":"정렬 타입","enum":["ID_DESC","ID_ASC","NAME_ASC","NAME_DESC","UPDATED_ASC","UPDATED_DESC"]}},{"name":"status","in":"query","description":"프로젝트 상태","required":false,"schema":{"type":"string","default":"ACTIVE","description":"활성 상태","enum":["ACTIVE","DELETE"]}}],"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseProjectResponse"}}}}}}}}}
```

## 프로젝트 북마크 적용

> 프로젝트에 북마크를 추가하거나 제거합니다.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ApplyRequest":{"type":"object","properties":{"projectId":{"type":"string","description":"프로젝트 ID"},"ownerType":{"type":"string","description":"북마크 소유자 유형","enum":["PERSONAL","ENTERPRISE"]},"type":{"type":"string","description":"북마크 유형 (BOOKMARKED: 북마크, UNBOOKMARKED: 북마크 제거)","enum":["BOOKMARKED","UNBOOKMARKED"]},"userId":{"type":"string","description":"사용자 ID (PERSONAL 타입 시 필수)"}},"required":["ownerType","projectId","type"]},"ApiResponseUnit":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/bookmark-projects":{"post":{"tags":["프로젝트"],"summary":"프로젝트 북마크 적용","description":"프로젝트에 북마크를 추가하거나 제거합니다.","operationId":"applyBookmarkProject","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyRequest"}}},"required":true},"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## 공유 프로젝트 목록 조회

> 공유된 프로젝트 목록을 조회합니다.\
> \
> \### 사용처\
> \- 사용자가 공유한/공유받은 프로젝트 목록 확인\
> \- 공유 방향별 프로젝트 관리\
> \- 공유 프로젝트 검색\
> \
> \### 페이지네이션\
> \- offset 기반 페이징 (0부터 시작)\
> \- limit: 페이지 크기 (최소 1, 최대 100)\
> \- 응답의 hasNext로 다음 페이지 존재 여부 확인\
> \
> \### 필터 조건\
> \- userId: 사용자 ID (필수)\
> \- shareDirection: 공유 방향 (필수)\
> \- keyword: 프로젝트 이름 검색\
> \- sortType: 정렬 기준 (기본값: ID\_DESC)

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ApiResponsePageResponseProjectResponse":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"$ref":"#/components/schemas/PageResponseProjectResponse","description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"PageResponseProjectResponse":{"type":"object","properties":{"content":{"type":"array","description":"콘텐츠 목록","items":{"$ref":"#/components/schemas/ProjectResponse"}},"hasNext":{"type":"boolean","description":"다음 페이지 존재 여부"},"totalCount":{"type":"integer","format":"int64","description":"전체 개수"}},"required":["content","hasNext","totalCount"]},"ProjectResponse":{"type":"object","properties":{"id":{"type":"string","description":"프로젝트 ID"},"name":{"type":"string","description":"프로젝트 이름"},"images":{"type":"array","description":"프로젝트 이미지 목록","items":{"$ref":"#/components/schemas/ProjectImage"}},"bookmarked":{"type":"boolean","description":"북마크 여부"},"ownerUser":{"$ref":"#/components/schemas/ProjectUser","description":"소유자 정보"},"projectAccessUsers":{"type":"array","description":"공유 사용자 목록","items":{"$ref":"#/components/schemas/AccessUserResponse"}},"createdAt":{"type":"string","format":"date-time","description":"생성일시"},"updatedAt":{"type":"string","format":"date-time","description":"수정일시"}},"required":["bookmarked","createdAt","id","images","name","ownerUser","projectAccessUsers","updatedAt"]},"ProjectImage":{"type":"object","properties":{"type":{"type":"string","description":"이미지 유형 (DEFAULT: 프로젝트 기본 이미지, THUMBNAIL: 프로젝트 썸네일 이미지, RENDER: 프로젝트 랜더샷 이미지)","enum":["DEFAULT","THUMBNAIL","RENDER"]},"imageId":{"type":"string","description":"이미지 ID"},"url":{"type":"string","description":"이미지 URL"},"order":{"type":"integer","format":"int32","description":"순서"}},"required":["imageId","order","type","url"]},"ProjectUser":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"}},"required":["email","id","name"]},"AccessUserResponse":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"},"accessType":{"type":"string","description":"접근 권한 유형 (EDIT: 수정, VIEW: 보기)","enum":["EDIT","VIEW"]}},"required":["accessType","email","id","name"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/share-projects":{"get":{"tags":["프로젝트"],"summary":"공유 프로젝트 목록 조회","description":"공유된 프로젝트 목록을 조회합니다.\n\n### 사용처\n- 사용자가 공유한/공유받은 프로젝트 목록 확인\n- 공유 방향별 프로젝트 관리\n- 공유 프로젝트 검색\n\n### 페이지네이션\n- offset 기반 페이징 (0부터 시작)\n- limit: 페이지 크기 (최소 1, 최대 100)\n- 응답의 hasNext로 다음 페이지 존재 여부 확인\n\n### 필터 조건\n- userId: 사용자 ID (필수)\n- shareDirection: 공유 방향 (필수)\n- keyword: 프로젝트 이름 검색\n- sortType: 정렬 기준 (기본값: ID_DESC)","operationId":"getShareProjects","parameters":[{"name":"userId","in":"query","description":"사용자 ID","required":true,"schema":{"type":"string"}},{"name":"shareDirection","in":"query","description":"공유 방향","required":true,"schema":{"type":"string","description":"공유 타입","enum":["SHARED_BY_ME","SHARED_WITH_ME"]}},{"name":"keyword","in":"query","description":"프로젝트 이름 검색어","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"페이지 번호 (0부터 시작, offset 페이징)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"페이지 크기 (최소: 1, 최대: 100)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"sortType","in":"query","description":"정렬 유형","required":false,"schema":{"type":"string","default":"ID_DESC","description":"정렬 타입","enum":["ID_DESC","ID_ASC","NAME_ASC","NAME_DESC","UPDATED_ASC","UPDATED_DESC"]}}],"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseProjectResponse"}}}}}}}}}
```

## 프로젝트 목록 조회

> 프로젝트 디렉토리 유형에 따른 프로젝트 목록을 조회합니다.\
> \
> \### 사용처\
> \- 기업/개인 디렉토리별 프로젝트 목록 조회\
> \- 특정 디렉토리 내 프로젝트 필터링\
> \- 사용자별, 키워드별 프로젝트 검색\
> \
> \### 페이지네이션\
> \- offset 기반 페이징 (0부터 시작)\
> \- limit: 페이지 크기 (최소 1, 최대 100)\
> \- 응답의 hasNext로 다음 페이지 존재 여부 확인\
> \
> \### 필터 조건\
> \- projectDirectoryType: 프로젝트 디렉토리 유형 (필수)\
> \- userId: PERSONAL 타입일 때 필수\
> \- directoryId: 특정 디렉토리 내 조회\
> \- targetType: 사용자 검색 유형\
> \- keyword: 프로젝트 이름 검색\
> \- sortType: 정렬 기준 (기본값: ID\_DESC)\
> \- status: 프로젝트 상태 (기본값: ACTIVE)

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ApiResponsePageResponseProjectResponse":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"$ref":"#/components/schemas/PageResponseProjectResponse","description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"PageResponseProjectResponse":{"type":"object","properties":{"content":{"type":"array","description":"콘텐츠 목록","items":{"$ref":"#/components/schemas/ProjectResponse"}},"hasNext":{"type":"boolean","description":"다음 페이지 존재 여부"},"totalCount":{"type":"integer","format":"int64","description":"전체 개수"}},"required":["content","hasNext","totalCount"]},"ProjectResponse":{"type":"object","properties":{"id":{"type":"string","description":"프로젝트 ID"},"name":{"type":"string","description":"프로젝트 이름"},"images":{"type":"array","description":"프로젝트 이미지 목록","items":{"$ref":"#/components/schemas/ProjectImage"}},"bookmarked":{"type":"boolean","description":"북마크 여부"},"ownerUser":{"$ref":"#/components/schemas/ProjectUser","description":"소유자 정보"},"projectAccessUsers":{"type":"array","description":"공유 사용자 목록","items":{"$ref":"#/components/schemas/AccessUserResponse"}},"createdAt":{"type":"string","format":"date-time","description":"생성일시"},"updatedAt":{"type":"string","format":"date-time","description":"수정일시"}},"required":["bookmarked","createdAt","id","images","name","ownerUser","projectAccessUsers","updatedAt"]},"ProjectImage":{"type":"object","properties":{"type":{"type":"string","description":"이미지 유형 (DEFAULT: 프로젝트 기본 이미지, THUMBNAIL: 프로젝트 썸네일 이미지, RENDER: 프로젝트 랜더샷 이미지)","enum":["DEFAULT","THUMBNAIL","RENDER"]},"imageId":{"type":"string","description":"이미지 ID"},"url":{"type":"string","description":"이미지 URL"},"order":{"type":"integer","format":"int32","description":"순서"}},"required":["imageId","order","type","url"]},"ProjectUser":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"}},"required":["email","id","name"]},"AccessUserResponse":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"name":{"type":"string","description":"이름"},"email":{"type":"string","description":"이메일"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"},"accessType":{"type":"string","description":"접근 권한 유형 (EDIT: 수정, VIEW: 보기)","enum":["EDIT","VIEW"]}},"required":["accessType","email","id","name"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/projects":{"get":{"tags":["프로젝트"],"summary":"프로젝트 목록 조회","description":"프로젝트 디렉토리 유형에 따른 프로젝트 목록을 조회합니다.\n\n### 사용처\n- 기업/개인 디렉토리별 프로젝트 목록 조회\n- 특정 디렉토리 내 프로젝트 필터링\n- 사용자별, 키워드별 프로젝트 검색\n\n### 페이지네이션\n- offset 기반 페이징 (0부터 시작)\n- limit: 페이지 크기 (최소 1, 최대 100)\n- 응답의 hasNext로 다음 페이지 존재 여부 확인\n\n### 필터 조건\n- projectDirectoryType: 프로젝트 디렉토리 유형 (필수)\n- userId: PERSONAL 타입일 때 필수\n- directoryId: 특정 디렉토리 내 조회\n- targetType: 사용자 검색 유형\n- keyword: 프로젝트 이름 검색\n- sortType: 정렬 기준 (기본값: ID_DESC)\n- status: 프로젝트 상태 (기본값: ACTIVE)","operationId":"getProjects","parameters":[{"name":"projectDirectoryType","in":"query","description":"프로젝트 디렉토리 유형","required":true,"schema":{"type":"string","description":"프로젝트 디렉토리 타입","enum":["ENTERPRISE","PERSONAL"]}},{"name":"userId","in":"query","description":"사용자 ID (PERSONAL 타입 필수)","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"페이지 번호 (0부터 시작, offset 페이징)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"페이지 크기 (최소: 1, 최대: 100)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"directoryId","in":"query","description":"디렉토리 ID","required":false,"schema":{"type":"string"}},{"name":"targetType","in":"query","description":"사용자 검색 유형","required":false,"schema":{"type":"string","description":"사용자 검색 대상 타입","enum":["NAME","EMAIL"]}},{"name":"keyword","in":"query","description":"검색어","required":false,"schema":{"type":"string"}},{"name":"sortType","in":"query","description":"정렬 유형","required":false,"schema":{"type":"string","default":"ID_DESC","description":"정렬 타입","enum":["ID_DESC","ID_ASC","NAME_ASC","NAME_DESC","UPDATED_ASC","UPDATED_DESC"]}},{"name":"status","in":"query","description":"프로젝트 상태","required":false,"schema":{"type":"string","default":"ACTIVE","description":"활성 상태","enum":["ACTIVE","DELETE"]}}],"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseProjectResponse"}}}}}}}}}
```

## 프로젝트 견적 조회

> 프로젝트의 현재 견적 데이터를 조회합니다.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"프로젝트"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"components":{"securitySchemes":{"open-api-key":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ApiResponseProjectEstimateResponse":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"$ref":"#/components/schemas/ProjectEstimateResponse","description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"ProjectEstimateResponse":{"type":"object","properties":{"projectId":{"type":"string","description":"프로젝트 ID"},"projectName":{"type":"string","description":"프로젝트 이름"},"userId":{"type":"string","description":"사용자 ID"},"userName":{"type":"string","description":"사용자 이름"},"userEmail":{"type":"string","description":"사용자 이메일"},"furnitureItems":{"type":"array","description":"가구 아이템 목록","items":{"$ref":"#/components/schemas/FurnitureItem"}},"finishItems":{"type":"array","description":"마감재 아이템 목록","items":{"$ref":"#/components/schemas/FinishItem"}},"createdAt":{"type":"string","format":"date-time","description":"생성일시"}},"required":["createdAt","finishItems","furnitureItems","projectId","projectName","userEmail","userId","userName"]},"FurnitureItem":{"type":"object","properties":{"floorId":{"type":"string","description":"층 ID"},"floorName":{"type":"string","description":"층 이름"},"roomId":{"type":"string","description":"룸 ID"},"roomType":{"type":"string","description":"룸 유형"},"componentId":{"type":"string","description":"컴포넌트 ID"},"code":{"type":"string","description":"제품 코드"},"previewImage":{"type":"string","description":"미리보기 이미지 URL"},"name":{"type":"string","description":"제품명"},"colorName":{"type":"string","description":"색상명"},"colorCode":{"type":"string","description":"색상 코드"},"brand":{"type":"string","description":"브랜드"},"dimensionInch":{"$ref":"#/components/schemas/Dimension","description":"인치 단위 치수"},"dimensionMm":{"$ref":"#/components/schemas/Dimension","description":"밀리미터 단위 치수"},"quantity":{"type":"integer","format":"int32","description":"수량"},"retailPrice":{"$ref":"#/components/schemas/PriceInfo","description":"소비자가"},"factoryPrice":{"$ref":"#/components/schemas/PriceInfo","description":"공장가"},"totalPrice":{"$ref":"#/components/schemas/PriceInfo","description":"합계 금액"}},"required":["componentId","floorId","floorName","name","quantity","retailPrice","totalPrice"]},"Dimension":{"type":"object","properties":{"width":{"type":"number","format":"double","description":"너비"},"height":{"type":"number","format":"double","description":"높이"},"depth":{"type":"number","format":"double","description":"깊이"}},"required":["height","width"]},"PriceInfo":{"type":"object","properties":{"value":{"type":"number","format":"double","description":"금액"},"currency":{"type":"string","description":"통화 코드","enum":["KRW","USD","EUR","JPY","GBP","CNY","VND","TWD"]}},"required":["currency","value"]},"FinishItem":{"type":"object","properties":{"floorId":{"type":"string","description":"층 ID"},"floorName":{"type":"string","description":"층 이름"},"roomId":{"type":"string","description":"룸 ID"},"roomType":{"type":"string","description":"룸 유형"},"productId":{"type":"string","description":"제품 ID"},"previewImage":{"type":"string","description":"미리보기 이미지 URL"},"name":{"type":"string","description":"제품명"},"colorName":{"type":"string","description":"색상명"},"colorCode":{"type":"string","description":"색상 코드"},"dimensionInch":{"$ref":"#/components/schemas/Dimension","description":"인치 단위 치수"},"dimensionMm":{"$ref":"#/components/schemas/Dimension","description":"밀리미터 단위 치수"},"quantity":{"type":"integer","format":"int32","description":"수량 (박스)"},"tileQuantity":{"type":"integer","format":"int32","description":"타일 수량"},"tileQuantityMin":{"type":"integer","format":"int32","description":"타일 최소 수량"},"tileQuantityMax":{"type":"integer","format":"int32","description":"타일 최대 수량"},"targetType":{"type":"string","description":"시공 대상 유형"},"targetArea":{"type":"number","format":"double","description":"시공 대상 면적 (㎡)"},"retailPrice":{"$ref":"#/components/schemas/PriceInfo","description":"소비자가"},"totalPrice":{"$ref":"#/components/schemas/PriceInfo","description":"합계 금액"}},"required":["floorId","floorName","name","productId","quantity","retailPrice","targetArea","targetType","tileQuantity","tileQuantityMax","tileQuantityMin","totalPrice"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}},"paths":{"/api/v1/project/{id}/estimates":{"get":{"tags":["프로젝트"],"summary":"프로젝트 견적 조회","description":"프로젝트의 현재 견적 데이터를 조회합니다.","operationId":"getProjectEstimate","parameters":[{"name":"id","in":"path","description":"프로젝트 ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseProjectEstimateResponse"}}}}}}}}}
```
