REST API endpoints for issue types
Use the REST API to create and manage issue types for the authenticated user.
List issue types
Lists all issue types for the authenticated user. OAuth app tokens and personal access tokens (classic) need the read:user scope to use this endpoint.
Fine-grained access tokens for "List issue types"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Issue Types" user permissions (read)
HTTP response status codes for "List issue types"
| Status code | Description |
|---|---|
200 | OK |
404 | Resource not found |
Code samples for "List issue types"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/user/issue-typesResponse
Status: 200[
{
"id": 410,
"node_id": "IT_kwDNAd3NAZo",
"name": "Task",
"description": "A specific piece of work",
"created_at": "2024-12-11T14:39:09Z",
"updated_at": "2024-12-11T14:39:09Z"
},
{
"id": 411,
"node_id": "IT_kwDNAd3NAZs",
"name": "Bug",
"description": "An unexpected problem or behavior",
"created_at": "2024-12-11T14:39:09Z",
"updated_at": "2024-12-11T14:39:09Z"
}
]Create an issue type
Creates a new issue type for the authenticated user's personal account.
OAuth app tokens and personal access tokens (classic) need the user scope to use this endpoint.
Fine-grained access tokens for "Create an issue type"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Issue Types" user permissions (write)
Parameters for "Create an issue type"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
name string RequiredName of the issue type. |
is_enabled boolean RequiredWhether or not the issue type is enabled. |
description string or null Description of the issue type. |
color string or null Color for the issue type. Can be one of: |
HTTP response status codes for "Create an issue type"
| Status code | Description |
|---|---|
200 | OK |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Create an issue type"
Request example
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/user/issue-types \
-d '{"name":"Epic","description":"An issue type for a multi-week tracking of work","is_enabled":true,"color":"green"}'Response
Status: 200{
"id": 410,
"node_id": "IT_kwDNAd3NAZo",
"name": "Task",
"description": "A specific piece of work",
"created_at": "2024-12-11T14:39:09Z",
"updated_at": "2024-12-11T14:39:09Z"
}Update an issue type
Updates an issue type for the authenticated user.
The authenticated user must own the issue type. OAuth app tokens and personal access tokens (classic)
need the user scope to use this endpoint.
Fine-grained access tokens for "Update an issue type"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Issue Types" user permissions (write)
Parameters for "Update an issue type"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
issue_type_id integer RequiredThe unique identifier of the issue type. |
| Name, Type, Description |
|---|
name string RequiredName of the issue type. |
is_enabled boolean RequiredWhether or not the issue type is enabled. |
description string or null Description of the issue type. |
color string or null Color for the issue type. Can be one of: |
HTTP response status codes for "Update an issue type"
| Status code | Description |
|---|---|
200 | OK |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Update an issue type"
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" \
https://api.github.com/user/issue-types/ISSUE_TYPE_ID \
-d '{"name":"Epic","description":"An issue type for a multi-week tracking of work","is_enabled":true,"color":"green"}'Response
Status: 200{
"id": 410,
"node_id": "IT_kwDNAd3NAZo",
"name": "Task",
"description": "A specific piece of work",
"created_at": "2024-12-11T14:39:09Z",
"updated_at": "2024-12-11T14:39:09Z"
}Delete an issue type
Deletes an issue type for the authenticated user.
The authenticated user must own the issue type. OAuth app tokens and personal access tokens (classic)
need the user scope to use this endpoint.
Fine-grained access tokens for "Delete an issue type"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Issue Types" user permissions (write)
Parameters for "Delete an issue type"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
issue_type_id integer RequiredThe unique identifier of the issue type. |
HTTP response status codes for "Delete an issue type"
| Status code | Description |
|---|---|
204 | No Content |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Code samples for "Delete an issue type"
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" \
https://api.github.com/user/issue-types/ISSUE_TYPE_IDResponse
Status: 204