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

# Update a record

> Merge supplied values into an active record.

Merge supplied values into an active record.

Use a developer access key. See [authentication, errors, and rate limits](/api-reference/authentication).

Required scopes: `records:write`.

An archived record returns `404`; restore it before patching. A field’s accepted empty value depends on its type—do not assume null clears every field.

## Parameters

<ParamField path="recordId" type="string" required>
  Record ID in the key’s workspace.
</ParamField>

<ParamField body="values" type="object" required>
  Map writable field IDs or unambiguous slugs to values matching their field definitions. Unknown fields are rejected. Read-only fields are ignored. Discover the schema first; the example assumes a text field named `name` on `clients`. Omitted fields retain their current values.
</ParamField>

## Response

**200** — Returns the [record model](/api-reference/objects-and-records#record-response) under `data`. Example IDs and values are illustrative.

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": {
      "id": "record_example",
      "objectTypeId": "object_example",
      "title": "Northlane",
      "avatarUrl": null,
      "values": {
        "field_name": "Northlane"
      },
      "archived": false,
      "createdBy": "user_example",
      "createdAt": "2026-09-07T12:00:00.000Z",
      "updatedAt": "2026-09-07T12:00:00.000Z"
    }
  }
  ```
</ResponseExample>

<RequestExample>
  ```bash Request theme={null}
  curl --fail-with-body --silent --show-error \
    -X PATCH \
    "https://api.getkato.io/v1/records/$KATO_RECORD_ID" \
    -H "Authorization: Bearer $KATO_API_KEY" \
    -H "Content-Type: application/json" \
    --data '{
    "values": {
      "name": "Northlane"
    }
  }'
  ```
</RequestExample>

Set path-ID environment variables to values returned by your workspace before running the request.

This request changes workspace data. A timeout does not prove that the write failed; inspect the result before retrying.


## Related topics

- [Upsert a record](/api-reference/records/upsert.md)
- [Changelog](/changelog.md)
- [All endpoints](/api-reference/endpoints.md)
- [Update a task](/api-reference/tasks/update.md)
- [Update a Raycast task](/api-reference/raycast/tasks-update.md)
