---
updatedAt: 2026-04-21T17:08:22.000Z
agentTools:
  projectIndex: https://developers.fieldwire.com/llms.txt
---

# Duplicate a folder collection and all its contents

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Fieldwire Regional API",
    "version": "v3"
  },
  "servers": [
    {
      "url": "https://client-api.{region}.fieldwire.com",
      "variables": {
        "region": {
          "default": "us",
          "enum": [
            "ca",
            "eu",
            "us"
          ]
        }
      }
    }
  ],
  "components": {
    "headers": {
      "current_user_id": {
        "description": "Current user's id",
        "schema": {
          "type": "integer"
        }
      }
    },
    "parameters": {
      "api_version": {
        "name": "Fieldwire-Version",
        "in": "header",
        "description": "Specifies the version of the API to talk to",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date"
        }
      },
      "id": {
        "name": "id",
        "in": "path",
        "description": "ID of the entity",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "project_id": {
        "name": "project_id",
        "in": "path",
        "description": "ID of the project this entity belongs to",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "schemas": {
      "errors": {
        "type": "object",
        "nullable": false,
        "required": [
          "errors"
        ],
        "description": "Error response that could carry multiple errors",
        "properties": {
          "errors": {
            "type": "array",
            "nullable": false,
            "description": "The list of errors stopping an action from going through",
            "items": {
              "type": "string",
              "nullable": false,
              "description": "Individual error"
            }
          }
        },
        "additionalProperties": false
      },
      "project_resource_export_response": {
        "type": "object",
        "nullable": false,
        "description": "Schema for resource export response",
        "oneOf": [
          {
            "type": "object",
            "nullable": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "nullable": false,
                "description": "The error that led to resource not getting exported"
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "nullable": false,
            "required": [
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "nullable": false,
                "description": "The URL where the export can be found"
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "nullable": false,
            "required": [
              "jid"
            ],
            "properties": {
              "jid": {
                "type": "string",
                "nullable": false,
                "description": "A unique ID to poll with until the job finishes"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "folder": {
        "type": "object",
        "description": "Entity used for grouping plans/files etc.",
        "required": [
          "id",
          "creator_user_id",
          "last_editor_user_id",
          "project_id",
          "name",
          "kind",
          "required_role",
          "resolved_conflict",
          "created_at",
          "device_created_at",
          "device_updated_at",
          "updated_at",
          "deleted_by_two_way_sync",
          "integration_metadata"
        ],
        "nullable": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": false,
            "description": "ID of the entity"
          },
          "creator_user_id": {
            "type": "integer",
            "format": "int32",
            "nullable": false,
            "description": "ID of the user who created this entity"
          },
          "last_editor_user_id": {
            "type": "integer",
            "format": "int32",
            "nullable": false,
            "description": "ID of the user who most recently edited this entity"
          },
          "project_id": {
            "type": "string",
            "format": "uuid",
            "nullable": false,
            "description": "ID of the project this entity belongs to"
          },
          "name": {
            "type": "string",
            "nullable": false,
            "description": "Name of the entity"
          },
          "cascade_deleted_dependents_count": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Count of entities this folder cascade deleted"
          },
          "cascade_deleted_by_id": {
            "type": "boolean",
            "nullable": true,
            "description": "Cascade deleted by id"
          },
          "kind": {
            "type": "string",
            "enum": [
              "floorplan",
              "attachment",
              "bim"
            ],
            "nullable": false,
            "description": "Kind of the entity"
          },
          "process_state": {
            "type": "string",
            "enum": [
              "deleting",
              "restoring",
              null
            ],
            "nullable": true,
            "description": "State of deletion of this folder"
          },
          "required_role": {
            "type": "string",
            "enum": [
              "follower",
              "member",
              "admin"
            ],
            "nullable": false,
            "description": "User role required to view the files belonging to this folder"
          },
          "resolved_conflict": {
            "type": "boolean",
            "nullable": true,
            "description": "Specifies if PUT/PATCH request was rejected - do not store this field!"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the server created the entity"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Time the server deleted the entity"
          },
          "device_created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the device created the entity"
          },
          "device_updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the device last updated the entity"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the server last updated the entity"
          },
          "folder_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the folder containing this folder"
          },
          "collection_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the collection folder, root-level folder parent"
          },
          "deleted_by_two_way_sync": {
            "type": "boolean",
            "nullable": true,
            "description": "Indicates if a file was deleted by two way sync"
          },
          "integration_metadata": {
            "type": "object",
            "nullable": true,
            "description": "Contains integration metadata, if the file is linked to a File automation",
            "required": [
              "entity_id",
              "id",
              "name",
              "status",
              "filename_logo"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "nullable": false,
                "description": "ID of the remote_app_item"
              },
              "entity_id": {
                "type": "string",
                "format": "uuid",
                "nullable": false,
                "description": "ID of the folder, which own these metadata"
              },
              "name": {
                "type": "string",
                "nullable": false,
                "description": "Name of the integration app"
              },
              "logo_filename": {
                "type": "string",
                "nullable": false,
                "description": "Name of the logo file to display as the folder's icon"
              },
              "status": {
                "type": "string",
                "enum": [
                  "starting",
                  "stopped",
                  "started",
                  "error"
                ],
                "nullable": false,
                "description": "Status of the automation"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "folder_duplicate_input": {
        "type": "object",
        "description": "Schema for duplicating a folder collection",
        "required": [
          "folder"
        ],
        "nullable": false,
        "properties": {
          "folder": {
            "type": "object",
            "description": "Folder attributes for duplication",
            "required": [
              "name"
            ],
            "nullable": false,
            "properties": {
              "name": {
                "type": "string",
                "nullable": false,
                "description": "Name for the duplicated folder collection"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Access token (JWT) generated using the acquired refresh token (API token). Our [authentication](https://developers.fieldwire.com/docs/authentication) guide covers the steps to generate a valid token"
      }
    }
  },
  "paths": {
    "/api/v3/projects/{project_id}/folders/{id}/duplicate": {
      "post": {
        "summary": "Duplicate a folder collection and all its contents",
        "operationId": "duplicate_project_folder",
        "tags": [
          "folders"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id"
          },
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/api_version"
          },
          {
            "name": "jid",
            "description": "Job ID returned from the initial 202 response",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Duplication complete - returns the new folder",
            "headers": {
              "X-Current-User-Id": {
                "$ref": "#/components/headers/current_user_id"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "id": "b7bbbea3-bf58-4ce6-87eb-54dd94d6fd43",
                  "creator_user_id": 909,
                  "last_editor_user_id": 909,
                  "project_id": "4937500a-737c-4964-9c28-0fbbec011a36",
                  "resolved_conflict": false,
                  "created_at": "2026-10-02T14:49:36.563Z",
                  "updated_at": "2026-10-02T14:49:36.563Z",
                  "device_created_at": "2026-10-02T14:49:36.562Z",
                  "device_updated_at": "2026-10-02T14:49:36.562Z",
                  "deleted_at": null,
                  "name": "Copy of Collection",
                  "process_state": null,
                  "cascade_deleted_dependents_count": null,
                  "required_role": "follower",
                  "kind": "floorplan",
                  "folder_id": null,
                  "collection_id": null,
                  "cascade_deleted_by_id": null,
                  "deleted_by_two_way_sync": false,
                  "integration_metadata": null
                },
                "schema": {
                  "$ref": "#/components/schemas/folder"
                }
              }
            }
          },
          "202": {
            "description": "Duplication enqueued - poll with returned jid",
            "headers": {
              "X-Current-User-Id": {
                "$ref": "#/components/headers/current_user_id"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "jid": "17639810-92af-4e39-a1f8-451a1908605a"
                },
                "schema": {
                  "$ref": "#/components/schemas/project_resource_export_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden access",
            "headers": {
              "X-Current-User-Id": {
                "$ref": "#/components/headers/current_user_id"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "errors": [
                    "You are not authorized to perform that action"
                  ]
                },
                "schema": {
                  "$ref": "#/components/schemas/errors"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/folder_duplicate_input"
              }
            }
          },
          "required": true
        }
      }
    }
  }
}
```