Custom properties
Use the REST API to manage custom properties for your enterprise.
Get custom properties for an enterprise
Gets all custom properties defined for an enterprise. Enterprise members can read these properties.
Fine-grained access tokens for "Get custom properties for an enterprise"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Custom properties" enterprise permissions (read)
Parameters for "Get custom properties for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
HTTP response status codes for "Get custom properties for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Get custom properties for an enterprise"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schemaResponse
Status: 200[
  {
    "property_name": "environment",
    "url": "http://HOSTNAME/orgs/github/properties/schema/environment",
    "source_type": "organization",
    "value_type": "single_select",
    "required": true,
    "default_value": "production",
    "description": "Prod or dev environment",
    "allowed_values": [
      "production",
      "development"
    ],
    "values_editable_by": "org_actors"
  },
  {
    "property_name": "service",
    "url": "http://HOSTNAME/orgs/github/properties/schema/service",
    "source_type": "organization",
    "value_type": "string"
  },
  {
    "property_name": "team",
    "url": "http://HOSTNAME/orgs/github/properties/schema/team",
    "source_type": "organization",
    "value_type": "string",
    "description": "Team owning the repository"
  }
]Create or update custom properties for an enterprise
Creates new or updates existing custom properties defined for 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.
E.g. if a property exists with values_editable_by: org_and_repo_actors and it's updated without specifying values_editable_by, it will be updated to default value org_actors.
To use this endpoint, the authenticated user must be an administrator for the enterprise.
Fine-grained access tokens for "Create or update custom properties for an enterprise"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Custom properties" enterprise permissions (write)
Parameters for "Create or update custom properties for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| propertiesarray of objects RequiredThe array of custom properties to create or update. | ||||||||||
| Properties of  | 
| Name, Type, Description | 
|---|
| property_namestring RequiredThe name of the property | 
| urlstringThe URL that can be used to fetch, update, or delete info about this property via the API. | 
| source_typestringThe source type of the property Can be one of:  | 
| value_typestring RequiredThe type of the value for the property Can be one of:  | 
| requiredbooleanWhether the property is required. | 
| default_valuenull or string or arrayDefault value of the property | 
| descriptionstring or nullShort description of the property | 
| allowed_valuesarray of strings or nullAn ordered list of the allowed values of the property. The property can have up to 200 allowed values. | 
| values_editable_bystring or nullWho can edit the values of the property Can be one of:  | 
HTTP response status codes for "Create or update custom properties for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Create or update custom properties for an enterprise"
Request example
curl -L \
  -X PATCH \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema \
  -d '{"properties":[{"property_name":"environment","value_type":"single_select","required":true,"default_value":"production","description":"Prod or dev environment","allowed_values":["production","development"],"values_editable_by":"org_actors"},{"property_name":"service","value_type":"string"},{"property_name":"team","value_type":"string","description":"Team owning the repository"}]}'Response
Status: 200[
  {
    "property_name": "environment",
    "url": "http://HOSTNAME/orgs/github/properties/schema/environment",
    "source_type": "organization",
    "value_type": "single_select",
    "required": true,
    "default_value": "production",
    "description": "Prod or dev environment",
    "allowed_values": [
      "production",
      "development"
    ],
    "values_editable_by": "org_actors"
  },
  {
    "property_name": "service",
    "url": "http://HOSTNAME/orgs/github/properties/schema/service",
    "source_type": "organization",
    "value_type": "string"
  },
  {
    "property_name": "team",
    "url": "http://HOSTNAME/orgs/github/properties/schema/team",
    "source_type": "organization",
    "value_type": "string",
    "description": "Team owning the repository"
  }
]Promote a custom property to an enterprise
Promotes an existing organization custom property to an enterprise.
To use this endpoint, the authenticated user must be an administrator for the enterprise.
Fine-grained access tokens for "Promote a custom property to an enterprise"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Custom properties" enterprise permissions (write)
Parameters for "Promote a custom property to an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| custom_property_namestring RequiredThe custom property name | 
HTTP response status codes for "Promote a custom property to an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Promote a custom property to an enterprise"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema/organizations/ORG/CUSTOM_PROPERTY_NAME/promoteResponse
Status: 200{
  "property_name": "environment",
  "url": "http://HOSTNAME/orgs/github/properties/schema/environment",
  "source_type": "organization",
  "value_type": "single_select",
  "required": true,
  "default_value": "production",
  "description": "Prod or dev environment",
  "allowed_values": [
    "production",
    "development"
  ]
}Get a custom property for an enterprise
Gets a custom property that is defined for an enterprise. Enterprise members can read these properties.
Fine-grained access tokens for "Get a custom property for an enterprise"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Custom properties" enterprise permissions (read)
Parameters for "Get a custom property for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| custom_property_namestring RequiredThe custom property name | 
HTTP response status codes for "Get a custom property for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Get a custom property for an enterprise"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema/CUSTOM_PROPERTY_NAMEResponse
Status: 200{
  "property_name": "environment",
  "url": "http://HOSTNAME/orgs/github/properties/schema/environment",
  "source_type": "organization",
  "value_type": "single_select",
  "required": true,
  "default_value": "production",
  "description": "Prod or dev environment",
  "allowed_values": [
    "production",
    "development"
  ]
}Create or update a custom property for an enterprise
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.
Fine-grained access tokens for "Create or update a custom property for an enterprise"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Custom properties" enterprise permissions (write)
Parameters for "Create or update a custom property for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| custom_property_namestring RequiredThe custom property name | 
| Name, Type, Description | 
|---|
| value_typestring RequiredThe type of the value for the property Can be one of:  | 
| requiredbooleanWhether the property is required. | 
| default_valuenull or string or arrayDefault value of the property | 
| descriptionstring or nullShort description of the property | 
| allowed_valuesarray of strings or nullAn ordered list of the allowed values of the property. The property can have up to 200 allowed values. | 
| values_editable_bystring or nullWho can edit the values of the property Can be one of:  | 
HTTP response status codes for "Create or update a custom property for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Create or update a custom property for an enterprise"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/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": "http://HOSTNAME/orgs/github/properties/schema/environment",
  "source_type": "organization",
  "value_type": "single_select",
  "required": true,
  "default_value": "production",
  "description": "Prod or dev environment",
  "allowed_values": [
    "production",
    "development"
  ]
}Remove a custom property for an enterprise
Remove a custom property that is defined for an enterprise.
To use this endpoint, the authenticated user must be an administrator for the enterprise.
Fine-grained access tokens for "Remove a custom property for an enterprise"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Custom properties" enterprise permissions (write)
Parameters for "Remove a custom property for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| custom_property_namestring RequiredThe custom property name | 
HTTP response status codes for "Remove a custom property for an enterprise"
| Status code | Description | 
|---|---|
| 204 | A header with no content is returned. | 
| 403 | Forbidden | 
| 404 | Resource not found | 
Code samples for "Remove a custom property for an enterprise"
Request example
curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/properties/schema/CUSTOM_PROPERTY_NAMEA header with no content is returned.
Status: 204