Skip to content

Project Folder API

1. Create Folder

http
POST `/api/{workspace_id}/projects/{project_id}/folders`

Request Body

ts
type FolderNameDemoFolder = {
  folder_name: string;
  parent_folder_id: string; //for creating a subfolder
};

Response

ts
type ProjectFolder = {
  success: boolean;
  message: string;
};

2. Get All Folders in Project

http
GET `/api/{workspace_id}/projects/{project_id}/folders`

Fetches all folders under a specific project.

Request Body

NO

Response

ts
type ProjectFolders = {
  success: boolean;
  message: string;
  data: {
    folder_id: string;
    folder_name: string;
    workspace_id: string;
    project_id: string;
    created_by: string;
    parent_folder_id: null;
    created_at: Date;
    rank: number;
  };
};

3. Get Folder by ID

http
GET `/api/{workspace_id}/projects/{project_id}/folders/{folder_id}`

Fetches a specific folder by its ID in the project.

Response

ts
type ProjectFolders = {
  success: boolean;
  message: string;
  data: {
    folder_id: string;
    folder_name: string;
    workspace_id: string;
    project_id: string;
    created_by: string;
    parent_folder_id: null;
    created_at: Date;
    rank: number;
  };
};

4. Update Folder Name

http
PUT `/api/{workspace_id}/projects/{project_id}/folders/{folder_id}`

Updates the name of a specific folder.

Request Body

ts
type ProjectFolderRename = {
  folder_name: string;
};

Response

ts
type ProjectFolder = {
  success: boolean;
  message: string;
};

5. Delete Folder

http
DELETE `/api/{workspace_id}/projects/{project_id}/folders/{folder_id}`

Deletes a folder in the project.

Response

ts
type ProjectFolder = {
  success: boolean;
  message: string;
};

6. Export Folder and Files

http
GET `/api/{workspace_id}/projects/{project_id}/folders/{folder_id}/export `

Exports the folder and all associated files.

Response

Returns a downloadable zip file stream or a file link depending on implementation.

7. Get project folders and files by path

http
POST '/api/{workspace_id}/projects/{project_id}/path'

Request Body

ts
type ProjectPath = {
  path: string[];
};

Response

ts
type Response = {
  success: boolean;
  message: string;
  folder_id: string;
  data: Data[];
  item_count: number;
};

type Data = {
  file_id: string;
  workspace_id: string;
  project_id: string;
  file_name: string;
  file_path: string;
  file_type: string;
  uploaded_by: string;
  uploaded_at: Date;
  folder_id: string;
  type: string;
};