> ## 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 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 held in one of the app's entities. Deleted records are left out.

Row-level security applies, so an entity whose `rls` read rule narrows what a caller sees returns only the records that credential can read. An entity with no `rls` rules returns all of its records.

Filter with `q`, or by passing one of the entity's own fields as a query parameter of that name. Any parameter this endpoint doesn't define is read as a filter, so a misspelled one narrows the result to nothing rather than failing the call.

Base44 returns at most 5000 records per call. It caps the result at 5000 both when you leave `limit` out and when you ask for more, and the response doesn't tell you it was cut short, so page through a bigger entity with `skip`.

Records come back in no particular order unless you set `sort`.

Pass the entity name exactly as [List entity schemas](/api-reference/list-entity-schemas) reports it. The `User` entity is served by its own endpoints and never reaches this one.

This endpoint is limited to 100 requests per minute per app, shared with the app's other entity listing calls.

<Note>This endpoint accepts a personal API key belonging to a user with access to the app, including a read-only key. 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}
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/entities/{entity_name}:
    get:
      summary: List 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 held in one of the app's entities. Deleted records
        are left out.


        Row-level security applies, so an entity whose `rls` read rule narrows
        what a caller sees returns only the records that credential can read. An
        entity with no `rls` rules returns all of its records.


        Filter with `q`, or by passing one of the entity's own fields as a query
        parameter of that name. Any parameter this endpoint doesn't define is
        read as a filter, so a misspelled one narrows the result to nothing
        rather than failing the call.


        Base44 returns at most 5000 records per call. It caps the result at 5000
        both when you leave `limit` out and when you ask for more, and the
        response doesn't tell you it was cut short, so page through a bigger
        entity with `skip`.


        Records come back in no particular order unless you set `sort`.


        Pass the entity name exactly as [List entity
        schemas](/api-reference/list-entity-schemas) reports it. The `User`
        entity is served by its own endpoints and never reaches this one.


        This endpoint is limited to 100 requests per minute per app, shared with
        the app's other entity listing calls.


        <Note>This endpoint accepts a personal API key belonging to a user with
        access to the app, including a read-only key. Workspace API keys are not
        accepted.</Note>
      operationId: list_entities_api_apps__app_id__entities__entity_name__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.
            title: Entity Name
          description: >-
            Name of the entity, exactly as [List entity
            schemas](/api-reference/list-entity-schemas) reports it.
          example: Invoice
        - name: q
          in: query
          required: false
          description: >-
            Filter as a JSON object of field names and values, for example
            `{"status": "paid"}`. A value can be a comparison rather than an
            exact match, as in `{"amount": {"$gt": 100}}`, and `$and`, `$or`,
            `$nor` and `$not` combine conditions. Keep the nesting shallow.
            Base44 wraps your filter in its own row-level-security conditions
            before it checks the depth, so how deep you can go depends on the
            entity's rules.
          example: '{"status": "paid"}'
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of records to return, as a whole number of at least
            1. Defaults to 5000, and Base44 returns at most 5000 records however
            high you set this.
          example: 100
          schema:
            type: integer
            default: 5000
        - name: skip
          in: query
          required: false
          description: >-
            Number of records to skip before the ones you get back, as a whole
            number of 0 or more. Defaults to 0. Use it with `limit` to page
            through an entity.
          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 records.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
                  description: One record in one of an app's entities.
                  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
                  title: EntityRecord
                title: EntityRecords
        '400':
          description: '`sort` names more than one field.'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: You don't have access to this app.
        '404':
          description: App not found, or the app has no entity with this name.
        '422':
          description: >-
            A filter you passed as its own query parameter doesn't match the
            type the entity's schema declares for that field, for example text
            where the field holds a number. Values inside `q` aren't
            type-checked.
        '429':
          description: >-
            Rate limit exceeded. This endpoint allows 100 requests per minute
            per app, shared with the app's other entity listing calls.
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````