---
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
    - 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

---

[API](https://skmtc.net/github/apis/github-v3-rest-api-2.md) · [All operations](https://skmtc.net/github/apis/github-v3-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/github/github-v3-rest-api-2/versions/8ae6d0c8716e/schema)
