> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joinluminous.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Restore from the trash

> Restore a trashed folder or file. The whole delete batch comes back: restoring a
folder restores everything that was deleted with it.

The item returns to its original folder, or to the deleter's My Files if that folder
is gone. `location` says where it landed.

Only the person who deleted the item, or a `fileCabinet.manage` owner, can restore it
(`403` otherwise). An item not in the trash is `404`.

Requires the `fileCabinet.write` permission.




## OpenAPI

````yaml /api-reference/build.yaml post /file-cabinet/trash/restore
openapi: 3.0.0
info:
  title: Luminous API
  version: 1.0.0
  description: API documentation for Luminous
servers:
  - url: https://{companyName}.api.joinluminous.com/external/api/v1
    variables:
      companyName:
        default: companyName
        description: Your company-specific subdomain
security: []
tags:
  - name: Products
    description: Get and manage products
  - name: Pricing
    description: Manage price schedules, levels, and customizations
  - name: BOMs
    description: Manage Bills of Materials (BOMs)
  - name: Labels
    description: Label rendering via Labelary ZPL service
  - name: Companies
    description: Manage business accounts and their associated data
  - name: Contacts
    description: Manage contact information for individuals
  - name: Suppliers
    description: Manage suppliers (factories) — vendors used on purchase orders
  - name: Supplier SKUs
    description: Manage per-supplier SKU and unit-cost overrides for products
  - name: Locations
    description: Manage warehouses and locations
  - name: Inventory
    description: Get and adjust product stock levels
  - name: Lots
    description: Create, update, and delete product lots (batches)
  - name: Transfer Orders
    description: Manage transfer orders
  - name: Fulfillment Orders
    description: Manage fulfillment orders and picklists
  - name: Freight
    description: >-
      Freightview LTL freight — quotes, booking and documents for fulfillment
      orders
  - name: Fulfillment Priority Lists
    description: Configure fulfillment routing priority lists
  - name: Purchase Orders
    description: Get and modify purchase orders
  - name: Supplier Portal
    description: >-
      Read a supplier's response to a purchase order and control the one-click
      portal link
  - name: Receiving Reports
    description: Manage receiving reports
  - name: Payment Obligations
    description: Manage payment obligations for purchase orders
  - name: Sales Orders
    description: Manage sales orders and sales order shipments
  - name: Purgatory
    description: >-
      Inspect and resolve non-posted sales orders in the purgatory staging
      workflow
  - name: PickFlow Warehouse
    description: >-
      Warehouse-floor lookups for PickFlow — barcode resolution, bin and product
      stock, bin search, and receivables
  - name: PickFlow Shipping
    description: >-
      Provider-agnostic shipping rates, services, packages, and label purchase
      for PickFlow
  - name: Cycle Counts
    description: >-
      Create, drive, and post PickFlow cycle counts — batches, per-warehouse
      sessions, and CSV import/export
  - name: Print Stations
    description: List paired print stations and enqueue print jobs to them
  - name: Invoices
    description: Get and manage invoices
  - name: Work Orders
    description: >-
      Manage work orders — production lifecycle, steps, materials, links,
      shipments, and comments
  - name: Production Batches
    description: Group and manage work orders as production batches
  - name: Bills
    description: >-
      Accounts payable bill management, payments, attachments, allocations, and
      variance
  - name: Prepayments
    description: Manage vendor prepayments and applications
  - name: Vendor Credits
    description: Manage vendor credits and applications
  - name: Vendor Returns
    description: Manage vendor returns and credit generation
  - name: Customer Returns
    description: Manage customer returns (sales returns), receiving, and restock behavior
  - name: Stock Snapshot
    description: Point-in-time stock snapshots with export support
  - name: Consumption
    description: Consumption reports and exports
  - name: Inventory Aging
    description: Cost-layer-based inventory aging reports
  - name: Bills Reports
    description: Accounts payable bills aging reports
  - name: Forecast
    description: Materialized forecast data
  - name: Reports
    description: Close the books, inventory discrepancy, transaction COGS, and EDI reports
  - name: Tags
    description: Add/remove tags across various resources
  - name: Custom Fields
    description: Get and set custom fields across various resources
  - name: Currency
    description: Currency configuration, exchange rates, and conversion
  - name: Drive
    description: >
      Browse, upload, tag and manage files in your Luminous Drive. An API token
      sees the shared

      drive only, never My Files or restricted folders and files. Every write
      and download made

      through the API is recorded in the file's activity log (`GET
      /file-cabinet/files/{id}/activity`)

      with `actor_kind: api_token`.
  - name: Integration Mappings
    description: Manage integration mappings for external systems
  - name: Integration Field Mappings
    description: Manage field-level mappings between Luminous and external systems
  - name: Automations
    description: Create, test, and inspect automation rules and their runs
paths:
  /file-cabinet/trash/restore:
    post:
      tags:
        - Drive
      summary: Restore from the trash
      description: >
        Restore a trashed folder or file. The whole delete batch comes back:
        restoring a

        folder restores everything that was deleted with it.


        The item returns to its original folder, or to the deleter's My Files if
        that folder

        is gone. `location` says where it landed.


        Only the person who deleted the item, or a `fileCabinet.manage` owner,
        can restore it

        (`403` otherwise). An item not in the trash is `404`.


        Requires the `fileCabinet.write` permission.
      operationId: restoreDriveTrash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - type
                - id
              properties:
                type:
                  type: string
                  enum:
                    - folder
                    - file
                id:
                  type: integer
                  description: Folder or file ID
      responses:
        '200':
          description: Restored item
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    allOf:
                      - oneOf:
                          - type: object
                            description: A Drive folder.
                            properties:
                              id:
                                type: integer
                                example: 41
                              type:
                                type: string
                                enum:
                                  - folder
                              name:
                                type: string
                                example: SS27 Shoot
                              parent_id:
                                type: integer
                                nullable: true
                                description: >-
                                  Parent folder ID, or `null` for a top-level
                                  folder
                              is_restricted:
                                type: boolean
                                description: >-
                                  Restricted folders are never visible to API
                                  tokens
                              is_system:
                                type: boolean
                                description: >-
                                  System folders (for example the record folders
                                  that hold emailed documents) cannot be
                                  renamed, moved or deleted
                              is_my_files:
                                type: boolean
                                description: >-
                                  Always `false` for API tokens, which only see
                                  the shared drive
                              has_children:
                                type: boolean
                                nullable: true
                                description: >-
                                  Whether the folder has visible sub-folders.
                                  Only set on folder listings.
                              tags:
                                type: array
                                items:
                                  type: object
                                  description: A Drive tag.
                                  properties:
                                    id:
                                      type: integer
                                      example: 12
                                    name:
                                      type: string
                                      description: >-
                                        Tag name (at most 50 characters, unique
                                        ignoring case)
                                      example: SS27
                                    color:
                                      type: string
                                      enum:
                                        - gray
                                        - blue
                                        - green
                                        - yellow
                                        - orange
                                        - red
                                        - purple
                                        - pink
                                      description: >-
                                        Tag color. Unknown colors are stored as
                                        `gray`.
                                      example: green
                              created_by:
                                type: integer
                                nullable: true
                                description: ID of the user who created the folder
                              created_at:
                                type: string
                                format: date-time
                                nullable: true
                              updated_at:
                                type: string
                                format: date-time
                                nullable: true
                              deleted_at:
                                type: string
                                format: date-time
                                nullable: true
                                description: Set while the folder is in the trash
                              can_edit:
                                type: boolean
                                nullable: true
                                description: Whether the token's owner can edit this folder
                              is_starred:
                                type: boolean
                                nullable: true
                                description: >-
                                  Whether the token's owner has starred this
                                  folder
                          - type: object
                            description: A Drive file.
                            properties:
                              id:
                                type: integer
                                example: 481
                              type:
                                type: string
                                enum:
                                  - file
                              name:
                                type: string
                                example: STYLE123_BLK_01.jpg
                              folder_id:
                                type: integer
                                nullable: true
                                description: ID of the folder holding the file
                              extension:
                                type: string
                                nullable: true
                                example: jpg
                              mime_type:
                                type: string
                                nullable: true
                                example: image/jpeg
                              size_bytes:
                                type: integer
                                description: Size of the current version in bytes
                                example: 482113
                              is_restricted:
                                type: boolean
                                description: >-
                                  Restricted files are never visible to API
                                  tokens
                              is_image:
                                type: boolean
                              current_version:
                                allOf:
                                  - type: object
                                    description: One uploaded version of a Drive file.
                                    properties:
                                      id:
                                        type: integer
                                        example: 33
                                      version_number:
                                        type: integer
                                        example: 2
                                      size_bytes:
                                        type: integer
                                        example: 482113
                                      mime_type:
                                        type: string
                                        nullable: true
                                        example: image/jpeg
                                      original_name:
                                        type: string
                                        nullable: true
                                        description: File name as uploaded
                                        example: STYLE123_BLK_01.jpg
                                      status:
                                        type: string
                                        description: >-
                                          Upload status. Only `ready` versions can
                                          be downloaded.
                                        example: ready
                                      uploaded_by:
                                        type: integer
                                        nullable: true
                                        description: ID of the user who uploaded the version
                                      completed_at:
                                        type: string
                                        format: date-time
                                        nullable: true
                                      created_at:
                                        type: string
                                        format: date-time
                                        nullable: true
                                nullable: true
                              thumbnail_url:
                                type: string
                                nullable: true
                                description: >-
                                  URL of a 400px JPEG thumbnail, for images.
                                  `null` until the thumbnail is generated.
                              public_image_url:
                                type: string
                                nullable: true
                                description: >-
                                  Stable public URL of the image, when the
                                  public image URL has been turned on (see `POST
                                  /file-cabinet/files/{id}/public-image`)
                              expires_at:
                                type: string
                                format: date
                                nullable: true
                                description: Expiry date of the document, if one is set
                              expiry_notify_user_ids:
                                type: array
                                items:
                                  type: integer
                                description: Users notified before the file expires
                              tags:
                                type: array
                                items:
                                  type: object
                                  description: A Drive tag.
                                  properties:
                                    id:
                                      type: integer
                                      example: 12
                                    name:
                                      type: string
                                      description: >-
                                        Tag name (at most 50 characters, unique
                                        ignoring case)
                                      example: SS27
                                    color:
                                      type: string
                                      enum:
                                        - gray
                                        - blue
                                        - green
                                        - yellow
                                        - orange
                                        - red
                                        - purple
                                        - pink
                                      description: >-
                                        Tag color. Unknown colors are stored as
                                        `gray`.
                                      example: green
                              created_by:
                                type: integer
                                nullable: true
                              updated_by:
                                type: integer
                                nullable: true
                              created_at:
                                type: string
                                format: date-time
                                nullable: true
                              updated_at:
                                type: string
                                format: date-time
                                nullable: true
                              deleted_at:
                                type: string
                                format: date-time
                                nullable: true
                                description: Set while the file is in the trash
                              can_edit:
                                type: boolean
                                nullable: true
                                description: Whether the token's owner can edit this file
                              is_starred:
                                type: boolean
                                nullable: true
                                description: >-
                                  Whether the token's owner has starred this
                                  file
                      - type: object
                        properties:
                          location:
                            type: array
                            items:
                              type: string
                            description: >-
                              Names of the folders the item is now in, from the
                              top level down
                            example:
                              - Lookbooks
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '403':
          description: The token's owner lacks the required Drive permission
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Not found or not visible to API tokens
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate using a bearer token. To create a token, navigate to
        /settings/api-tokens and click Create API Token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.