REST API for organization custom properties in an enterprise
Use the REST API to manage custom properties for organizations belonging to an enterprise
Get organization custom properties schema for an enterprise
Gets all organization custom property definitions that are defined on an enterprise.
Access requirements:
- Enterprise admins
- OAuth tokens and personal access tokens (classic) with the
read:enterprisescope - Actors with the enterprise-level "read enterprise custom properties for organizations" fine-grained permission or above
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise custom properties for organizations" enterprise permissions (read)
Parameters for "Get organization custom properties schema for an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
http_status_code
| status_code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/org-properties/schemaResponse
Status: 200[
{
"property_name": "environment",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/environment",
"source_type": "enterprise",
"value_type": "single_select",
"required": true,
"default_value": "production",
"description": "Prod or dev environment",
"allowed_values": [
"production",
"development"
],
"values_editable_by": "enterprise_actors"
},
{
"property_name": "service",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/service",
"source_type": "enterprise",
"value_type": "string"
},
{
"property_name": "team",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/team",
"source_type": "enterprise",
"value_type": "string",
"description": "Team owning the organization"
}
]Create or update organization custom property definitions on an enterprise
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:enterprisescope - Actors with the enterprise-level "manage enterprise custom properties for organizations" fine-grained permission
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise custom properties for organizations" enterprise permissions (admin)
Parameters for "Create or update organization custom property definitions on an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
| Name, Type, Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
properties array of objects RequiredThe array of organization custom properties to create or update. | ||||||||||
Properties of |
| Name, Type, Description |
|---|
property_name string RequiredThe name of the property |
url string The URL that can be used to fetch, update, or delete info about this property via the API. |
source_type string The source type of the property Can be one of: |
value_type string RequiredThe type of the value for the property Can be one of: |
required boolean Whether the property is required. |
default_value null or string or array Default value of the property |
description string or null Short description of the property |
allowed_values array of strings or null An ordered list of the allowed values of the property. The property can have up to 200 allowed values. |
values_editable_by string or null Who can edit the values of the property Can be one of: |
http_status_code
| status_code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
code_samples
request_example
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/org-properties/schema \
-d '{"properties":[{"property_name":"environment","source_type":"enterprise","value_type":"single_select","required":true,"default_value":"production","description":"Prod or dev environment","allowed_values":["production","development"],"values_editable_by":"enterprise_actors"},{"property_name":"service","source_type":"enterprise","value_type":"string"},{"property_name":"team","source_type":"enterprise","value_type":"string","description":"Team owning the organization"}]}'Response
Status: 200[
{
"property_name": "environment",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/environment",
"source_type": "enterprise",
"value_type": "single_select",
"required": true,
"default_value": "production",
"description": "Prod or dev environment",
"allowed_values": [
"production",
"development"
],
"values_editable_by": "enterprise_actors"
},
{
"property_name": "service",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/service",
"source_type": "enterprise",
"value_type": "string"
},
{
"property_name": "team",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/team",
"source_type": "enterprise",
"value_type": "string",
"description": "Team owning the organization"
}
]Get an organization custom property definition from an enterprise
Gets an organization custom property definition that is defined on an enterprise.
Access requirements:
- Enterprise admins
- OAuth tokens and personal access tokens (classic) with the
read:enterprisescope - Actors with the enterprise-level "read enterprise custom properties for organizations" fine-grained permission or above
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise custom properties for organizations" enterprise permissions (read)
Parameters for "Get an organization custom property definition from an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
custom_property_name string RequiredThe custom property name |
http_status_code
| status_code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/org-properties/schema/CUSTOM_PROPERTY_NAMEResponse
Status: 200{
"property_name": "environment",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/environment",
"source_type": "enterprise",
"value_type": "single_select",
"required": true,
"default_value": "production",
"description": "Prod or dev environment",
"allowed_values": [
"production",
"development"
],
"values_editable_by": "enterprise_actors"
}Create or update an organization custom property definition on an enterprise
Creates a new or updates an existing organization custom property definition that is defined on an enterprise.
Access requirements:
- Enterprise admins
- OAuth tokens and personal access tokens (classic) with the
admin:enterprisescope - Actors with the enterprise-level "manage enterprise custom properties for organizations" fine-grained permission
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise custom properties for organizations" enterprise permissions (admin)
Parameters for "Create or update an organization custom property definition on an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
custom_property_name string RequiredThe custom property name |
| Name, Type, Description |
|---|
value_type string RequiredThe type of the value for the property. Can be one of: |
required boolean Whether the property is required. |
default_value null or string or array Default value of the property. |
description string or null Short description of the property. |
allowed_values array of strings or null An ordered list of the allowed values of the property. The property can have up to 200 allowed values. |
values_editable_by string or null Who can edit the values of the property. Can be one of: |
http_status_code
| status_code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
code_samples
request_example
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/org-properties/schema/CUSTOM_PROPERTY_NAME \
-d '{"value_type":"single_select","required":true,"default_value":"production","description":"Prod or dev environment","allowed_values":["production","development"]}'Response
Status: 200{
"property_name": "environment",
"url": "https://HOSTNAME/enterprises/github/org-properties/schema/environment",
"source_type": "enterprise",
"value_type": "single_select",
"required": true,
"default_value": "production",
"description": "Prod or dev environment",
"allowed_values": [
"production",
"development"
],
"values_editable_by": "enterprise_actors"
}Remove an organization custom property definition from an enterprise
Removes an organization custom property definition that is defined on an enterprise.
Access requirements:
- Enterprise admins
- OAuth tokens and personal access tokens (classic) with the
admin:enterprisescope - Actors with the enterprise-level "manage enterprise custom properties for organizations" fine-grained permission
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise custom properties for organizations" enterprise permissions (admin)
Parameters for "Remove an organization custom property definition from an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
custom_property_name string RequiredThe custom property name |
http_status_code
| status_code | Description |
|---|---|
204 | A header with no content is returned. |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
code_samples
request_example
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/org-properties/schema/CUSTOM_PROPERTY_NAMEA header with no content is returned.
Status: 204List custom property values for organizations in an enterprise
Lists enterprise organizations with all of their custom property values.
Access requirements:
- Enterprise admins
- OAuth tokens and personal access tokens (classic) with the
read:enterprisescope - Actors with the enterprise-level "read enterprise custom properties for organizations" fine-grained permission or above
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise custom properties for organizations" enterprise permissions (read)
Parameters for "List custom property values for organizations in an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
| Name, Type, Description |
|---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
http_status_code
| status_code | Description |
|---|---|
200 | OK |
403 | Forbidden |
404 | Resource not found |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/org-properties/valuesResponse
Status: 200[
{
"organization_id": 1296269,
"organization_login": "Hello-World",
"properties": [
{
"property_name": "environment",
"value": "production"
},
{
"property_name": "service",
"value": "web"
},
{
"property_name": "team",
"value": "octocat"
}
]
}
]Create or update custom property values for organizations in an enterprise
Create or update custom property values for organizations in an enterprise.
To remove a custom property value from an organization, set the property value to null.
Access requirements:
- Enterprise admins
- OAuth tokens and personal access tokens (classic) with the
admin:enterprisescope - Actors with the enterprise-level "edit enterprise custom properties for organizations" fine-grained permission or above
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Enterprise custom properties for organizations" enterprise permissions (write)
Parameters for "Create or update custom property values for organizations in an enterprise"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
enterprise string RequiredThe slug version of the enterprise name. |
| Name, Type, Description | |||
|---|---|---|---|
organization_logins array of strings RequiredThe names of organizations that the custom property values will be applied to. | |||
properties array of objects RequiredList of custom property names and associated values to apply to the organizations. | |||
Properties of |
| Name, Type, Description |
|---|
property_name string RequiredThe name of the property |
value null or string or array RequiredThe value assigned to the property |
http_status_code
| status_code | Description |
|---|---|
204 | No Content when custom property values are successfully created or updated |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
code_samples
request_example
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/org-properties/values \
-d '{"organization_logins":["acme","github"],"properties":[{"property_name":"environment","value":"production"},{"property_name":"service","value":"web"},{"property_name":"team","value":"octocat"}]}'No Content when custom property values are successfully created or updated
Status: 204