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

# List deleted entity records

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the records deleted from one of the app's entities that are still in its trash.

A record lands here when [Delete entity record](/api-reference/delete-entity-record) removes it, and stays until you bring it back with [Restore entity record](/api-reference/restore-entity-record) or erase it with [Permanently delete entity record](/api-reference/permanently-delete-entity-record). Row-level security doesn't apply, so you get every deleted record in the entity. The `User` entity has no trash, because [Remove app user](/api-reference/remove-app-user) deletes a user outright, so asking for its trash returns a 404.

Filter, sort, and page the same way as [List entity records](/api-reference/list-entity-records), except that the 5000 record cap doesn't apply here: leave out `limit` to get the whole trash in one response.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/entities/{entity_name}/trash
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/entities/{entity_name}/trash:
    get:
      summary: List deleted entity records
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns the records deleted from one of the app's entities that are
        still in its trash.


        A record lands here when [Delete entity
        record](/api-reference/delete-entity-record) removes it, and stays until
        you bring it back with [Restore entity
        record](/api-reference/restore-entity-record) or erase it with
        [Permanently delete entity
        record](/api-reference/permanently-delete-entity-record). Row-level
        security doesn't apply, so you get every deleted record in the entity.
        The `User` entity has no trash, because [Remove app
        user](/api-reference/remove-app-user) deletes a user outright, so asking
        for its trash returns a 404.


        Filter, sort, and page the same way as [List entity
        records](/api-reference/list-entity-records), except that the 5000
        record cap doesn't apply here: leave out `limit` to get the whole trash
        in one response.


        <Note>This endpoint accepts a personal API key belonging to a user with
        editor access to the app. A read-only key is refused, and workspace API
        keys are not accepted.</Note>
      operationId: list_deleted_entities_api_apps__app_id__entities__entity_name__trash_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app that owns the entity.
            title: App Id
          description: ID of the app that owns the entity.
          example: 6820f3a4e7b91d003c45a1f2
        - name: entity_name
          in: path
          required: true
          schema:
            type: string
            description: >-
              Name of the entity, exactly as [List entity
              schemas](/api-reference/list-entity-schemas) reports it. Don't
              pass `User` here. It doesn't fail, but it reads and writes a
              separate, disconnected set of records stored under that name, not
              the app's real user accounts, which are managed through their own
              endpoints.
            title: Entity Name
          description: >-
            Name of the entity, exactly as [List entity
            schemas](/api-reference/list-entity-schemas) reports it. Don't pass
            `User` here. It doesn't fail, but it reads and writes a separate,
            disconnected set of records stored under that name, not the app's
            real user accounts, which are managed through their own endpoints.
          example: Invoice
        - name: q
          in: query
          required: false
          description: >-
            Filter as a JSON object of field names and values, for example
            `{"status": "paid"}` for an exact match, or using an operator such
            as `$gt` for a comparison. See [Filtering, sorting, and
            paging](/developers/references/apps-api/sections/entities#filtering-sorting-and-paging)
            for a full list of operators.
          example: '{"status": "paid"}'
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of deleted records to return, from 1 to 10000. Leave
            it out to get every matching deleted record in one response.
          example: 100
          schema:
            type: integer
        - name: skip
          in: query
          required: false
          description: >-
            Number of deleted records to skip before the ones you get back, 0 or
            more. Defaults to 0. Use it with `limit` to page through a long
            list.
          example: 100
          schema:
            type: integer
            default: 0
        - name: sort
          in: query
          required: false
          description: >-
            Single field to sort by, prefixed with `-` for descending. For
            example, `-created_date` returns newest first. Sorting by more than
            one field isn't supported.
          example: '-created_date'
          schema:
            type: string
        - name: fields
          in: query
          required: false
          description: >-
            Comma-separated list of fields to return, which reduces the response
            size on a wide entity. Reach a field inside an object with dots, as
            in `customer.email`. Each record still carries its `id` whether you
            ask for it or not.
          example: status,amount
          schema:
            type: string
      responses:
        '200':
          description: The entity's deleted records.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
                  description: One record in an entity's trash.
                  properties:
                    id:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        ID of the record. Pass it as `entity_id` to [Get entity
                        record](/api-reference/get-entity-record), [Update
                        entity record](/api-reference/update-entity-record) or
                        [Delete entity
                        record](/api-reference/delete-entity-record).
                      example: 6886b8d390dc7e2f4a2c91b3
                      title: Id
                    created_date:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        When the record was created, as a UTC timestamp in ISO
                        8601 format. A record Base44 has just created carries a
                        `Z` suffix, and a record read back from storage does
                        not.
                      example: '2026-06-01T09:23:41.481000'
                      title: Created Date
                    updated_date:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        When the record last changed, as a UTC timestamp in ISO
                        8601 format. A record Base44 has just created carries a
                        `Z` suffix, and a record read back from storage does
                        not.
                      example: '2026-06-04T14:07:02.115000'
                      title: Updated Date
                    created_by:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Email of the app user who created the record, or
                        `anonymous` when a visitor created it on an app that
                        needs no login. Apps that hide record authorship leave
                        this field out of the response.
                      example: jane@acme.com
                      title: Created By
                    created_by_id:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        ID of the app user who created the record, or
                        `anonymous` when a visitor created it on an app that
                        needs no login.
                      example: 6874b0c2e1a94d0031bb77de
                      title: Created By Id
                    is_sample:
                      anyOf:
                        - type: boolean
                        - type: 'null'
                      description: >-
                        Whether Base44 stored the record as sample data while
                        the app was being built. A record you create reports
                        `false`.
                      example: false
                      title: Is Sample
                    deleted_date:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        When the record was deleted, as a UTC timestamp in ISO
                        8601 format.
                      example: '2026-06-05T11:42:18.207000'
                      title: Deleted Date
                  title: DeletedEntityRecord
                title: DeletedEntityRecords
        '400':
          description: >-
            `q` isn't a JSON object, `limit` or `skip` is out of range or not a
            whole number, or `sort` names more than one field.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have editor access to this app, or your API key is
            read-only.
        '404':
          description: >-
            App not found, the app has no entity with this name, or the entity
            is `User`.
        '422':
          description: >-
            A filter you passed as its own query parameter doesn't match the
            type the entity's schema declares for that field.
        '429':
          description: >-
            Rate limit exceeded. The base limit is 70 requests per minute. See
            [Rate
            limits](/developers/references/apps-api/get-started/rate-limits) for
            the multiplier your plan gets.
components:
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````