---
title: "Bulk update contact fields"
method: POST
path: "/v1/contacts/fields/bulk/update"
tags: ["CRM"]
---

# Bulk update contact fields

`POST /v1/contacts/fields/bulk/update`

Updates contact field definitions in bulk. Identify each field by `id` or `property_name`. `property_name` is a stable identifier and cannot be renamed; if you include it with `id`, it must match the stored field `property_name` exactly.

## Request body

- FieldUpdateInput[]
  - `id` string, uuid
  - `attribute_id` string, uuid — Alias for `id` when updating pipeline fields.
  - `property_name` string — Stable field identifier. This value cannot be changed by update APIs. If supplied with `id` or `attribute_id`, it must match the stored field `property_name` exactly.
  - `name` string — New display name.
  - `current_name` string — New display name.
  - `attribute_type` 'string' | 'number' | 'checkbox' | 'date' | 'date_range' | 'rating' | 'timestamp' | 'select' | 'multi_select' | 'currency' | 'percentage' | 'location' | 'time' | 'datetime' | 'email' | 'phone' | 'website' | 'url' | 'radio' | 'team_members'
  - `metadata` object, nullable
  - `order` integer, nullable
  - `is_hidden` boolean

## Response `200`

Contact fields were updated.

- ApiResponse
  - `success` boolean
  - `message` string
  - `data` unknown

## Other responses

- `400` — The request failed validation.
- `401` — The API key is missing, invalid, or not allowed to access this route.
- `429` — The route rate limit was exceeded.

---

[API](https://skmtc.net/octolane-org/apis/octolane-public-api.md) · [All operations](https://skmtc.net/octolane-org/apis/octolane-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/octolane-org/octolane-public-api/versions/8c7700f1eeec/schema)
