---
title: "Update Custom Property"
method: POST
path: "/properties/{property_id}"
tags: ["custom properties"]
---

# Update Custom Property

`POST /properties/{property_id}`

This endpoint updates the name, section or mandatory flag of a custom property

Provide any combination of the three fields - at least one is required. If the section does not exist yet, it is created automatically

Options for dropdown and picklist properties are managed separately via the Update Property Options endpoint

_`mandatory` is supported only for ticket properties. Passing `mandatory: true` for a chat property returns a validation error_

_If the same property name exists under both chat and ticket, pass the `type` query parameter to specify which one to update. Without it, the request is rejected as ambiguous_

## Path parameters

- `property_id` string, required

## Query parameters

- `type` 'chat' | 'ticket'

## Request body

- object
  - `name` string — - The new name of the property - Must be unique within its type
  - `section` string — - The name of the section to move the property to - Created automatically if it does not exist
  - `mandatory` boolean — - Whether the property is mandatory - Supported only for ticket properties; rejected for chat properties

## Response `200`

200 OK

- object
  - `success` boolean
  - `message` string
  - `data` object
    - `property_id` string — The unique identifier of the property
    - `property_name` string — The name of the property
    - `type` 'chat' | 'ticket' — The type the property belongs to
    - `kind` string — The value kind of the property - text, date, file, dropdown or picklist
    - `mandatory` boolean — Whether the property is mandatory. Applicable to ticket properties only
    - `section_id` string, nullable — The id of the section the property belongs to, or null if it is not in a section
    - `section_name` string, nullable — The name of the section the property belongs to, or null if it is not in a section
    - `options` object[] — The current option list. Present only for dropdown and picklist kinds
      - `id` string
      - `label` string
    - `created_at` string — When the property was created

## Other responses

- `404` — No matching property
- `409` — New name already exists for this type
- `422` — Ambiguous name with no type given

---

[API](https://skmtc.net/periskope/apis/api-local.md) · [All operations](https://skmtc.net/periskope/apis/api-local/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/periskope/api-local/versions/f2738ced87d8/schema)
