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

# Update record

> Update a single record by its ID with support for field value typecast and record reordering.



## OpenAPI

````yaml /swagger.json patch /table/{tableId}/record/{recordId}
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/{recordId}:
    patch:
      tags:
        - record
      summary: Update record
      description: >-
        Update a single record by its ID with support for field value typecast
        and record reordering.
      parameters:
        - schema:
            type: string
          required: true
          name: tableId
          in: path
        - schema:
            type: string
          required: true
          name: recordId
          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.
                record:
                  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
                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)
              required:
                - record
              description: Update record by id
      responses:
        '200':
          description: Returns record data after update.
          content:
            application/json:
              schema:
                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
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PATCH \
              --url https://app.teable.ai/api/table/%7BtableId%7D/record/%7BrecordId%7D \
              --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
              --header 'content-type: application/json' \
              --data '{"fieldKeyType":"id","typecast":true,"record":{"fields":{"property1":null,"property2":null}},"order":{"viewId":"string","anchorId":"string","position":"before"}}'
        - lang: JavaScript
          source: >-
            const url =
            'https://app.teable.ai/api/table/%7BtableId%7D/record/%7BrecordId%7D';

            const options = {
              method: 'PATCH',
              headers: {
                Authorization: 'Bearer REPLACE_BEARER_TOKEN',
                'content-type': 'application/json'
              },
              body: '{"fieldKeyType":"id","typecast":true,"record":{"fields":{"property1":null,"property2":null}},"order":{"viewId":"string","anchorId":"string","position":"before"}}'
            };


            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: 'PATCH',
              hostname: 'app.teable.ai',
              port: null,
              path: '/api/table/%7BtableId%7D/record/%7BrecordId%7D',
              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,
              record: {fields: {property1: null, property2: null}},
              order: {viewId: 'string', anchorId: 'string', position: 'before'}
            }));
            req.end();
        - lang: Python
          source: >-
            import http.client


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


            payload =
            "{\"fieldKeyType\":\"id\",\"typecast\":true,\"record\":{\"fields\":{\"property1\":null,\"property2\":null}},\"order\":{\"viewId\":\"string\",\"anchorId\":\"string\",\"position\":\"before\"}}"


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


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


            res = conn.getresponse()

            data = res.read()


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

````