• Register

Project Folder API

The Project Folder API allows you to search, create, modify, and delete Project folders. These APIs are only available to customers who have the project folder functionality enabled on their plan.

Common HTTP Headers

Header Description Value
Content-Type Specifies the format of the request body application/json
Authorization Requires the OAuth token you obtained through the OAuth flow Bearer {OAuth token}
Error Description
200 Successful operation
403 User is not authorized
404 Item not found

Get All Projects

This endpoint is used to list all project folders in the domain.

GET/pubapi/v2/project-folders

Mark Folder as Project

This endpoint is used to mark an existing folder as a project.

POST/pubapi/v1/project-folders

Request Parameters

Parameter Description Required Possible Values
rootFolderId FolderId of the root project folder Yes string
name The name of the project Yes string
description Folder description No string
status Status of the project Yes pending, in-progress, completed, on-hold, or canceled
startDate The start date of the project. No string
completionDate The completion date for the project. No string

Sample Request Body

{
  "rootFolderId": "5bd7337c-b303-46a0-938d-0365352a5c74",
  "name": "Egnyte's new project, Mountain View, CA",
  "description": "Project description goes here",
  "status": "pending",
  "startDate": "2022-05-01T12:37:56.000+0000",
  "completionDate": "2022-11-05T12:37:56.000+0000"
} 

Create From Template

This endpoint is used to create a new project from a project folder template. This endpoint is only available to customers who have the project folder templates feature available on their plan.

POST/pubapi/v2/project-folders

Request Parameters

Parameter Description Required Possible Values
parentFolderId Folder ID of the parent folder where the project folder will be created Yes string
templateFolderId Folder ID of the project folder template Yes string
folderName Name of the new folder that will be created Yes string
name The name of the project Yes string
description Folder description No string
projectId ID of the project Yes, if used in dynamic group name for the template string
customerName The customer associated with the project No string
location.streetAddress1 First line of the street address No string
location.streetAddress2 Second line of the street address No string
location.city City No string
location.state State or Province No string
location.postalCode Zip code or postal code No string
location.country Country No 3 character country code from the ISO 3166 GENC profile, for example: USA, GBR, POL
status Status of the project Yes pending, in-progress, or on-hold
startDate The start date of the project. No string
completionDate The completion date for the project. No string

Sample Request Body

{
    "parentFolderId": "7c30e681-bf0d-462e-b6cf-7471844962df",      
    "templateFolderId": "c881b13e-3fac-4a88-88ea-7221ef2855d8",
    "folderName": "ABC123 - 123 Main St",
    "name": "Acme Widgets HQ",                
    "description": "New HQ for Acme Widgets",
    "projectId": "ABC123",
    "customerName": "Acme Widgets",
    "status": "pending",              
    "startDate": "2022-11-20",
    "completionDate": null,
    "location": {
        "streetAddress1":  "123 Main St",
        "streetAddress2": null,
        "city":  "Anytown",
        "state": "CA",
        "postalCode": "99999",
        "country":  "USA"
    }
} 

Sample Response Body

If your template creates new groups, those groups will be included in the response body.

{
    "groupsCreated": [
      {
        "id" : "8b149a9e-cafc-4c86-bc0c-a6fbacd5e16f",
        "name" : "ABC123 - Project Team"
      },
      {
        "id" : "a183d648-dce7-4aa6-a946-993890c5a4d8",
        "name" : "ABC123 - Project Managers"
      },
      {
        "id" : "f42c20f1-1205-4083-b8db-04df9c8706bf",
        "name" : "ABC123 - BIM"
      },
      {
        "id" : "c988438b-e5f0-4ed9-b788-0f4265115926",
        "name" : "ABC123 - External"
      }
    ]
} 

Find Project by Id

This endpoint is used to retrieve a project based on its Id.

GET/pubapi/v2/project-folders/{project-id}

Sample Response Body

{
  "id": "a69bd625-1dc3-4dcf-98f5-8e3e3fbb0b29",
  "rootFolderId": "b133ce0d-2e79-4cf8-bf3a-8758f7b117b3",
  "name": "Acme Widgets HQ Redesign",
  "projectId": "ABC-123",
  "customerName": "Acme Widgets Co",
  "description": "Redesigned HQ for Acme Widgets",
  "location": {
    "streetAddress1": "123 Main St.",
    "streetAddress2": null,
    "city": "Anytown",
    "state": "CA",
    "country": "USA",
    "postalCode": "99999"
  },
  "status": "in-progress",
  "startDate": "2022-11-01T00:00:00.000+0000",
  "createdBy": 4,
  "lastUpdatedBy": 4,
  "creationTime": "2022-11-02T19:02:31.000+0000",
  "lastModifiedTime": "2022-11-02T12:09:50.000+0000"
}

Find Project by root folder id

This endpoint is used to retrieve a project based on the id of the root folder.

POST/pubapi/v2/project-folders/search

Request Parameters

Parameter Description Required Possible Values
rootFolderId The id of the root folder Yes string

Sample Response Body

[
  {
    "id": "a69bd625-1dc3-4dcf-98f5-8e3e3fbb0b29",
    "rootFolderId": "b133ce0d-2e79-4cf8-bf3a-8758f7b117b3",
    "name": "Acme Widgets HQ Redesign",
    "projectId": "ABC-123",
    "customerName": "Acme Widgets Co",
    "description": "Redesigned HQ for Acme Widgets",
    "location": {
      "streetAddress1": "123 Main St.",
      "streetAddress2": null,
      "city": "Anytown",
      "state": "CA",
      "country": "USA",
      "postalCode": "99999"
    },
    "status": "in-progress",
    "startDate": "2022-11-01T00:00:00.000+0000",
    "createdBy": 4,
    "lastUpdatedBy": 4,
    "creationTime": "2022-11-02T19:02:31.000+0000",
    "lastModifiedTime": "2022-11-02T12:09:50.000+0000"
  }
]

Remove a Project

This endpoint is used to remove a project.

DELETE/pubapi/v2/project-folders/{project-id}

Update an Existing Project

This endpoint is used to update an existing project.

PATCH/pubapi/v2/project-folders/{project_id}

Request Parameters

All parameters here are optional, but at least one parameter must be specified.

Parameter Description Required Possible Values
name The name of the project Yes string
description Folder description No string
projectId ID of the project Yes, if used in dynamic group name for the template string
customerName The customer associated with the project No string
location.streetAddress1 First line of the street address No string
location.streetAddress2 Second line of the street address No string
location.city City No string
location.state State or Province No string
location.postalCode Zip code or postal code No string
location.country Country No 3 character country code from the ISO 3166 GENC profile, for example: USA, GBR, POL
status Status of the project Yes pending, in-progress, or on-hold
startDate The start date of the project. No string
completionDate The completion date for the project. No string

Sample Request Body

{
  "name": "Acme Widgets HQ Redesign",                
  "description": "Redesigned HQ for Acme Widgets",
  "projectId": "ABC-123",
  "customerName": "Acme Widgets Co",
  "status": "in-progress",              
  "startDate": "2022-11-01",
  "completionDate": null,
  "location": {
      "streetAddress1":  "123 Main St.",
      "streetAddress2": null,
      "city":  "Anytown",
      "state": "CA",
      "postalCode": "99999",
      "country":  "USA"
  }
}

Clean up project

This endpoint is used to clean up a project.

POST/pubapi/v1/project-folders/{project_id}/cleanup

Request Parameters

Parameter Description Required Possible Values
deleteLinks If set to true, all existing active links in the project will be deleted Yes boolean (true, false)
usersToDelete List of User Ids to be deleted No List of User Ids
usersToDisabed List of User Ids to be disabled No List of User Ids

Return codes

Return Code Description
202 Cleanup procedure started
409 The previous cleanup procedure is still in progress.
503 Too many cleanup procedures are being executed. The server can not accept the request at the moment.

Sample Request Body

{
  "deleteLinks": true,
  "usersToDelete": [
    0
  ],
  "usersToDisable": [
    0
  ]
}