---
updatedAt: 2025-09-11T20:21:51.000Z
agentTools:
  projectIndex: https://docs.gathercontent.com/llms.txt
---

# Restore folder

Restores a trashed folder, and all it's descendant folders and items, to the project. The folder is appended to the project root folder - once restored it can be moved to a desired location (we cannot restore it automatically to it's original parent because the parent may not exist anymore or may have been moved). Any sub- folders or items will keep their position in the hierarchy.

# OpenAPI definition

```json
{
  "openapi": "3.0.2",
  "info": {
    "title": "GatherContent API",
    "description": "This is the documentation for the latest stable version of the GatherContent API Find out more about GatherContent at [https://gathercontent.com](https://gathercontent.com) or get help at [https://help.gathercontent.com](https://help.gathercontent.com)",
    "version": "2.0.0",
    "termsOfService": "https://gathercontent.com/legal/terms-of-service",
    "contact": {
      "email": "development@gathercontent.com"
    }
  },
  "x-samples-languages": [
    "curl",
    "node",
    "ruby",
    "javascript",
    "python"
  ],
  "servers": [
    {
      "url": "https://api.gathercontent.com"
    },
    {
      "url": "https://api.gatherpreview.com"
    },
    {
      "url": "http://api.gathercontent.test"
    }
  ],
  "externalDocs": {
    "description": "GatherContent help docs",
    "url": "https://help.gathercontent.com"
  },
  "paths": {
    "/folders/{folder_uuid}/restore": {
      "parameters": [
        {
          "$ref": "#/components/parameters/folderUuid"
        }
      ],
      "post": {
        "summary": "Restore folder",
        "operationId": "restoreFolder",
        "description": "Restores a trashed folder, and all it's descendant folders and items, to the project. The folder is appended to the project root folder - once restored it can be moved to a desired location (we cannot restore it automatically to it's original parent because the parent may not exist anymore or may have been moved). Any sub- folders or items will keep their position in the hierarchy.\n",
        "tags": [
          "Folders"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "parent_uuid": {
                    "$ref": "#/components/schemas/uuid"
                  },
                  "position": {
                    "type": "integer",
                    "description": "Positions start at 0"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/vnd.gathercontent.v2+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/folderDefinition"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/tooManyRequests"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Folders",
      "description": "Folders are a way to organise your content items into a hierarchical structure. Think of them like a tree structure, always starting from a `project-root` folder (which is special because it cannot be moved, archived or deleted) then containing zero or more sub folders, each containing zero or more sub folders and or items."
    }
  ],
  "components": {
    "parameters": {
      "folderUuid": {
        "name": "folder_uuid",
        "description": "Folder UUID",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/uuid"
        }
      }
    },
    "schemas": {
      "uuid": {
        "type": "string",
        "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
        "example": "aa23428b-9b43-4d7f-8c5c-0fb5fc3a944e"
      },
      "uuidNullable": {
        "type": "string",
        "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
        "example": "aa23428b-9b43-4d7f-8c5c-0fb5fc3a944e",
        "nullable": true
      },
      "datetimeNullable": {
        "type": "string",
        "description": "DateTimes are all in UTC - it's up to the client to convert them to an appropriate time zone",
        "pattern": "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}",
        "example": "2019-04-20T04:20:00.000Z",
        "nullable": true
      },
      "folderDefinition": {
        "type": "object",
        "properties": {
          "uuid": {
            "$ref": "#/components/schemas/uuid"
          },
          "name": {
            "type": "string",
            "description": "The folder name"
          },
          "position": {
            "type": "integer",
            "description": "Folder positions start at 0"
          },
          "parent_uuid": {
            "$ref": "#/components/schemas/uuidNullable"
          },
          "project_id": {
            "type": "integer",
            "description": "The project id"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "enum": [
              "project-root",
              "project-archived"
            ]
          },
          "archived_at": {
            "$ref": "#/components/schemas/datetimeNullable"
          }
        }
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    },
    "responses": {
      "tooManyRequests": {
        "description": "Too many request",
        "content": {
          "application/vnd.gathercontent.v2+json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "string",
                  "example": "Too Many Attempts."
                },
                "code": {
                  "type": "integer",
                  "example": 429
                }
              }
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "schema": {
              "type": "integer"
            },
            "description": "Request limit."
          },
          "X-RateLimit-Remaining": {
            "schema": {
              "type": "integer"
            },
            "description": "The number of requests left for the time window."
          },
          "X-RateLimit-Reset": {
            "schema": {
              "type": "string"
            },
            "description": "The Unix timestamp at which the current rate limit window resets."
          },
          "Retry-After": {
            "schema": {
              "type": "integer"
            },
            "description": "The number of seconds before the current rate limit window resets."
          }
        }
      }
    }
  },
  "security": [
    {
      "basicAuth": []
    }
  ],
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  }
}
```