---
title: "Create or update organization custom property definitions on an enterprise"
method: PATCH
path: "/enterprises/{enterprise}/org-properties/schema"
tags: ["enterprise-admin"]
---

# Create or update organization custom property definitions on an enterprise

`PATCH /enterprises/{enterprise}/org-properties/schema`

Creates new or updates existing organization custom properties defined on an enterprise in a batch.

If the property already exists, the existing property will be replaced with the new values.
Missing optional values will fall back to default values, previous values will be overwritten.

Access requirements:
- Enterprise admins
- OAuth tokens and personal access tokens (classic) with the `admin:enterprise` scope
- Actors with the enterprise-level "manage enterprise custom properties for organizations" fine-grained permission

## Path parameters

- `enterprise` string, required

## Request body

- object
  - `properties` OrganizationCustomProperty[], required — The array of organization custom properties to create or update.
    - `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` 'enterprise_actors' | 'enterprise_and_org_actors', nullable — Who can edit the values of the property

## Response `200`

Response

- OrganizationCustomProperty[]
  - `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` 'enterprise_actors' | 'enterprise_and_org_actors', nullable — Who can edit the values of the property

## Other responses

- `403` — Forbidden
- `404` — Resource not found
- `422` — Validation failed, or the endpoint has been spammed.

---

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