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

# Restore assets from trash

> Restores trashed assets so they reappear in default list/search results. Idempotent — assets that are already live are silently skipped.

Pairs with `trash_assets`: assets soft-deleted there can be brought back here within the retention window. To restore a whole trashed library, use `restore_library`.



## OpenAPI

````yaml https://api.gumnut.ai/openapi.json post /api/assets/restore
openapi: 3.1.0
info:
  title: Gumnut API
  description: API for using Gumnut to manage photos and videos
  version: 0.1.0
servers: []
security: []
paths:
  /api/assets/restore:
    post:
      tags:
        - assets
      summary: Restore assets from trash
      description: >-
        Restores trashed assets so they reappear in default list/search results.
        Idempotent — assets that are already live are silently skipped.


        Pairs with `trash_assets`: assets soft-deleted there can be brought back
        here within the retention window. To restore a whole trashed library,
        use `restore_library`.
      operationId: restore_assets
      parameters:
        - name: library_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Library that owns the assets. Optional if the user has a single
              library; required when they have multiple.
            title: Library Id
          description: >-
            Library that owns the assets. Optional if the user has a single
            library; required when they have multiple.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetIdsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletionResponse'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    AssetIdsRequest:
      properties:
        ids:
          items:
            type: string
          type: array
          maxItems: 200
          minItems: 1
          title: Ids
          description: >-
            Asset IDs (each with the `asset_` prefix) to operate on. Up to 200
            ids per request.
      type: object
      required:
        - ids
      title: AssetIdsRequest
      description: |-
        Request body carrying a list of asset IDs for the bulk trash, restore,
        and permanent-delete endpoints.
    DeletionResponse:
      properties: {}
      type: object
      title: DeletionResponse
      description: >-
        Acknowledgment body returned by destructive endpoints (delete / trash /
        restore /

        permanently delete / remove-from-album / empty-trash).


        Carries no fields — the HTTP 200 + empty JSON object is itself the
        success

        signal. Exists so MCP tools generated from these endpoints have a real

        ``outputSchema`` (rather than the null schema FastMCP emits for 204

        responses), which ChatGPT's MCP submission tooling requires.
      x-stainless-empty-object: true
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError

````