---
title: "Create entity record"
method: POST
path: "/api/apps/{app_id}/entities/{entity_name}"
---

# Create entity record

`POST /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>

Adds a record to one of the app's entities and returns it.

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 applies, so an entity whose `rls` create rule doesn't cover the record you send fails with a 403.

Don't pass `User` as the `entity_name`. Base44 manages the app's users through its own endpoints, and a record created here under that name is stored where those endpoints don't read it.

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

This endpoint is limited to 140 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

- `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 created 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` create rule doesn't cover the record, or your API key is read-only.
- `404` — App not found, or the app has no entity with this name.
- `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 140 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/post.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)
