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

# Оновлення Запису

### Шлях

PATCH /api/table/\{tableId}/record/\{recordId}

### Запит

#### Параметри шляху

* tableId (string): Унікальний ідентифікатор Таблиці [(як знайти)](/uk/api-doc/get-id#tableid).
* recordId (string): Унікальний ідентифікатор Запису, який потрібно оновити [(як знайти)](/uk/api-doc/get-id#recordid).

#### Тіло запиту

* **record (обов’язковий)**
  * Опис: дані Запису, які потрібно оновити
  * Тип: об’єкт
  * Приклад:
    ```json theme={null}
    {
      "fields": {
        "Name": "John Doe",
        "Age": 31,
        "Email": "john.doe@example.com"
      }
    }
    ```
  * Примітка: об’єкт `fields` містить назви Полів і відповідні нові значення. Кожен тип Поля має власну структуру значення. Докладніше див. у розділі [Типи значень Полів Запису](/uk/api-doc/record/interface).

Щоб очистити значення Поля, явно передайте `null`. Якщо назву Поля не вказано, це Поле не оновлюватиметься.

* **fieldKeyType (необов’язковий)**
  * Опис: визначає тип ключа Поля
  * Тип: рядок
  * Можливі значення:
    * "name": використовувати назву Поля як ключ
    * "id": використовувати ідентифікатор Поля як ключ
    * "dbFieldName": використовувати dbFieldName Поля як ключ
  * Приклад: `"name"` або `"id"` або `"dbFieldName"`
  * Примітка: якщо значення не вказано, за замовчуванням як ключ використовується назва Поля.
  * Використання:
    * Якщо встановлено значення "name":
      ```json theme={null}
      {
        "fields": {
          "Name": "John Doe",
          "Age": 30
        }
      }
      ```
    * Якщо встановлено значення "id":
      ```json theme={null}
      {
        "fields": {
          "fldABCDEFGHIJKLMN": "John Doe",
          "fldOPQRSTUVWXYZ12": 30
        }
      }
      ```
* **typecast (необов’язковий)**
  * Опис: чи потрібно автоматично перетворювати типи значень Полів. За замовчуванням застосовується сувора перевірка, яка вимагає, щоб вхідні значення відповідали поточному типу даних Поля. Якщо цей параметр увімкнено, система спробує виконати автоматичне перетворення.
  * Тип: логічний
  * Можливі значення: true або false
  * Приклад: `true`
  * Примітка: якщо встановлено значення true, система спробує перетворити вхідні значення на правильний тип значення Поля.
  * Приклади використання:
    * Поле зв’язку: для створення зв’язку можна безпосередньо використовувати текст первинного ключа
      ```json theme={null}
      {
        "User table": "John Smith"
      }
      ```
    * Поле дати: можна використовувати рядки дат у нестандартному форматі
      ```json theme={null}
      {
        "Date": "2023-05-15"
      }
      ```
    * Поле користувача: можна безпосередньо використовувати ім’я користувача
      ```json theme={null}
      {
        "Assigned To": "John Doe"
      }
      ```

Щоб завантажити нові файли в Поля вкладень, див. розділ [Завантаження вкладення](/uk/api-doc/record/upload-attachment).

* **order (необов’язковий)**
  * Опис: після оновлення перемістити Запис у вказану позицію в указаному Перегляді.
  * Тип: об’єкт
  * Властивості:
    * viewId: ідентифікатор Перегляду
    * anchorId: ідентифікатор опорного Запису
    * position: позиція відносно опорного Запису. Можливі значення: `"before"` або `"after"`
  * Приклад:
    ```json theme={null}
    {
      "viewId": "viwABCDEFGHIJKLMN",
      "anchorId": "rec123456789ABCDE",
      "position": "after"
    }
    ```

### Відповідь

#### Успішна відповідь

* Код стану: 200 OK
* Тіло відповіді: повертає дані оновленого Запису.

**Приклад тіла відповіді**

```json theme={null}
{
    "id": "rec123456789ABCDE",
    "fields": {
        "Name": "John Doe",
        "Age": 31,
        "Email": "john.doe@example.com"
    }
}
```

#### Відповіді з помилками

* Код стану: 400 Bad Request: неправильний формат тіла запиту або відсутні обов’язкові Поля.
* Код стану: 404 Not Found: указаний tableId або recordId не існує.

#### Приклад коду

<CodeGroup>
  ```bash CURL theme={null}
  curl -X PATCH 'https://app.teable.ai/api/table/__tableId__/record/__recordId__' \
    -H 'Authorization: Bearer __token__' \
    -H 'Content-Type: application/json' \
    -d '{
      "record": {
        "fields": {
          "Name": "John Doe",
          "Age": 31
        }
      }
    }'
  ```

  ```js JS SDK theme={null}
  import { configApi, updateRecord } from '@teable/openapi';

  configApi({
    endpoint: 'https://app.teable.ai',
    token,
  });

  const response = await updateRecord('__tableId__', '__recordId__', {
    record: {
      fields: {
        Name: 'John Doe',
        Age: 31
      }
    }
  });

  console.log(response.data);
  ```

  ```ts TypeScript theme={null}
  const response = await fetch('https://app.teable.ai/api/table/__tableId__/record/__recordId__', {
    method: 'PATCH',
    headers: {
      'Authorization': 'Bearer __token__',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      record: {
        fields: {
          Name: 'John Doe',
          Age: 31
        }
      }
    })
  });

  console.log(await response.json());
  ```

  ```python Python theme={null}
  import requests

  response = requests.patch(
      'https://app.teable.ai/api/table/__tableId__/record/__recordId__',
      headers={
          'Authorization': 'Bearer __token__',
          'Content-Type': 'application/json'
      },
      json={
          'record': {
              'fields': {
                  'Name': 'John Doe',
                  'Age': 31
              }
          }
      }
  )

  print(response.json())
  ```
</CodeGroup>
