---
title: "List entity records"
method: GET
path: "/api/apps/{app_id}/entities/{entity_name}"
---

# List entity records

`GET /api/apps/{app_id}/entities/{entity_name}`

<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>

## Path parameters

- `app_id` string, required — ID of the app that owns the entity.
- `entity_name` string, required — Name of the entity, exactly as [List entity schemas](/api-reference/list-entity-schemas) reports it.

## Query parameters

- `q` string
- `limit` integer
- `skip` integer
- `sort` string
- `fields` string

## Response `200`

The entity's records.

- object[]
  - `id` string, nullable — 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).
  - `created_date` string, nullable — 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.
  - `updated_date` string, nullable — 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.
  - `created_by` string, nullable — 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.
  - `created_by_id` string, nullable — ID of the app user who created the record, or `anonymous` when a visitor created it on an app that needs no login.
  - `is_sample` boolean, nullable — Whether Base44 stored the record as sample data while the app was being built. A record you create reports `false`.

## Other responses

- `400` — `sort` names more than one field.
- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app.
- `404` — App not found, or the app has no entity with this name.
- `422` — 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` — Rate limit exceeded. This endpoint allows 100 requests per minute per app, shared with the app's other entity listing calls.

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adexad/base44-app-management-api/revisions/7f5ce8287501/schema)
