{"meta":{"title":"REST API endpoints for issue field values","intro":"Use the REST API to view and manage issue field values for issues.","product":"REST API","breadcrumbs":[{"href":"/en/rest","title":"REST API"},{"href":"/en/rest/issues","title":"Issues"},{"href":"/en/rest/issues/issue-field-values","title":"Issue field values"}],"documentType":"article"},"body":"# REST API endpoints for issue field values\n\nUse the REST API to view and manage issue field values for issues.\n\n> [!NOTE]\n> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2026-03-10`. Curl examples below omit these standard headers for brevity.\n\n## List issue field values for an issue\n\n```\nGET /repos/{owner}/{repo}/issues/{issue_number}/issue-field-values\n```\n\nLists all issue field values for an issue.\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n- **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n- **`issue_number`** (integer) (required)\n  The number that identifies the issue.\n\n- **`per_page`** (integer)\n  The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"\n  Default: `30`\n\n- **`page`** (integer)\n  The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"\n  Default: `1`\n\n### HTTP response status codes\n\n- **200** - OK\n\n- **301** - Moved permanently\n\n- **404** - Resource not found\n\n- **410** - Gone\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/issue-field-values\n```\n\n**Response schema (Status: 200):**\n\nArray of `Issue Field Value`:\n  * `issue_field_id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `data_type`: required, string, enum: `text`, `single_select`, `multi_select`, `number`, `date`\n  * `value`: required, any of:\n    * **string**\n    * **number**\n    * **integer**\n  * `single_select_option`: object or null:\n    * `id`: required, integer, format: int64\n    * `name`: required, string\n    * `color`: required, string\n  * `multi_select_options`: array of objects or null:\n    * `id`: required, integer, format: int64\n    * `name`: required, string\n    * `color`: required, string\n\n## Add issue field values to an issue\n\n```\nPOST /repos/{owner}/{repo}/issues/{issue_number}/issue-field-values\n```\n\nAdd custom field values to an issue. You can set values for organization-level issue fields that have been defined for the repository's organization.\nAdding an empty array will clear all existing field values for the issue.\nThis endpoint supports the following field data types:\n\ntext: String values for text fields\nsingle_select: Option names for single-select fields (must match an existing option name)\nnumber: Numeric values for number fields\ndate: ISO 8601 date strings for date fields\n\nOnly users with push access to the repository can add issue field values. If you don't have the proper permissions, you'll receive a 403 Forbidden response.\nThis endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"Rate limits for the API\"\nand \"Best practices for using the REST API.\"\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n- **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n- **`issue_number`** (integer) (required)\n  The number that identifies the issue.\n\n#### Body parameters\n\n- **`issue_field_values`** (array of objects)\n  An array of issue field values to add to this issue. Each field value must include the field ID and the value to set.\n  - **`field_id`** (integer) (required)\n    The ID of the issue field to set\n  - **`value`** (string or number or array) (required)\n    The value to set for the field. The type depends on the field's data type:\n\nFor text fields: provide a string value\nFor single_select fields: provide the option name as a string (must match an existing option)\nFor number fields: provide a numeric value\nFor multi_select fields: provide an array of option names (must match existing options)\nFor date fields: provide an ISO 8601 date string\n\n### HTTP response status codes\n\n- **200** - OK\n\n- **400** - Bad Request\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **422** - Validation failed, or the endpoint has been spammed.\n\n- **503** - Service unavailable\n\n### Code examples\n\n#### Add multiple field values\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X POST \\\n  https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/issue-field-values \\\n  -d '{\n  \"issue_field_values\": [\n    {\n      \"field_id\": 123,\n      \"value\": \"Critical\"\n    },\n    {\n      \"field_id\": 456,\n      \"value\": 5\n    },\n    {\n      \"field_id\": 789,\n      \"value\": \"2024-12-31\"\n    }\n  ]\n}'\n```\n\n**Response schema (Status: 200):**\n\nSame response schema as [List issue field values for an issue](#list-issue-field-values-for-an-issue).\n\n## Set issue field values for an issue\n\n```\nPUT /repos/{owner}/{repo}/issues/{issue_number}/issue-field-values\n```\n\nSet custom field values for an issue, replacing any existing values. You can set values for organization-level issue fields that have been defined for the repository's organization.\nThis endpoint supports the following field data types:\n\ntext: String values for text fields\nsingle_select: Option names for single-select fields (must match an existing option name)\nnumber: Numeric values for number fields\ndate: ISO 8601 date strings for date fields\n\nThis operation will replace all existing field values with the provided ones. If you want to add field values without replacing existing ones, use the POST endpoint instead.\nOnly users with push access to the repository can set issue field values. If you don't have the proper permissions, you'll receive a 403 Forbidden response.\nThis endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"Rate limits for the API\"\nand \"Best practices for using the REST API.\"\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n- **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n- **`issue_number`** (integer) (required)\n  The number that identifies the issue.\n\n#### Body parameters\n\n- **`issue_field_values`** (array of objects)\n  An array of issue field values to set for this issue. Each field value must include the field ID and the value to set. All existing field values will be replaced.\n  - **`field_id`** (integer) (required)\n    The ID of the issue field to set\n  - **`value`** (string or number) (required)\n    The value to set for the field. The type depends on the field's data type:\n\nFor text fields: provide a string value\nFor single_select fields: provide the option name as a string (must match an existing option)\nFor number fields: provide a numeric value\nFor date fields: provide an ISO 8601 date string\n\n### HTTP response status codes\n\n- **200** - OK\n\n- **400** - Bad Request\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **422** - Validation failed, or the endpoint has been spammed.\n\n- **503** - Service unavailable\n\n### Code examples\n\n#### Set multiple field values\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/issue-field-values \\\n  -d '{\n  \"issue_field_values\": [\n    {\n      \"field_id\": 123,\n      \"value\": \"Critical\"\n    },\n    {\n      \"field_id\": 456,\n      \"value\": 5\n    },\n    {\n      \"field_id\": 789,\n      \"value\": \"2024-12-31\"\n    }\n  ]\n}'\n```\n\n**Response schema (Status: 200):**\n\nSame response schema as [List issue field values for an issue](#list-issue-field-values-for-an-issue).\n\n## Delete an issue field value from an issue\n\n```\nDELETE /repos/{owner}/{repo}/issues/{issue_number}/issue-field-values/{issue_field_id}\n```\n\nRemove a specific custom field value from an issue.\nOnly users with push access to the repository can delete issue field values. If you don't have the proper permissions, you'll receive a 403 Forbidden response.\nIf the specified field does not have a value set on the issue, this operation will return a 404 error.\nThis endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see \"Rate limits for the API\"\nand \"Best practices for using the REST API.\"\n\n### Parameters\n\n#### Headers\n\n- **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n- **`owner`** (string) (required)\n  The account owner of the repository. The name is not case sensitive.\n\n- **`repo`** (string) (required)\n  The name of the repository without the .git extension. The name is not case sensitive.\n\n- **`issue_number`** (integer) (required)\n  The number that identifies the issue.\n\n- **`issue_field_id`** (integer) (required)\n  The unique identifier of the issue field.\n\n### HTTP response status codes\n\n- **204** - Issue field value deleted successfully\n\n- **403** - Forbidden\n\n- **404** - Resource not found\n\n- **422** - Validation failed, or the endpoint has been spammed.\n\n- **503** - Service unavailable\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X DELETE \\\n  https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/issue-field-values/ISSUE_FIELD_ID\n```\n\n**Response schema (Status: 204):**"}