---
title: "Create Table Records"
method: POST
path: "/api/v3/data/{baseId}/{tableId}/records"
tags: ["Table Records"]
---

# Create Table Records

`POST /api/v3/data/{baseId}/{tableId}/records`

## Request

- Base URL: `https://app.nocodb.com`
- URL: `https://app.nocodb.com/api/v3/data/{baseId}/{tableId}/records`
- Auth: one of:
  - API key in header `xc-token`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/nocodb/apis/nocodb-v3/docs/api/v3/data/:baseId/:tableId/records/post.ts> (a function with typed inputs; its response is checked against the schema)

Create one or more records. Send a single object or an array; the array length is capped per deployment (10 by default) and a longer request answers `422`.

Link fields accept the related record's id. Attachment fields replace the whole cell, so send any existing files alongside new ones. See [the NocoDB docs](https://docs.nocodb.com) for field value formats.

## Query parameters

- `view_id` string
- `linksAsLtar` 'true'
- `fieldIdOnResult` 'true'

## Headers

- `xc-token` string, required

## Request body

- union
  - DataInsertRequestV3: V3 Data Insert Request format
    - `fields` object, required: Record fields data
  - DataInsertRequestV3[]: Up to 10 records per request by default; the cap is configured per deployment and exceeding it returns 422. Records are created in the order given.
    - `fields` object, required: Record fields data

## Response `200`

OK

- DataInsertResponseV3: V3 Data Insert Response format
  - `records` DataRecordV3[], required: Array of created records
    - `id` union, required: Record identifier (primary key value)
      - string
      - number
    - `id_fields` object: Individual primary key field values as object
    - `fields` object: Record fields data, excluding the primary key. Always present; an empty object when the record has no other fields.
    - `field_errors` string[]: Fields whose value could not be computed because the field is broken (e.g. a lookup through a deleted link). Their value in `fields` is null.
  - `warnings` string[]: Present when part of the write was not applied, e.g. computed fields named in the payload.
  - `ignored_fields` string[]: Titles of computed fields (Formula, Lookup, Rollup, ...) named in the payload. Their values are calculated, so they were not written.

## Other responses

- `400`: BadRequest
- `422`: Unprocessable Entity — more records than the deployment's bulk cap (`ERR_MAX_PAYLOAD_LIMIT_EXCEEDED`), a value that is not valid for its field's type, or a malformed composite record id. A link id matching no row answers `404`; a property outside `fields` answers `400`; unrecognised keys inside `fields` are ignored.

## Changes

- **2026-10-13** `2ba4267a99d7`: 7 info
  - added the new optional `query` request parameter `fieldIdOnResult`
  - added the new optional `query` request parameter `linksAsLtar`
  - added the new optional `query` request parameter `view_id`
  - added the non-success response with the status `422`
  - …3 more

[Operation history](https://skmtc.dev/nocodb/apis/nocodb-v3/changes/api/v3/data/:baseId/:tableId/records/post.md)

---

[API](https://skmtc.dev/nocodb/apis/nocodb-v3.md) - [All operations](https://skmtc.dev/nocodb/apis/nocodb-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/nocodb/apis/nocodb-v3/revisions/62a735aaf849?raw)
