---
title: "Update a custom field"
method: PATCH
path: "/v1/custom-fields/{id}"
tags: ["Custom Fields"]
---

# Update a custom field

`PATCH /v1/custom-fields/{id}`

Updates an existing custom field name. The `slug` is **not** modified by this operation — it remains stable for integrations. Returns 404 if the custom field is in a workspace outside the API key scope.

## Path parameters

- `id` string, required

## Request body

- PublicUpdateCustomFieldDto
  - `name` string, required — Name of the custom field

## Response `200`

The updated custom field

- PublicCustomFieldDto
  - `id` string, required
  - `name` string, required — Human-readable label. Can be renamed without breaking integrations.
  - `slug` string, required — Stable, immutable identifier derived from the name at creation time. Use this as the key when setting custom field values on a contact via POST/PATCH /contacts.
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400` — Invalid input data
- `401` — Invalid or missing API key
- `403` — Subscription required or plan not eligible
- `404` — Custom field not found or outside API key scope
- `409` — A custom field with the same name already exists

---

[API](https://skmtc.net/skipcall/apis/skipcall-public-api.md) · [All operations](https://skmtc.net/skipcall/apis/skipcall-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skipcall/skipcall-public-api/revisions/f594352719bd/schema)
