---
title: "Create or update a custom property for an enterprise"
method: PUT
path: "/enterprises/{enterprise}/properties/schema/{custom_property_name}"
tags: ["enterprise-admin"]
---

# Create or update a custom property for an enterprise

`PUT /enterprises/{enterprise}/properties/schema/{custom_property_name}`

Creates a new or updates an existing custom property that is defined for an enterprise.

To use this endpoint, the authenticated user must be an administrator for the enterprise.

## Path parameters

- `enterprise` string, required
- `custom_property_name` string, required

## Request body

- CustomPropertySetPayload — Custom property set payload
  - `value_type` 'string' | 'single_select' | 'multi_select' | 'true_false' | 'url', required — The type of the value for the property
  - `required` boolean — Whether the property is required.
  - `default_value` union — Default value of the property
    - string, nullable
    - string[]
  - `description` string, nullable — Short description of the property
  - `allowed_values` string[], nullable — An ordered list of the allowed values of the property. The property can have up to 200 allowed values.
  - `values_editable_by` 'org_actors' | 'org_and_repo_actors', nullable — Who can edit the values of the property
  - `require_explicit_values` boolean — Whether setting properties values is mandatory

## Response `200`

Response

- CustomProperty — Custom property defined on an organization
  - `property_name` string, required — The name of the property
  - `url` string, uri — The URL that can be used to fetch, update, or delete info about this property via the API.
  - `source_type` 'organization' | 'enterprise' — The source type of the property
  - `value_type` 'string' | 'single_select' | 'multi_select' | 'true_false' | 'url', required — The type of the value for the property
  - `required` boolean — Whether the property is required.
  - `default_value` union — Default value of the property
    - string
    - string[]
  - `description` string, nullable — Short description of the property
  - `allowed_values` string[], nullable — An ordered list of the allowed values of the property. The property can have up to 200 allowed values.
  - `values_editable_by` 'org_actors' | 'org_and_repo_actors', nullable — Who can edit the values of the property
  - `require_explicit_values` boolean — Whether setting properties values is mandatory

## Other responses

- `403` — Forbidden
- `404` — Resource not found

## Changes

- **2026-09-02** `07f1a6af5cf0` — 1 info
  - the request property `default_value/oneOf[subschema #1]/` became nullable

[Change history](https://skmtc.dev/github/apis/enterprise-cloud/changes/enterprises/:enterprise/properties/schema/:custom_property_name/put.md)

---

[API](https://skmtc.dev/github/apis/enterprise-cloud.md) · [All operations](https://skmtc.dev/github/apis/enterprise-cloud/llms.txt) · [OpenAPI document](https://skmtc.dev/github/apis/enterprise-cloud/revisions/a4865748553e?raw)
