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

# Create entity records

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

Adds several records to one of the app's entities in one call, and returns them in the order you sent them.

Send a JSON array of records, each written the same way as the body of [Create entity record](/api-reference/create-entity-record). Only the fields the entity's schema declares are stored, so a misspelled name is left out of the record instead of failing the call. Base44 always assigns `id`, `created_date`, `updated_date`, `created_by`, and `created_by_id` automatically, and ignores any of them you send. An empty array creates nothing and returns an empty array.

Every record is checked before any is written. If one record doesn't match the entity's schema, or the entity's `rls` create rule or a field-level rule doesn't cover it, the call is rejected and no records are created.

There's no fixed limit on how many records one call creates, but the whole array is written before the response comes back, so split a very large import into several calls.

Each record is new, so retrying a call that already succeeded creates every record again. If a call fails while it's writing, some of the records can already be stored, so check with [List entity records](/api-reference/list-entity-records) before you retry.

Unlike [Create entity record](/api-reference/create-entity-record), this doesn't trigger the app's webhooks, automations, or workflows.

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



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/entities/{entity_name}/bulk
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}/bulk:
    post:
      summary: Create entity records
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Adds several records to one of the app's entities in one call, and
        returns them in the order you sent them.


        Send a JSON array of records, each written the same way as the body of
        [Create entity record](/api-reference/create-entity-record). Only the
        fields the entity's schema declares are stored, so a misspelled name is
        left out of the record instead of failing the call. Base44 always
        assigns `id`, `created_date`, `updated_date`, `created_by`, and
        `created_by_id` automatically, and ignores any of them you send. An
        empty array creates nothing and returns an empty array.


        Every record is checked before any is written. If one record doesn't
        match the entity's schema, or the entity's `rls` create rule or a
        field-level rule doesn't cover it, the call is rejected and no records
        are created.


        There's no fixed limit on how many records one call creates, but the
        whole array is written before the response comes back, so split a very
        large import into several calls.


        Each record is new, so retrying a call that already succeeded creates
        every record again. If a call fails while it's writing, some of the
        records can already be stored, so check with [List entity
        records](/api-reference/list-entity-records) before you retry.


        Unlike [Create entity record](/api-reference/create-entity-record), this
        doesn't trigger the app's webhooks, automations, or workflows.


        <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>
      operationId: bulk_create_entities_api_apps__app_id__entities__entity_name__bulk_post
      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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                additionalProperties: true
                type: object
              title: CreateEntityRecords
              description: >-
                The records to create, each a flat JSON object of the fields the
                entity's schema declares.
            example:
              - amount: 4200
                status: draft
                customer_email: jane@acme.com
              - amount: 1800
                status: draft
                customer_email: jane@acme.com
      responses:
        '200':
          description: The created 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: >-
            On some apps, a field value over 20,000 characters is rejected.
            Store large content with the UploadPublicFile integration and use
            the returned URL instead.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, the entity's `rls` create rule or
            a field-level rule doesn't cover one of the records, or your API key
            is read-only.
        '404':
          description: App not found, or the app has no entity with this name.
        '405':
          description: The entity is `User`, whose records can't be created in bulk.
        '422':
          description: >-
            The body isn't an array of JSON objects, or a record is missing a
            required field the entity's schema declares or has a value that
            doesn't match its type.
        '429':
          description: >-
            Rate limit exceeded. The base limit is 25 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>`.'

````