> 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-en/api-sdk/api/project.md).

# Project

## Get Project

> Retrieves project detailed information by project ID.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/projects/{id}":{"get":{"tags":["Project"],"summary":"Get Project","description":"Retrieves project detailed information by project ID.","operationId":"getProjectDetail","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseProjectDetailResponse"}}}}}}}}}
```

## Update Project

> Modifies the project name by project ID.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/projects/{id}":{"put":{"tags":["Project"],"summary":"Update Project","description":"Modifies the project name by project ID.","operationId":"updateProject","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRequest"}}},"required":true},"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## Change Trash Project Visibility to Visible

> Restores trash projects using a list of project IDs.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/projects/restore":{"post":{"tags":["Project"],"summary":"Change Trash Project Visibility to Visible","description":"Restores trash projects using a list of project IDs.","operationId":"restoreProjects","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreRequest"}}},"required":true},"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## Get Bookmarked Project List

> Retrieves the list of bookmarked projects.\
> \
> \### Use Cases\
> \- Check list of projects bookmarked by the user\
> \- Manage bookmarked projects by enterprise/individual\
> \- Search and filter bookmarked projects\
> \
> \### Pagination\
> \- Offset-based paging (starts from 0)\
> \- limit: page size (min 1, max 100)\
> \- Check existence of the next page using hasNext in the response\
> \
> \### Filter Conditions\
> \- bookmarkOwnerType: Bookmark owner type (Required)\
> \- projectDirectoryType: Project directory type (Required)\
> \- userId: Required for PERSONAL type\
> \- directoryId: Retrieve within a specific directory\
> \- targetType: User search type\
> \- keyword: Project name search\
> \- sortType: Sort criteria (default: ID\_DESC)\
> \- status: Project status (default: ACTIVE)

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/bookmark-projects":{"get":{"tags":["Project"],"summary":"Get Bookmarked Project List","description":"Retrieves the list of bookmarked projects.\n\n### Use Cases\n- Check list of projects bookmarked by the user\n- Manage bookmarked projects by enterprise/individual\n- Search and filter bookmarked projects\n\n### Pagination\n- Offset-based paging (starts from 0)\n- limit: page size (min 1, max 100)\n- Check existence of the next page using hasNext in the response\n\n### Filter Conditions\n- bookmarkOwnerType: Bookmark owner type (Required)\n- projectDirectoryType: Project directory type (Required)\n- userId: Required for PERSONAL type\n- directoryId: Retrieve within a specific directory\n- targetType: User search type\n- keyword: Project name search\n- sortType: Sort criteria (default: ID_DESC)\n- status: Project status (default: ACTIVE)","operationId":"getBookmarkProjects","parameters":[{"name":"userId","in":"query","description":"User ID (Required for PERSONAL type)","required":false,"schema":{"type":"string"}},{"name":"bookmarkOwnerType","in":"query","description":"Bookmark owner type","required":true,"schema":{"type":"string","description":"Bookmark owner type","enum":["PERSONAL","ENTERPRISE"]}},{"name":"projectDirectoryType","in":"query","description":"Project directory type","required":true,"schema":{"type":"string","description":"Project directory type","enum":["ENTERPRISE","PERSONAL"]}},{"name":"directoryId","in":"query","description":"Directory ID","required":false,"schema":{"type":"string"}},{"name":"targetType","in":"query","description":"User search type","required":false,"schema":{"type":"string","description":"User search target type","enum":["NAME","EMAIL"]}},{"name":"keyword","in":"query","description":"Search keyword","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Page number (starts from 0, offset paging)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Page size (min: 1, max: 100)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"sortType","in":"query","description":"Sort Type","required":false,"schema":{"type":"string","default":"ID_DESC","description":"Sort Type","enum":["ID_DESC","ID_ASC","NAME_ASC","NAME_DESC","UPDATED_ASC","UPDATED_DESC"]}},{"name":"status","in":"query","description":"Project Status","required":false,"schema":{"type":"string","default":"ACTIVE","description":"Active Status","enum":["ACTIVE","DELETE"]}}],"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseProjectResponse"}}}}}}}}}
```

## Apply Project Bookmark

> Adds or removes a bookmark on a project.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/bookmark-projects":{"post":{"tags":["Project"],"summary":"Apply Project Bookmark","description":"Adds or removes a bookmark on a project.","operationId":"applyBookmarkProject","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyRequest"}}},"required":true},"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## Get Shared Project List

> Retrieves the list of shared projects.\
> \
> \### Use Cases\
> \- Check list of projects shared by/with the user\
> \- Manage projects by sharing direction\
> \- Search shared projects\
> \
> \### Pagination\
> \- Offset-based paging (starts from 0)\
> \- limit: page size (min 1, max 100)\
> \- Check existence of the next page using hasNext in the response\
> \
> \### Filter Conditions\
> \- userId: User ID (Required)\
> \- shareDirection: Sharing direction (Required)\
> \- keyword: Project name search\
> \- sortType: Sort criteria (default: ID\_DESC)

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/share-projects":{"get":{"tags":["Project"],"summary":"Get Shared Project List","description":"Retrieves the list of shared projects.\n\n### Use Cases\n- Check list of projects shared by/with the user\n- Manage projects by sharing direction\n- Search shared projects\n\n### Pagination\n- Offset-based paging (starts from 0)\n- limit: page size (min 1, max 100)\n- Check existence of the next page using hasNext in the response\n\n### Filter Conditions\n- userId: User ID (Required)\n- shareDirection: Sharing direction (Required)\n- keyword: Project name search\n- sortType: Sort criteria (default: ID_DESC)","operationId":"getShareProjects","parameters":[{"name":"userId","in":"query","description":"User ID","required":true,"schema":{"type":"string"}},{"name":"shareDirection","in":"query","description":"Sharing direction","required":true,"schema":{"type":"string","description":"Sharing type","enum":["SHARED_BY_ME","SHARED_WITH_ME"]}},{"name":"keyword","in":"query","description":"Project name search keyword","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Page number (starts from 0, offset paging)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Page size (min: 1, max: 100)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"sortType","in":"query","description":"Sort Type","required":false,"schema":{"type":"string","default":"ID_DESC","description":"Sort Type","enum":["ID_DESC","ID_ASC","NAME_ASC","NAME_DESC","UPDATED_ASC","UPDATED_DESC"]}}],"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseProjectResponse"}}}}}}}}}
```

## Get Project List

> Retrieves the project list based on the project directory type.\
> \
> \### Use Cases\
> \- Retrieve project list by enterprise/individual directory\
> \- Filter projects within a specific directory\
> \- Search projects by user and keyword\
> \
> \### Pagination\
> \- Offset-based paging (starts from 0)\
> \- limit: page size (min 1, max 100)\
> \- Check existence of the next page using hasNext in the response\
> \
> \### Filter Conditions\
> \- projectDirectoryType: Project directory type (Required)\
> \- userId: Required for PERSONAL type\
> \- directoryId: Retrieve within a specific directory\
> \- targetType: User search type\
> \- keyword: Project name search\
> \- sortType: Sort criteria (default: ID\_DESC)\
> \- status: Project status (default: ACTIVE)

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/projects":{"get":{"tags":["Project"],"summary":"Get Project List","description":"Retrieves the project list based on the project directory type.\n\n### Use Cases\n- Retrieve project list by enterprise/individual directory\n- Filter projects within a specific directory\n- Search projects by user and keyword\n\n### Pagination\n- Offset-based paging (starts from 0)\n- limit: page size (min 1, max 100)\n- Check existence of the next page using hasNext in the response\n\n### Filter Conditions\n- projectDirectoryType: Project directory type (Required)\n- userId: Required for PERSONAL type\n- directoryId: Retrieve within a specific directory\n- targetType: User search type\n- keyword: Project name search\n- sortType: Sort criteria (default: ID_DESC)\n- status: Project status (default: ACTIVE)","operationId":"getProjects","parameters":[{"name":"projectDirectoryType","in":"query","description":"Project directory type","required":true,"schema":{"type":"string","description":"Project directory type","enum":["ENTERPRISE","PERSONAL"]}},{"name":"userId","in":"query","description":"User ID (Required for PERSONAL type)","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"Page number (starts from 0, offset paging)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Page size (min: 1, max: 100)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"directoryId","in":"query","description":"Directory ID","required":false,"schema":{"type":"string"}},{"name":"targetType","in":"query","description":"User search type","required":false,"schema":{"type":"string","description":"User search target type","enum":["NAME","EMAIL"]}},{"name":"keyword","in":"query","description":"Search keyword","required":false,"schema":{"type":"string"}},{"name":"sortType","in":"query","description":"Sort Type","required":false,"schema":{"type":"string","default":"ID_DESC","description":"Sort Type","enum":["ID_DESC","ID_ASC","NAME_ASC","NAME_DESC","UPDATED_ASC","UPDATED_DESC"]}},{"name":"status","in":"query","description":"Project Status","required":false,"schema":{"type":"string","default":"ACTIVE","description":"Active Status","enum":["ACTIVE","DELETE"]}}],"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseProjectResponse"}}}}}}}}}
```

## Get Project Estimate

> Retrieves the current estimate data of the project.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"Project"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/project/{id}/estimates":{"get":{"tags":["Project"],"summary":"Get Project Estimate","description":"Retrieves the current estimate data of the project.","operationId":"getProjectEstimate","parameters":[{"name":"id","in":"path","description":"Project ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseProjectEstimateResponse"}}}}}}}}}
```
