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

# Actualizar un Registro

### Ruta

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

### Solicitud

#### Parámetros de ruta

* tableId (string): El identificador único de la Tabla [(cómo obtenerlo)](/es/api-doc/get-id#tableid).
* recordId (string): El identificador único del Registro que se actualizará [(cómo obtenerlo)](/es/api-doc/get-id#recordid).

#### Cuerpo de la solicitud

* **record (obligatorio)**
  * Descripción: Los datos del Registro que se actualizarán
  * Tipo: Objeto
  * Ejemplo:
    ```json theme={null}
    {
      "fields": {
        "Name": "John Doe",
        "Age": 31,
        "Email": "john.doe@example.com"
      }
    }
    ```
  * Nota: El objeto `fields` contiene los nombres de los Campos y sus nuevos valores correspondientes. Cada tipo de Campo tiene una estructura de valores diferente; consulta [Tipos de valores de Campo de Registro](/es/api-doc/record/interface) para obtener más información.

Para borrar el valor de un Campo, pasa `null` explícitamente. Si no se incluye el nombre de un Campo, no se actualizará dicho Campo.

* **fieldKeyType (opcional)**
  * Descripción: Especifica el tipo de clave del Campo
  * Tipo: Cadena
  * Valores posibles:
    * "name": Usa el nombre del Campo como clave
    * "id": Usa el ID del Campo como clave
    * "dbFieldName": Usa el dbFieldName del Campo como clave
  * Ejemplo: `"name"` o `"id"` o `"dbFieldName"`
  * Nota: Si no se especifica, se usa de forma predeterminada el nombre del Campo como clave.
  * Uso:
    * Cuando se establece en "name":
      ```json theme={null}
      {
        "fields": {
          "Name": "John Doe",
          "Age": 30
        }
      }
      ```
    * Cuando se establece en "id":
      ```json theme={null}
      {
        "fields": {
          "fldABCDEFGHIJKLMN": "John Doe",
          "fldOPQRSTUVWXYZ12": 30
        }
      }
      ```
* **typecast (opcional)**
  * Descripción: Indica si se deben convertir automáticamente los tipos de valores de Campo. De forma predeterminada, se aplica una validación estricta que exige que los valores de entrada coincidan con el tipo de datos del Campo actual. Si se habilita, el sistema intentará realizar la conversión automática.
  * Tipo: Booleano
  * Valores posibles: true o false
  * Ejemplo: `true`
  * Nota: Si se establece en true, el sistema intentará convertir los valores de entrada al tipo de valor de Campo correcto.
  * Ejemplos de uso:
    * Campo de enlace: Puede usarse directamente el texto de la clave principal para crear el enlace
      ```json theme={null}
      {
        "User table": "John Smith"
      }
      ```
    * Campo de fecha: Pueden usarse cadenas de fecha con un formato no estándar
      ```json theme={null}
      {
        "Date": "2023-05-15"
      }
      ```
    * Campo de usuario: Puede usarse directamente el nombre de usuario
      ```json theme={null}
      {
        "Assigned To": "John Doe"
      }
      ```

Para cargar nuevos archivos en Campos de archivos adjuntos, consulta la sección [Cargar archivo adjunto](/es/api-doc/record/upload-attachment).

* **order (opcional)**
  * Descripción: Después de actualizar el Registro, lo mueve a una posición determinada en una Vista concreta.
  * Tipo: Objeto
  * Propiedades:
    * viewId: ID de la Vista
    * anchorId: ID del Registro de anclaje
    * position: Posición con respecto al Registro de anclaje. Valores posibles: `"before"` o `"after"`
  * Ejemplo:
    ```json theme={null}
    {
      "viewId": "viwABCDEFGHIJKLMN",
      "anchorId": "rec123456789ABCDE",
      "position": "after"
    }
    ```

### Respuesta

#### Respuesta correcta

* Código de estado: 200 Correcto
* Cuerpo de la respuesta: Devuelve los datos del Registro actualizado.

**Ejemplo del cuerpo de la respuesta**

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

#### Respuestas de error

* Código de estado: 400 Solicitud incorrecta: Error en el formato del cuerpo de la solicitud o faltan Campos obligatorios.
* Código de estado: 404 No encontrado: El tableId o recordId especificado no existe.

#### Código de ejemplo

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