---
title: "Update entity record"
method: PUT
path: "/api/apps/{app_id}/entities/{entity_name}/{entity_id}"
---

# Update entity record

`PUT /api/apps/{app_id}/entities/{entity_name}/{entity_id}`

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

Changes the fields you send on one record and returns the whole updated record.

This merges rather than replaces. A field you leave out keeps the value it already has, so you can send a single field on its own. Base44 stores only the fields the entity's schema declares and drops the rest, so a misspelled name is left out of the record instead of failing the call. Base44 also assigns `id`, `created_date`, `updated_date`, `created_by` and `created_by_id`, and ignores them if you send them.

Row-level security decides this differently from a read. A record the entity's `rls` update rule doesn't cover reports 403 even when the caller can't read it, so a 403 here tells you the record exists. Field-level rules can refuse a change to one field while allowing the rest.

Updating a record triggers the app's webhooks and any automation or workflow that listens for this entity.

This endpoint is limited to 100 requests per minute per app.

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

## Path parameters

- `entity_id` string, required — ID of the record, as `id` in the response of [List entity records](/api-reference/list-entity-records).
- `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.

## Request body

- object — The record's fields, as a flat JSON object using the names the entity's [schema](/api-reference/get-entity-schema) declares.

## Response `200`

The updated record.

- object — One record in one of an app's entities.
  - `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` — A field value is longer than 20,000 characters.
- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, the entity's `rls` update rule doesn't cover the record or one of the fields you're changing, or your API key is read-only.
- `404` — App not found, the app has no entity with this name, or the entity holds no record with this ID.
- `422` — The body is missing, or a value doesn't match the type the entity's schema declares for that field.
- `429` — Rate limit exceeded. This endpoint allows 100 requests per minute per app.

## Changes

- **2026-09-01** `d8572ad3094a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/entities/:entity_name/:entity_id/put.md)

---

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