> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create records

> Create one or multiple records with support for field value typecast and custom record ordering.



## OpenAPI

````yaml /swagger.json post /table/{tableId}/record
openapi: 3.0.0
info:
  version: 1.0.0
  title: Teable App
  description: Manage Data as easy as drink a cup of tea
  x-logo:
    backgroundColor: '#F0F0F0'
    altText: Teable logo
servers:
  - url: https://app.teable.ai/api
security: []
paths:
  /table/{tableId}/record:
    post:
      tags:
        - record
      summary: Create records
      description: >-
        Create one or multiple records with support for field value typecast and
        custom record ordering.
      parameters:
        - schema:
            type: string
          required: true
          name: tableId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                fieldKeyType:
                  type: string
                  enum:
                    - id
                    - name
                    - dbFieldName
                  default: name
                  description: >-
                    Define the key type of record.fields[key], You can click
                    "systemInfo" in the field edit box to get fieldId or enter
                    the table design screen with all the field details
                typecast:
                  type: boolean
                  description: >-
                    Automatic data conversion from cellValues if the typecast
                    parameter is passed in. Automatic conversion is disabled by
                    default to ensure data integrity, but it may be helpful for
                    integrating with 3rd party data sources.
                order:
                  type: object
                  properties:
                    viewId:
                      type: string
                      description: >-
                        You can only specify order in one view when create
                        record (will create a order index automatically)
                    anchorId:
                      type: string
                      description: The record id to anchor to
                    position:
                      type: string
                      enum:
                        - before
                        - after
                  required:
                    - viewId
                    - anchorId
                    - position
                  description: Where this record to insert to (Optional)
                records:
                  type: array
                  items:
                    type: object
                    properties:
                      fields:
                        type: object
                        additionalProperties:
                          nullable: true
                        description: >-
                          Objects with a fields key mapping fieldId or field
                          name to value for that field.
                    required:
                      - fields
                  example:
                    - fields:
                        single line text: text value
                  description: 'Array of record objects '
              required:
                - records
              description: Multiple Create records
      responses:
        '201':
          description: Returns data about the records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  records:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The record id.
                        name:
                          type: string
                          description: primary field value
                        fields:
                          type: object
                          additionalProperties:
                            nullable: true
                          description: >-
                            Objects with a fields key mapping fieldId or field
                            name to value for that field.
                        autoNumber:
                          type: number
                          description: Auto number, a unique identifier for each record
                        createdTime:
                          type: string
                          description: >-
                            Created time, date ISO string (new
                            Date().toISOString).
                        lastModifiedTime:
                          type: string
                          description: >-
                            Last modified time, date ISO string (new
                            Date().toISOString).
                        createdBy:
                          type: string
                          description: Created by, user name
                        lastModifiedBy:
                          type: string
                          description: Last modified by, user name
                        permissions:
                          type: object
                          additionalProperties:
                            type: object
                            additionalProperties:
                              type: boolean
                          description: Permissions for the record
                        undeletable:
                          type: boolean
                          description: Whether the record is undeletable
                      required:
                        - id
                        - fields
                    example:
                      - id: recXXXXXXX
                        fields:
                          single line text: text value
                    description: 'Array of record objects '
                required:
                  - records
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url https://app.teable.ai/api/table/%7BtableId%7D/record \
              --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
              --header 'content-type: application/json' \
              --data '{"fieldKeyType":"id","typecast":true,"order":{"viewId":"string","anchorId":"string","position":"before"},"records":[{"fields":{"single line text":"text value"}}]}'
        - lang: JavaScript
          source: |-
            const url = 'https://app.teable.ai/api/table/%7BtableId%7D/record';
            const options = {
              method: 'POST',
              headers: {
                Authorization: 'Bearer REPLACE_BEARER_TOKEN',
                'content-type': 'application/json'
              },
              body: '{"fieldKeyType":"id","typecast":true,"order":{"viewId":"string","anchorId":"string","position":"before"},"records":[{"fields":{"single line text":"text value"}}]}'
            };

            try {
              const response = await fetch(url, options);
              const data = await response.json();
              console.log(data);
            } catch (error) {
              console.error(error);
            }
        - lang: Node.js
          source: |-
            const http = require('https');

            const options = {
              method: 'POST',
              hostname: 'app.teable.ai',
              port: null,
              path: '/api/table/%7BtableId%7D/record',
              headers: {
                Authorization: 'Bearer REPLACE_BEARER_TOKEN',
                'content-type': 'application/json'
              }
            };

            const req = http.request(options, function (res) {
              const chunks = [];

              res.on('data', function (chunk) {
                chunks.push(chunk);
              });

              res.on('end', function () {
                const body = Buffer.concat(chunks);
                console.log(body.toString());
              });
            });

            req.write(JSON.stringify({
              fieldKeyType: 'id',
              typecast: true,
              order: {viewId: 'string', anchorId: 'string', position: 'before'},
              records: [{fields: {'single line text': 'text value'}}]
            }));
            req.end();
        - lang: Python
          source: >-
            import http.client


            conn = http.client.HTTPSConnection("app.teable.ai")


            payload =
            "{\"fieldKeyType\":\"id\",\"typecast\":true,\"order\":{\"viewId\":\"string\",\"anchorId\":\"string\",\"position\":\"before\"},\"records\":[{\"fields\":{\"single
            line text\":\"text value\"}}]}"


            headers = {
                'Authorization': "Bearer REPLACE_BEARER_TOKEN",
                'content-type': "application/json"
            }


            conn.request("POST", "/api/table/%7BtableId%7D/record", payload,
            headers)


            res = conn.getresponse()

            data = res.read()


            print(data.decode("utf-8"))
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````