---
title: "Update a custom object record"
method: PATCH
path: "/custom-object-records/{recordId}"
tags: ["Settings"]
---

# Update a custom object record

`PATCH /custom-object-records/{recordId}`

## Request

- Base URL: `https://api.cavuno.com/v1`
- URL: `https://api.cavuno.com/v1/custom-object-records/{recordId}`
- Auth: HTTP bearer

Updates a record. Omitted fields are preserved; null clears logoUrl or externalId; supplied values replace all stored values; archived toggles archive or restore. Requires `settings.manage`.

## Path parameters

- `recordId` string, required

## Request body

- UpdateCustomObjectRecordBody
  - `name` string
  - `slug` string: URL-safe identifier, unique within the collection. Changing it keeps the previous value reserved. Lowercase letters, numbers and single hyphens. Another record's current or previous slug is rejected with 400.
  - `logoUrl` string, uri, nullable: Deprecated: use the collection's logo image field (`logoFieldKey` on the type). A legacy logo URL stored on older records.
  - `externalId` string, nullable
  - `values` object
  - `archived` boolean

## Response `200`

Updated catalog record.

- CustomObjectRecord
  - `id` string, required
  - `object` 'custom_object_record', required
  - `typeId` string, required
  - `name` string, required
  - `slug` string, nullable, required: URL-safe identifier, unique within the collection. Changing it keeps the previous value reserved. Generated from the name on create; renaming keeps it. Null only on records saved before slugs existed.
  - `logoUrl` string, uri, nullable, required: Deprecated: use the collection's logo image field (`logoFieldKey` on the type). A legacy logo URL stored on older records.
  - `externalId` string, nullable, required
  - `values` object, required
  - `archived` boolean, required
  - `createdAt` string, date-time, required

## Other responses

- `400`: Request validation failed.
- `404`: Catalog resource not found.
- `409`: A key, external ID, or catalog capacity conflicts.
- `422`: A field type is immutable or a removed field is still in use.

## Changes

- **2026-10-19** `c34152c38176`: 4 info
  - added the optional property `error/upgrade` to the response with the `400` status
  - added the optional property `error/upgrade` to the response with the `404` status
  - added the optional property `error/upgrade` to the response with the `409` status
  - added the optional property `error/upgrade` to the response with the `422` status

[Operation history](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/changes/custom-object-records/:recordId/patch.md)

---

[API](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api.md) · [All operations](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cavuno/apis/cavuno-v1-rest-api/revisions/d5974dabff14?raw)
