{"meta":{"title":"REST API endpoints for pull requests","intro":"Use the REST API to interact with pull requests.","product":"REST API","breadcrumbs":[{"href":"/en/rest","title":"REST API"},{"href":"/en/rest/pulls","title":"Pull requests"},{"href":"/en/rest/pulls/pulls","title":"Pull requests"}],"documentType":"article"},"body":"# REST API endpoints for pull requests\n\nUse the REST API to interact with pull requests.\n\n## About pull requests\n\nYou can list, view, edit, create, and merge pull requests using the REST API. For information about how to interact with comments on a pull request, see [REST API endpoints for issue comments](/en/rest/issues/comments).\n\nPull requests are a type of issue. Any actions that are available in both pull requests and issues, like managing assignees, labels, and milestones, are handled by the REST API to manage issues. To perform these actions on pull requests, you must use the issues API endpoints (for example, `/repos/{owner}/{repo}/issues/{issue_number}`), not the pull requests endpoints. For more information, see [REST API endpoints for issues](/en/rest/issues).\n\n### Link Relations\n\nPull requests have these possible link relations:\n\n* `self`: The API location of this pull request\n* `html`: The HTML location of this pull request\n* `issue`: The API location of this pull request's [issue](/en/rest/issues)\n* `comments`: The API location of this pull request's [issue comments](/en/rest/issues/comments)\n* `review_comments`: The API location of this pull request's [review comments](/en/rest/pulls/comments)\n* `review_comment`: The [URL template](/en/rest/using-the-rest-api/getting-started-with-the-rest-api#hypermedia) to construct the API location for a [review comment](/en/rest/pulls/comments) in this pull request's repository\n* `commits`: The API location of this pull request's [commits](#list-commits-on-a-pull-request)\n* `statuses`: The API location of this pull request's [commit statuses](/en/rest/commits#commit-statuses), which are the statuses of its `head` branch\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 pull requests\n\n```\nGET /repos/{owner}/{repo}/pulls\n```\n\nLists pull requests in a specified repository.\nDraft pull requests are available in public repositories with GitHub\nFree and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing\nplans, and in public and private repositories with GitHub Team and GitHub Enterprise\nCloud. For more information, see GitHub's products\nin the GitHub Help documentation.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.raw+json: Returns the raw markdown body. Response will include body. This is the default if you do not pass any specific media type.\napplication/vnd.github.text+json: Returns a text only representation of the markdown body. Response will include body\\_text.\napplication/vnd.github.html+json: Returns HTML rendered from the body's markdown. Response will include body\\_html.\napplication/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body\\_text, and body\\_html.\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* **`state`** (string)\n  Either open, closed, or all to filter by state.\n  Default: `open`\n  Can be one of: `open`, `closed`, `all`\n\n* **`head`** (string)\n  Filter pulls by head user or head organization and branch name in the format of user:ref-name or organization:ref-name. For example: github:new-script-format or octocat:test-branch.\n\n* **`base`** (string)\n  Filter pulls by base branch name. Example: gh-pages.\n\n* **`sort`** (string)\n  What to sort results by. popularity will sort by the number of comments. long-running will sort by date created and will limit the results to pull requests that have been open for more than a month and have had activity within the past month.\n  Default: `created`\n  Can be one of: `created`, `updated`, `popularity`, `long-running`\n\n* **`direction`** (string)\n  The direction of the sort. Default: desc when sort is created or sort is not specified, otherwise asc.\n  Can be one of: `asc`, `desc`\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* **304** - Not modified\n\n* **422** - Validation failed, or the endpoint has been spammed.\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/pulls\n```\n\n**Response schema (Status: 200):**\n\nArray of `Pull Request Simple`:\n\n* `url`: required, string, format: uri\n* `id`: required, integer, format: int64\n* `node_id`: required, string\n* `html_url`: required, string, format: uri\n* `diff_url`: required, string, format: uri\n* `patch_url`: required, string, format: uri\n* `issue_url`: required, string, format: uri\n* `commits_url`: required, string, format: uri\n* `review_comments_url`: required, string, format: uri\n* `review_comment_url`: required, string\n* `comments_url`: required, string, format: uri\n* `statuses_url`: required, string, format: uri\n* `number`: required, integer\n* `state`: required, string\n* `locked`: required, boolean\n* `title`: required, string\n* `user`: required, any of:\n  * **null**\n  * **Simple User**\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n* `body`: required, string or null\n* `labels`: required, array of objects:\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `url`: required, string\n  * `name`: required, string\n  * `description`: required, string\n  * `color`: required, string\n  * `default`: required, boolean\n* `milestone`: required, any of:\n  * **null**\n  * **Milestone**\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `labels_url`: required, string, format: uri\n    * `id`: required, integer\n    * `node_id`: required, string\n    * `number`: required, integer\n    * `state`: required, string, enum: `open`, `closed`, default: `\"open\"`\n    * `title`: required, string\n    * `description`: required, string or null\n    * `creator`: required, any of:\n      * **null**\n      * **Simple User**\n        * `name`: string or null\n        * `email`: string or null\n        * `login`: required, string\n        * `id`: required, integer, format: int64\n        * `node_id`: required, string\n        * `avatar_url`: required, string, format: uri\n        * `gravatar_id`: required, string or null\n        * `url`: required, string, format: uri\n        * `html_url`: required, string, format: uri\n        * `followers_url`: required, string, format: uri\n        * `following_url`: required, string\n        * `gists_url`: required, string\n        * `starred_url`: required, string\n        * `subscriptions_url`: required, string, format: uri\n        * `organizations_url`: required, string, format: uri\n        * `repos_url`: required, string, format: uri\n        * `events_url`: required, string\n        * `received_events_url`: required, string, format: uri\n        * `type`: required, string\n        * `site_admin`: required, boolean\n        * `starred_at`: string\n        * `user_view_type`: string\n    * `open_issues`: required, integer\n    * `closed_issues`: required, integer\n    * `created_at`: required, string, format: date-time\n    * `updated_at`: required, string, format: date-time\n    * `closed_at`: required, string or null, format: date-time\n    * `due_on`: required, string or null, format: date-time\n* `active_lock_reason`: string or null\n* `created_at`: required, string, format: date-time\n* `updated_at`: required, string, format: date-time\n* `closed_at`: required, string or null, format: date-time\n* `merged_at`: required, string or null, format: date-time\n* `assignees`: array of `Simple User`:\n  * `name`: string or null\n  * `email`: string or null\n  * `login`: required, string\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `avatar_url`: required, string, format: uri\n  * `gravatar_id`: required, string or null\n  * `url`: required, string, format: uri\n  * `html_url`: required, string, format: uri\n  * `followers_url`: required, string, format: uri\n  * `following_url`: required, string\n  * `gists_url`: required, string\n  * `starred_url`: required, string\n  * `subscriptions_url`: required, string, format: uri\n  * `organizations_url`: required, string, format: uri\n  * `repos_url`: required, string, format: uri\n  * `events_url`: required, string\n  * `received_events_url`: required, string, format: uri\n  * `type`: required, string\n  * `site_admin`: required, boolean\n  * `starred_at`: string\n  * `user_view_type`: string\n* `requested_reviewers`: array of `Simple User`:\n  * `name`: string or null\n  * `email`: string or null\n  * `login`: required, string\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `avatar_url`: required, string, format: uri\n  * `gravatar_id`: required, string or null\n  * `url`: required, string, format: uri\n  * `html_url`: required, string, format: uri\n  * `followers_url`: required, string, format: uri\n  * `following_url`: required, string\n  * `gists_url`: required, string\n  * `starred_url`: required, string\n  * `subscriptions_url`: required, string, format: uri\n  * `organizations_url`: required, string, format: uri\n  * `repos_url`: required, string, format: uri\n  * `events_url`: required, string\n  * `received_events_url`: required, string, format: uri\n  * `type`: required, string\n  * `site_admin`: required, boolean\n  * `starred_at`: string\n  * `user_view_type`: string\n* `requested_teams`: array of `Team`:\n  * `id`: required, integer\n  * `node_id`: required, string\n  * `name`: required, string\n  * `slug`: required, string\n  * `description`: required, string or null\n  * `privacy`: string\n  * `notification_setting`: string\n  * `permission`: required, string\n  * `permissions`: object:\n    * `pull`: required, boolean\n    * `triage`: required, boolean\n    * `push`: required, boolean\n    * `maintain`: required, boolean\n    * `admin`: required, boolean\n  * `url`: required, string, format: uri\n  * `html_url`: required, string, format: uri\n  * `members_url`: required, string\n  * `repositories_url`: required, string, format: uri\n  * `type`: required, string, enum: `enterprise`, `organization`\n  * `organization_id`: integer\n  * `enterprise_id`: integer\n  * `parent`: required, any of:\n    * **null**\n    * **Team Simple**\n      * `id`: required, integer\n      * `node_id`: required, string\n      * `url`: required, string, format: uri\n      * `members_url`: required, string\n      * `name`: required, string\n      * `description`: required, string or null\n      * `permission`: required, string\n      * `privacy`: string\n      * `notification_setting`: string\n      * `html_url`: required, string, format: uri\n      * `repositories_url`: required, string, format: uri\n      * `slug`: required, string\n      * `ldap_dn`: string\n      * `type`: required, string, enum: `enterprise`, `organization`\n      * `organization_id`: integer\n      * `enterprise_id`: integer\n* `head`: required, object:\n  * `label`: required, string\n  * `ref`: required, string\n  * `repo`: required, `Repository`:\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `name`: required, string\n    * `full_name`: required, string\n    * `license`: required, any of:\n      * **null**\n      * **License Simple**\n        * `key`: required, string\n        * `name`: required, string\n        * `url`: required, string or null, format: uri\n        * `spdx_id`: required, string or null\n        * `node_id`: required, string\n        * `html_url`: string, format: uri\n    * `forks`: required, integer\n    * `permissions`: object:\n      * `admin`: required, boolean\n      * `pull`: required, boolean\n      * `triage`: boolean\n      * `push`: required, boolean\n      * `maintain`: boolean\n    * `owner`: required, `Simple User`:\n      * `name`: string or null\n      * `email`: string or null\n      * `login`: required, string\n      * `id`: required, integer, format: int64\n      * `node_id`: required, string\n      * `avatar_url`: required, string, format: uri\n      * `gravatar_id`: required, string or null\n      * `url`: required, string, format: uri\n      * `html_url`: required, string, format: uri\n      * `followers_url`: required, string, format: uri\n      * `following_url`: required, string\n      * `gists_url`: required, string\n      * `starred_url`: required, string\n      * `subscriptions_url`: required, string, format: uri\n      * `organizations_url`: required, string, format: uri\n      * `repos_url`: required, string, format: uri\n      * `events_url`: required, string\n      * `received_events_url`: required, string, format: uri\n      * `type`: required, string\n      * `site_admin`: required, boolean\n      * `starred_at`: string\n      * `user_view_type`: string\n    * `private`: required, boolean, default: `false`\n    * `html_url`: required, string, format: uri\n    * `description`: required, string or null\n    * `fork`: required, boolean\n    * `url`: required, string, format: uri\n    * `archive_url`: required, string\n    * `assignees_url`: required, string\n    * `blobs_url`: required, string\n    * `branches_url`: required, string\n    * `collaborators_url`: required, string\n    * `comments_url`: required, string\n    * `commits_url`: required, string\n    * `compare_url`: required, string\n    * `contents_url`: required, string\n    * `contributors_url`: required, string, format: uri\n    * `deployments_url`: required, string, format: uri\n    * `downloads_url`: required, string, format: uri\n    * `events_url`: required, string, format: uri\n    * `forks_url`: required, string, format: uri\n    * `git_commits_url`: required, string\n    * `git_refs_url`: required, string\n    * `git_tags_url`: required, string\n    * `git_url`: required, string\n    * `issue_comment_url`: required, string\n    * `issue_events_url`: required, string\n    * `issues_url`: required, string\n    * `keys_url`: required, string\n    * `labels_url`: required, string\n    * `languages_url`: required, string, format: uri\n    * `merges_url`: required, string, format: uri\n    * `milestones_url`: required, string\n    * `notifications_url`: required, string\n    * `pulls_url`: required, string\n    * `releases_url`: required, string\n    * `ssh_url`: required, string\n    * `stargazers_url`: required, string, format: uri\n    * `statuses_url`: required, string\n    * `subscribers_url`: required, string, format: uri\n    * `subscription_url`: required, string, format: uri\n    * `tags_url`: required, string, format: uri\n    * `teams_url`: required, string, format: uri\n    * `trees_url`: required, string\n    * `clone_url`: required, string\n    * `mirror_url`: required, string or null, format: uri\n    * `hooks_url`: required, string, format: uri\n    * `svn_url`: required, string, format: uri\n    * `homepage`: required, string or null, format: uri\n    * `language`: required, string or null\n    * `forks_count`: required, integer\n    * `stargazers_count`: required, integer\n    * `watchers_count`: required, integer\n    * `size`: required, integer\n    * `default_branch`: required, string\n    * `open_issues_count`: required, integer\n    * `is_template`: boolean, default: `false`\n    * `topics`: array of string\n    * `has_issues`: required, boolean, default: `true`\n    * `has_projects`: required, boolean, default: `true`\n    * `has_wiki`: required, boolean, default: `true`\n    * `has_pages`: required, boolean\n    * `has_discussions`: boolean, default: `false`\n    * `has_pull_requests`: boolean, default: `true`\n    * `pull_request_creation_policy`: string, enum: `all`, `collaborators_only`\n    * `archived`: required, boolean, default: `false`\n    * `disabled`: required, boolean\n    * `visibility`: string, default: `\"public\"`\n    * `pushed_at`: required, string or null, format: date-time\n    * `created_at`: required, string or null, format: date-time\n    * `updated_at`: required, string or null, format: date-time\n    * `allow_rebase_merge`: boolean, default: `true`\n    * `temp_clone_token`: string\n    * `allow_squash_merge`: boolean, default: `true`\n    * `allow_auto_merge`: boolean, default: `false`\n    * `delete_branch_on_merge`: boolean, default: `false`\n    * `allow_update_branch`: boolean, default: `false`\n    * `squash_merge_commit_title`: string, enum: `PR_TITLE`, `COMMIT_OR_PR_TITLE`\n    * `squash_merge_commit_message`: string, enum: `PR_BODY`, `COMMIT_MESSAGES`, `BLANK`\n    * `merge_commit_title`: string, enum: `PR_TITLE`, `MERGE_MESSAGE`\n    * `merge_commit_message`: string, enum: `PR_BODY`, `PR_TITLE`, `BLANK`\n    * `allow_merge_commit`: boolean, default: `true`\n    * `allow_forking`: boolean\n    * `web_commit_signoff_required`: boolean, default: `false`\n    * `open_issues`: required, integer\n    * `watchers`: required, integer\n    * `starred_at`: string\n    * `anonymous_access_enabled`: boolean\n    * `code_search_index_status`: object:\n      * `lexical_search_ok`: boolean\n      * `lexical_commit_sha`: string\n  * `sha`: required, string\n  * `user`: required, any of:\n    * **null**\n    * **Simple User**\n      * `name`: string or null\n      * `email`: string or null\n      * `login`: required, string\n      * `id`: required, integer, format: int64\n      * `node_id`: required, string\n      * `avatar_url`: required, string, format: uri\n      * `gravatar_id`: required, string or null\n      * `url`: required, string, format: uri\n      * `html_url`: required, string, format: uri\n      * `followers_url`: required, string, format: uri\n      * `following_url`: required, string\n      * `gists_url`: required, string\n      * `starred_url`: required, string\n      * `subscriptions_url`: required, string, format: uri\n      * `organizations_url`: required, string, format: uri\n      * `repos_url`: required, string, format: uri\n      * `events_url`: required, string\n      * `received_events_url`: required, string, format: uri\n      * `type`: required, string\n      * `site_admin`: required, boolean\n      * `starred_at`: string\n      * `user_view_type`: string\n* `base`: required, object:\n  * `label`: required, string\n  * `ref`: required, string\n  * `repo`: required, `Repository`:\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `name`: required, string\n    * `full_name`: required, string\n    * `license`: required, any of:\n      * **null**\n      * **License Simple**\n        * `key`: required, string\n        * `name`: required, string\n        * `url`: required, string or null, format: uri\n        * `spdx_id`: required, string or null\n        * `node_id`: required, string\n        * `html_url`: string, format: uri\n    * `forks`: required, integer\n    * `permissions`: object:\n      * `admin`: required, boolean\n      * `pull`: required, boolean\n      * `triage`: boolean\n      * `push`: required, boolean\n      * `maintain`: boolean\n    * `owner`: required, `Simple User`:\n      * `name`: string or null\n      * `email`: string or null\n      * `login`: required, string\n      * `id`: required, integer, format: int64\n      * `node_id`: required, string\n      * `avatar_url`: required, string, format: uri\n      * `gravatar_id`: required, string or null\n      * `url`: required, string, format: uri\n      * `html_url`: required, string, format: uri\n      * `followers_url`: required, string, format: uri\n      * `following_url`: required, string\n      * `gists_url`: required, string\n      * `starred_url`: required, string\n      * `subscriptions_url`: required, string, format: uri\n      * `organizations_url`: required, string, format: uri\n      * `repos_url`: required, string, format: uri\n      * `events_url`: required, string\n      * `received_events_url`: required, string, format: uri\n      * `type`: required, string\n      * `site_admin`: required, boolean\n      * `starred_at`: string\n      * `user_view_type`: string\n    * `private`: required, boolean, default: `false`\n    * `html_url`: required, string, format: uri\n    * `description`: required, string or null\n    * `fork`: required, boolean\n    * `url`: required, string, format: uri\n    * `archive_url`: required, string\n    * `assignees_url`: required, string\n    * `blobs_url`: required, string\n    * `branches_url`: required, string\n    * `collaborators_url`: required, string\n    * `comments_url`: required, string\n    * `commits_url`: required, string\n    * `compare_url`: required, string\n    * `contents_url`: required, string\n    * `contributors_url`: required, string, format: uri\n    * `deployments_url`: required, string, format: uri\n    * `downloads_url`: required, string, format: uri\n    * `events_url`: required, string, format: uri\n    * `forks_url`: required, string, format: uri\n    * `git_commits_url`: required, string\n    * `git_refs_url`: required, string\n    * `git_tags_url`: required, string\n    * `git_url`: required, string\n    * `issue_comment_url`: required, string\n    * `issue_events_url`: required, string\n    * `issues_url`: required, string\n    * `keys_url`: required, string\n    * `labels_url`: required, string\n    * `languages_url`: required, string, format: uri\n    * `merges_url`: required, string, format: uri\n    * `milestones_url`: required, string\n    * `notifications_url`: required, string\n    * `pulls_url`: required, string\n    * `releases_url`: required, string\n    * `ssh_url`: required, string\n    * `stargazers_url`: required, string, format: uri\n    * `statuses_url`: required, string\n    * `subscribers_url`: required, string, format: uri\n    * `subscription_url`: required, string, format: uri\n    * `tags_url`: required, string, format: uri\n    * `teams_url`: required, string, format: uri\n    * `trees_url`: required, string\n    * `clone_url`: required, string\n    * `mirror_url`: required, string or null, format: uri\n    * `hooks_url`: required, string, format: uri\n    * `svn_url`: required, string, format: uri\n    * `homepage`: required, string or null, format: uri\n    * `language`: required, string or null\n    * `forks_count`: required, integer\n    * `stargazers_count`: required, integer\n    * `watchers_count`: required, integer\n    * `size`: required, integer\n    * `default_branch`: required, string\n    * `open_issues_count`: required, integer\n    * `is_template`: boolean, default: `false`\n    * `topics`: array of string\n    * `has_issues`: required, boolean, default: `true`\n    * `has_projects`: required, boolean, default: `true`\n    * `has_wiki`: required, boolean, default: `true`\n    * `has_pages`: required, boolean\n    * `has_discussions`: boolean, default: `false`\n    * `has_pull_requests`: boolean, default: `true`\n    * `pull_request_creation_policy`: string, enum: `all`, `collaborators_only`\n    * `archived`: required, boolean, default: `false`\n    * `disabled`: required, boolean\n    * `visibility`: string, default: `\"public\"`\n    * `pushed_at`: required, string or null, format: date-time\n    * `created_at`: required, string or null, format: date-time\n    * `updated_at`: required, string or null, format: date-time\n    * `allow_rebase_merge`: boolean, default: `true`\n    * `temp_clone_token`: string\n    * `allow_squash_merge`: boolean, default: `true`\n    * `allow_auto_merge`: boolean, default: `false`\n    * `delete_branch_on_merge`: boolean, default: `false`\n    * `allow_update_branch`: boolean, default: `false`\n    * `squash_merge_commit_title`: string, enum: `PR_TITLE`, `COMMIT_OR_PR_TITLE`\n    * `squash_merge_commit_message`: string, enum: `PR_BODY`, `COMMIT_MESSAGES`, `BLANK`\n    * `merge_commit_title`: string, enum: `PR_TITLE`, `MERGE_MESSAGE`\n    * `merge_commit_message`: string, enum: `PR_BODY`, `PR_TITLE`, `BLANK`\n    * `allow_merge_commit`: boolean, default: `true`\n    * `allow_forking`: boolean\n    * `web_commit_signoff_required`: boolean, default: `false`\n    * `open_issues`: required, integer\n    * `watchers`: required, integer\n    * `starred_at`: string\n    * `anonymous_access_enabled`: boolean\n    * `code_search_index_status`: object:\n      * `lexical_search_ok`: boolean\n      * `lexical_commit_sha`: string\n  * `sha`: required, string\n  * `user`: required, any of:\n    * **null**\n    * **Simple User**\n      * `name`: string or null\n      * `email`: string or null\n      * `login`: required, string\n      * `id`: required, integer, format: int64\n      * `node_id`: required, string\n      * `avatar_url`: required, string, format: uri\n      * `gravatar_id`: required, string or null\n      * `url`: required, string, format: uri\n      * `html_url`: required, string, format: uri\n      * `followers_url`: required, string, format: uri\n      * `following_url`: required, string\n      * `gists_url`: required, string\n      * `starred_url`: required, string\n      * `subscriptions_url`: required, string, format: uri\n      * `organizations_url`: required, string, format: uri\n      * `repos_url`: required, string, format: uri\n      * `events_url`: required, string\n      * `received_events_url`: required, string, format: uri\n      * `type`: required, string\n      * `site_admin`: required, boolean\n      * `starred_at`: string\n      * `user_view_type`: string\n* `_links`: required, object:\n  * `comments`: required, `Link`:\n    * `href`: required, string\n  * `commits`: required, `Link`:\n    * `href`: required, string\n  * `statuses`: required, `Link`:\n    * `href`: required, string\n  * `html`: required, `Link`:\n    * `href`: required, string\n  * `issue`: required, `Link`:\n    * `href`: required, string\n  * `review_comments`: required, `Link`:\n    * `href`: required, string\n  * `review_comment`: required, `Link`:\n    * `href`: required, string\n  * `self`: required, `Link`:\n    * `href`: required, string\n* `author_association`: required, string, enum: `COLLABORATOR`, `CONTRIBUTOR`, `FIRST_TIMER`, `FIRST_TIME_CONTRIBUTOR`, `MANNEQUIN`, `MEMBER`, `NONE`, `OWNER`\n* `auto_merge`: required, `Auto merge`:\n  * `enabled_by`: required, `Simple User`:\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n  * `merge_method`: required, string, enum: `merge`, `squash`, `rebase`\n  * `commit_title`: required, string\n  * `commit_message`: required, string\n* `draft`: boolean\n\n## Create a pull request\n\n```\nPOST /repos/{owner}/{repo}/pulls\n```\n\nDraft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.\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\" and \"Best practices for using the REST API.\"\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.raw+json: Returns the raw markdown body. Response will include body. This is the default if you do not pass any specific media type.\napplication/vnd.github.text+json: Returns a text only representation of the markdown body. Response will include body\\_text.\napplication/vnd.github.html+json: Returns HTML rendered from the body's markdown. Response will include body\\_html.\napplication/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body\\_text, and body\\_html.\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#### Body parameters\n\n* **`title`** (string)\n  The title of the new pull request. Required unless issue is specified.\n\n* **`head`** (string) (required)\n  The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch.\n\n* **`head_repo`** (string)\n  The name of the repository where the changes in the pull request were made. This field is required for cross-repository pull requests if both repositories are owned by the same organization.\n\n* **`base`** (string) (required)\n  The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository.\n\n* **`body`** (string)\n  The contents of the pull request.\n\n* **`maintainer_can_modify`** (boolean)\n  Indicates whether maintainers can modify the pull request.\n\n* **`draft`** (boolean)\n  Indicates whether the pull request is a draft. See \"Draft Pull Requests\" in the GitHub Help documentation to learn more.\n\n* **`issue`** (integer)\n  An issue in the repository to convert to a pull request. The issue title, body, and comments will become the title, body, and comments on the new pull request. Required unless title is specified.\n\n### HTTP response status codes\n\n* **201** - Created\n\n* **403** - Forbidden\n\n* **422** - Validation failed, or the endpoint has been spammed.\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X POST \\\n  https://api.github.com/repos/OWNER/REPO/pulls \\\n  -d '{\n  \"title\": \"Amazing new feature\",\n  \"body\": \"Please pull these awesome changes in!\",\n  \"head\": \"octocat:new-feature\",\n  \"base\": \"master\"\n}'\n```\n\n**Response schema (Status: 201):**\n\n* `url`: required, string, format: uri\n* `id`: required, integer, format: int64\n* `node_id`: required, string\n* `html_url`: required, string, format: uri\n* `diff_url`: required, string, format: uri\n* `patch_url`: required, string, format: uri\n* `issue_url`: required, string, format: uri\n* `commits_url`: required, string, format: uri\n* `review_comments_url`: required, string, format: uri\n* `review_comment_url`: required, string\n* `comments_url`: required, string, format: uri\n* `statuses_url`: required, string, format: uri\n* `number`: required, integer\n* `state`: required, string, enum: `open`, `closed`\n* `locked`: required, boolean\n* `title`: required, string\n* `user`: required, `Simple User`:\n  * `name`: string or null\n  * `email`: string or null\n  * `login`: required, string\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `avatar_url`: required, string, format: uri\n  * `gravatar_id`: required, string or null\n  * `url`: required, string, format: uri\n  * `html_url`: required, string, format: uri\n  * `followers_url`: required, string, format: uri\n  * `following_url`: required, string\n  * `gists_url`: required, string\n  * `starred_url`: required, string\n  * `subscriptions_url`: required, string, format: uri\n  * `organizations_url`: required, string, format: uri\n  * `repos_url`: required, string, format: uri\n  * `events_url`: required, string\n  * `received_events_url`: required, string, format: uri\n  * `type`: required, string\n  * `site_admin`: required, boolean\n  * `starred_at`: string\n  * `user_view_type`: string\n* `body`: required, string or null\n* `labels`: required, array of objects:\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `url`: required, string\n  * `name`: required, string\n  * `description`: required, string or null\n  * `color`: required, string\n  * `default`: required, boolean\n* `milestone`: required, any of:\n  * **null**\n  * **Milestone**\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `labels_url`: required, string, format: uri\n    * `id`: required, integer\n    * `node_id`: required, string\n    * `number`: required, integer\n    * `state`: required, string, enum: `open`, `closed`, default: `\"open\"`\n    * `title`: required, string\n    * `description`: required, string or null\n    * `creator`: required, any of:\n      * **null**\n      * **Simple User**\n        * `name`: string or null\n        * `email`: string or null\n        * `login`: required, string\n        * `id`: required, integer, format: int64\n        * `node_id`: required, string\n        * `avatar_url`: required, string, format: uri\n        * `gravatar_id`: required, string or null\n        * `url`: required, string, format: uri\n        * `html_url`: required, string, format: uri\n        * `followers_url`: required, string, format: uri\n        * `following_url`: required, string\n        * `gists_url`: required, string\n        * `starred_url`: required, string\n        * `subscriptions_url`: required, string, format: uri\n        * `organizations_url`: required, string, format: uri\n        * `repos_url`: required, string, format: uri\n        * `events_url`: required, string\n        * `received_events_url`: required, string, format: uri\n        * `type`: required, string\n        * `site_admin`: required, boolean\n        * `starred_at`: string\n        * `user_view_type`: string\n    * `open_issues`: required, integer\n    * `closed_issues`: required, integer\n    * `created_at`: required, string, format: date-time\n    * `updated_at`: required, string, format: date-time\n    * `closed_at`: required, string or null, format: date-time\n    * `due_on`: required, string or null, format: date-time\n* `active_lock_reason`: string or null\n* `created_at`: required, string, format: date-time\n* `updated_at`: required, string, format: date-time\n* `closed_at`: required, string or null, format: date-time\n* `merged_at`: required, string or null, format: date-time\n* `assignees`: array of `Simple User`:\n  * `name`: string or null\n  * `email`: string or null\n  * `login`: required, string\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `avatar_url`: required, string, format: uri\n  * `gravatar_id`: required, string or null\n  * `url`: required, string, format: uri\n  * `html_url`: required, string, format: uri\n  * `followers_url`: required, string, format: uri\n  * `following_url`: required, string\n  * `gists_url`: required, string\n  * `starred_url`: required, string\n  * `subscriptions_url`: required, string, format: uri\n  * `organizations_url`: required, string, format: uri\n  * `repos_url`: required, string, format: uri\n  * `events_url`: required, string\n  * `received_events_url`: required, string, format: uri\n  * `type`: required, string\n  * `site_admin`: required, boolean\n  * `starred_at`: string\n  * `user_view_type`: string\n* `requested_reviewers`: array of `Simple User`:\n  * `name`: string or null\n  * `email`: string or null\n  * `login`: required, string\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `avatar_url`: required, string, format: uri\n  * `gravatar_id`: required, string or null\n  * `url`: required, string, format: uri\n  * `html_url`: required, string, format: uri\n  * `followers_url`: required, string, format: uri\n  * `following_url`: required, string\n  * `gists_url`: required, string\n  * `starred_url`: required, string\n  * `subscriptions_url`: required, string, format: uri\n  * `organizations_url`: required, string, format: uri\n  * `repos_url`: required, string, format: uri\n  * `events_url`: required, string\n  * `received_events_url`: required, string, format: uri\n  * `type`: required, string\n  * `site_admin`: required, boolean\n  * `starred_at`: string\n  * `user_view_type`: string\n* `requested_teams`: array of `Team Simple`:\n  * `id`: required, integer\n  * `node_id`: required, string\n  * `url`: required, string, format: uri\n  * `members_url`: required, string\n  * `name`: required, string\n  * `description`: required, string or null\n  * `permission`: required, string\n  * `privacy`: string\n  * `notification_setting`: string\n  * `html_url`: required, string, format: uri\n  * `repositories_url`: required, string, format: uri\n  * `slug`: required, string\n  * `ldap_dn`: string\n  * `type`: required, string, enum: `enterprise`, `organization`\n  * `organization_id`: integer\n  * `enterprise_id`: integer\n* `head`: required, object:\n  * `label`: required, string\n  * `ref`: required, string\n  * `repo`: required, `Repository`:\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `name`: required, string\n    * `full_name`: required, string\n    * `license`: required, any of:\n      * **null**\n      * **License Simple**\n        * `key`: required, string\n        * `name`: required, string\n        * `url`: required, string or null, format: uri\n        * `spdx_id`: required, string or null\n        * `node_id`: required, string\n        * `html_url`: string, format: uri\n    * `forks`: required, integer\n    * `permissions`: object:\n      * `admin`: required, boolean\n      * `pull`: required, boolean\n      * `triage`: boolean\n      * `push`: required, boolean\n      * `maintain`: boolean\n    * `owner`: required, `Simple User`:\n      * `name`: string or null\n      * `email`: string or null\n      * `login`: required, string\n      * `id`: required, integer, format: int64\n      * `node_id`: required, string\n      * `avatar_url`: required, string, format: uri\n      * `gravatar_id`: required, string or null\n      * `url`: required, string, format: uri\n      * `html_url`: required, string, format: uri\n      * `followers_url`: required, string, format: uri\n      * `following_url`: required, string\n      * `gists_url`: required, string\n      * `starred_url`: required, string\n      * `subscriptions_url`: required, string, format: uri\n      * `organizations_url`: required, string, format: uri\n      * `repos_url`: required, string, format: uri\n      * `events_url`: required, string\n      * `received_events_url`: required, string, format: uri\n      * `type`: required, string\n      * `site_admin`: required, boolean\n      * `starred_at`: string\n      * `user_view_type`: string\n    * `private`: required, boolean, default: `false`\n    * `html_url`: required, string, format: uri\n    * `description`: required, string or null\n    * `fork`: required, boolean\n    * `url`: required, string, format: uri\n    * `archive_url`: required, string\n    * `assignees_url`: required, string\n    * `blobs_url`: required, string\n    * `branches_url`: required, string\n    * `collaborators_url`: required, string\n    * `comments_url`: required, string\n    * `commits_url`: required, string\n    * `compare_url`: required, string\n    * `contents_url`: required, string\n    * `contributors_url`: required, string, format: uri\n    * `deployments_url`: required, string, format: uri\n    * `downloads_url`: required, string, format: uri\n    * `events_url`: required, string, format: uri\n    * `forks_url`: required, string, format: uri\n    * `git_commits_url`: required, string\n    * `git_refs_url`: required, string\n    * `git_tags_url`: required, string\n    * `git_url`: required, string\n    * `issue_comment_url`: required, string\n    * `issue_events_url`: required, string\n    * `issues_url`: required, string\n    * `keys_url`: required, string\n    * `labels_url`: required, string\n    * `languages_url`: required, string, format: uri\n    * `merges_url`: required, string, format: uri\n    * `milestones_url`: required, string\n    * `notifications_url`: required, string\n    * `pulls_url`: required, string\n    * `releases_url`: required, string\n    * `ssh_url`: required, string\n    * `stargazers_url`: required, string, format: uri\n    * `statuses_url`: required, string\n    * `subscribers_url`: required, string, format: uri\n    * `subscription_url`: required, string, format: uri\n    * `tags_url`: required, string, format: uri\n    * `teams_url`: required, string, format: uri\n    * `trees_url`: required, string\n    * `clone_url`: required, string\n    * `mirror_url`: required, string or null, format: uri\n    * `hooks_url`: required, string, format: uri\n    * `svn_url`: required, string, format: uri\n    * `homepage`: required, string or null, format: uri\n    * `language`: required, string or null\n    * `forks_count`: required, integer\n    * `stargazers_count`: required, integer\n    * `watchers_count`: required, integer\n    * `size`: required, integer\n    * `default_branch`: required, string\n    * `open_issues_count`: required, integer\n    * `is_template`: boolean, default: `false`\n    * `topics`: array of string\n    * `has_issues`: required, boolean, default: `true`\n    * `has_projects`: required, boolean, default: `true`\n    * `has_wiki`: required, boolean, default: `true`\n    * `has_pages`: required, boolean\n    * `has_discussions`: boolean, default: `false`\n    * `has_pull_requests`: boolean, default: `true`\n    * `pull_request_creation_policy`: string, enum: `all`, `collaborators_only`\n    * `archived`: required, boolean, default: `false`\n    * `disabled`: required, boolean\n    * `visibility`: string, default: `\"public\"`\n    * `pushed_at`: required, string or null, format: date-time\n    * `created_at`: required, string or null, format: date-time\n    * `updated_at`: required, string or null, format: date-time\n    * `allow_rebase_merge`: boolean, default: `true`\n    * `temp_clone_token`: string\n    * `allow_squash_merge`: boolean, default: `true`\n    * `allow_auto_merge`: boolean, default: `false`\n    * `delete_branch_on_merge`: boolean, default: `false`\n    * `allow_update_branch`: boolean, default: `false`\n    * `squash_merge_commit_title`: string, enum: `PR_TITLE`, `COMMIT_OR_PR_TITLE`\n    * `squash_merge_commit_message`: string, enum: `PR_BODY`, `COMMIT_MESSAGES`, `BLANK`\n    * `merge_commit_title`: string, enum: `PR_TITLE`, `MERGE_MESSAGE`\n    * `merge_commit_message`: string, enum: `PR_BODY`, `PR_TITLE`, `BLANK`\n    * `allow_merge_commit`: boolean, default: `true`\n    * `allow_forking`: boolean\n    * `web_commit_signoff_required`: boolean, default: `false`\n    * `open_issues`: required, integer\n    * `watchers`: required, integer\n    * `starred_at`: string\n    * `anonymous_access_enabled`: boolean\n    * `code_search_index_status`: object:\n      * `lexical_search_ok`: boolean\n      * `lexical_commit_sha`: string\n  * `sha`: required, string\n  * `user`: required, `Simple User`:\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n* `base`: required, object:\n  * `label`: required, string\n  * `ref`: required, string\n  * `repo`: required, `Repository`:\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `name`: required, string\n    * `full_name`: required, string\n    * `license`: required, any of:\n      * **null**\n      * **License Simple**\n        * `key`: required, string\n        * `name`: required, string\n        * `url`: required, string or null, format: uri\n        * `spdx_id`: required, string or null\n        * `node_id`: required, string\n        * `html_url`: string, format: uri\n    * `forks`: required, integer\n    * `permissions`: object:\n      * `admin`: required, boolean\n      * `pull`: required, boolean\n      * `triage`: boolean\n      * `push`: required, boolean\n      * `maintain`: boolean\n    * `owner`: required, `Simple User`:\n      * `name`: string or null\n      * `email`: string or null\n      * `login`: required, string\n      * `id`: required, integer, format: int64\n      * `node_id`: required, string\n      * `avatar_url`: required, string, format: uri\n      * `gravatar_id`: required, string or null\n      * `url`: required, string, format: uri\n      * `html_url`: required, string, format: uri\n      * `followers_url`: required, string, format: uri\n      * `following_url`: required, string\n      * `gists_url`: required, string\n      * `starred_url`: required, string\n      * `subscriptions_url`: required, string, format: uri\n      * `organizations_url`: required, string, format: uri\n      * `repos_url`: required, string, format: uri\n      * `events_url`: required, string\n      * `received_events_url`: required, string, format: uri\n      * `type`: required, string\n      * `site_admin`: required, boolean\n      * `starred_at`: string\n      * `user_view_type`: string\n    * `private`: required, boolean, default: `false`\n    * `html_url`: required, string, format: uri\n    * `description`: required, string or null\n    * `fork`: required, boolean\n    * `url`: required, string, format: uri\n    * `archive_url`: required, string\n    * `assignees_url`: required, string\n    * `blobs_url`: required, string\n    * `branches_url`: required, string\n    * `collaborators_url`: required, string\n    * `comments_url`: required, string\n    * `commits_url`: required, string\n    * `compare_url`: required, string\n    * `contents_url`: required, string\n    * `contributors_url`: required, string, format: uri\n    * `deployments_url`: required, string, format: uri\n    * `downloads_url`: required, string, format: uri\n    * `events_url`: required, string, format: uri\n    * `forks_url`: required, string, format: uri\n    * `git_commits_url`: required, string\n    * `git_refs_url`: required, string\n    * `git_tags_url`: required, string\n    * `git_url`: required, string\n    * `issue_comment_url`: required, string\n    * `issue_events_url`: required, string\n    * `issues_url`: required, string\n    * `keys_url`: required, string\n    * `labels_url`: required, string\n    * `languages_url`: required, string, format: uri\n    * `merges_url`: required, string, format: uri\n    * `milestones_url`: required, string\n    * `notifications_url`: required, string\n    * `pulls_url`: required, string\n    * `releases_url`: required, string\n    * `ssh_url`: required, string\n    * `stargazers_url`: required, string, format: uri\n    * `statuses_url`: required, string\n    * `subscribers_url`: required, string, format: uri\n    * `subscription_url`: required, string, format: uri\n    * `tags_url`: required, string, format: uri\n    * `teams_url`: required, string, format: uri\n    * `trees_url`: required, string\n    * `clone_url`: required, string\n    * `mirror_url`: required, string or null, format: uri\n    * `hooks_url`: required, string, format: uri\n    * `svn_url`: required, string, format: uri\n    * `homepage`: required, string or null, format: uri\n    * `language`: required, string or null\n    * `forks_count`: required, integer\n    * `stargazers_count`: required, integer\n    * `watchers_count`: required, integer\n    * `size`: required, integer\n    * `default_branch`: required, string\n    * `open_issues_count`: required, integer\n    * `is_template`: boolean, default: `false`\n    * `topics`: array of string\n    * `has_issues`: required, boolean, default: `true`\n    * `has_projects`: required, boolean, default: `true`\n    * `has_wiki`: required, boolean, default: `true`\n    * `has_pages`: required, boolean\n    * `has_discussions`: boolean, default: `false`\n    * `has_pull_requests`: boolean, default: `true`\n    * `pull_request_creation_policy`: string, enum: `all`, `collaborators_only`\n    * `archived`: required, boolean, default: `false`\n    * `disabled`: required, boolean\n    * `visibility`: string, default: `\"public\"`\n    * `pushed_at`: required, string or null, format: date-time\n    * `created_at`: required, string or null, format: date-time\n    * `updated_at`: required, string or null, format: date-time\n    * `allow_rebase_merge`: boolean, default: `true`\n    * `temp_clone_token`: string\n    * `allow_squash_merge`: boolean, default: `true`\n    * `allow_auto_merge`: boolean, default: `false`\n    * `delete_branch_on_merge`: boolean, default: `false`\n    * `allow_update_branch`: boolean, default: `false`\n    * `squash_merge_commit_title`: string, enum: `PR_TITLE`, `COMMIT_OR_PR_TITLE`\n    * `squash_merge_commit_message`: string, enum: `PR_BODY`, `COMMIT_MESSAGES`, `BLANK`\n    * `merge_commit_title`: string, enum: `PR_TITLE`, `MERGE_MESSAGE`\n    * `merge_commit_message`: string, enum: `PR_BODY`, `PR_TITLE`, `BLANK`\n    * `allow_merge_commit`: boolean, default: `true`\n    * `allow_forking`: boolean\n    * `web_commit_signoff_required`: boolean, default: `false`\n    * `open_issues`: required, integer\n    * `watchers`: required, integer\n    * `starred_at`: string\n    * `anonymous_access_enabled`: boolean\n    * `code_search_index_status`: object:\n      * `lexical_search_ok`: boolean\n      * `lexical_commit_sha`: string\n  * `sha`: required, string\n  * `user`: required, `Simple User`:\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n* `_links`: required, object:\n  * `comments`: required, `Link`:\n    * `href`: required, string\n  * `commits`: required, `Link`:\n    * `href`: required, string\n  * `statuses`: required, `Link`:\n    * `href`: required, string\n  * `html`: required, `Link`:\n    * `href`: required, string\n  * `issue`: required, `Link`:\n    * `href`: required, string\n  * `review_comments`: required, `Link`:\n    * `href`: required, string\n  * `review_comment`: required, `Link`:\n    * `href`: required, string\n  * `self`: required, `Link`:\n    * `href`: required, string\n* `author_association`: required, string, enum: `COLLABORATOR`, `CONTRIBUTOR`, `FIRST_TIMER`, `FIRST_TIME_CONTRIBUTOR`, `MANNEQUIN`, `MEMBER`, `NONE`, `OWNER`\n* `auto_merge`: required, `Auto merge`:\n  * `enabled_by`: required, `Simple User`:\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n  * `merge_method`: required, string, enum: `merge`, `squash`, `rebase`\n  * `commit_title`: required, string\n  * `commit_message`: required, string\n* `draft`: boolean\n* `merged`: required, boolean\n* `mergeable`: required, boolean or null\n* `rebaseable`: boolean or null\n* `mergeable_state`: required, string\n* `merged_by`: required, any of:\n  * **null**\n  * **Simple User**\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n* `comments`: required, integer\n* `review_comments`: required, integer\n* `maintainer_can_modify`: required, boolean\n* `commits`: required, integer\n* `additions`: required, integer\n* `deletions`: required, integer\n* `changed_files`: required, integer\n\n## Get a pull request\n\n```\nGET /repos/{owner}/{repo}/pulls/{pull_number}\n```\n\nDraft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.\nLists details of a pull request by providing its number.\nWhen you get, create, or edit a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the mergeable key. For more information, see \"Checking mergeability of pull requests\".\nThe value of the mergeable attribute can be true, false, or null. If the value is null, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-null value for the mergeable attribute in the response. If mergeable is true, then merge\\_commit\\_sha will be the SHA of the test merge commit.\nThe value of the merge\\_commit\\_sha attribute changes depending on the state of the pull request. Before merging a pull request, the merge\\_commit\\_sha attribute holds the SHA of the test merge commit. After merging a pull request, the merge\\_commit\\_sha attribute changes depending on how you merged the pull request:\n\nIf merged as a merge commit, merge\\_commit\\_sha represents the SHA of the merge commit.\nIf merged via a squash, merge\\_commit\\_sha represents the SHA of the squashed commit on the base branch.\nIf rebased, merge\\_commit\\_sha represents the commit that the base branch was updated to.\n\nPass the appropriate media type to fetch diff and patch formats.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.raw+json: Returns the raw markdown body. Response will include body. This is the default if you do not pass any specific media type.\napplication/vnd.github.text+json: Returns a text only representation of the markdown body. Response will include body\\_text.\napplication/vnd.github.html+json: Returns HTML rendered from the body's markdown. Response will include body\\_html.\napplication/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body\\_text, and body\\_html.\napplication/vnd.github.diff: For more information, see \"git-diff\" in the Git documentation. If a diff is corrupt, contact us through the GitHub Support portal. Include the repository name and pull request ID in your message.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\n\n### HTTP response status codes\n\n* **200** - Pass the appropriate media type to fetch diff and patch formats.\n\n* **304** - Not modified\n\n* **404** - Resource not found\n\n* **406** - Unacceptable\n\n* **500** - Internal Error\n\n* **503** - Service unavailable\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/pulls/PULL_NUMBER\n```\n\n**Response schema (Status: 200):**\n\nSame response schema as [Create a pull request](#create-a-pull-request).\n\n## Update a pull request\n\n```\nPATCH /repos/{owner}/{repo}/pulls/{pull_number}\n```\n\nDraft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.raw+json: Returns the raw markdown body. Response will include body. This is the default if you do not pass any specific media type.\napplication/vnd.github.text+json: Returns a text only representation of the markdown body. Response will include body\\_text.\napplication/vnd.github.html+json: Returns HTML rendered from the body's markdown. Response will include body\\_html.\napplication/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body\\_text, and body\\_html.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\n\n#### Body parameters\n\n* **`title`** (string)\n  The title of the pull request.\n\n* **`body`** (string)\n  The contents of the pull request.\n\n* **`state`** (string)\n  State of this Pull Request. Either open or closed.\n  Can be one of: `open`, `closed`\n\n* **`base`** (string)\n  The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository.\n\n* **`maintainer_can_modify`** (boolean)\n  Indicates whether maintainers can modify the pull request.\n\n### HTTP response status codes\n\n* **200** - OK\n\n* **403** - Forbidden\n\n* **422** - Validation failed, or the endpoint has been spammed.\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PATCH \\\n  https://api.github.com/repos/OWNER/REPO/pulls/PULL_NUMBER \\\n  -d '{\n  \"title\": \"new title\",\n  \"body\": \"updated body\",\n  \"state\": \"open\",\n  \"base\": \"master\"\n}'\n```\n\n**Response schema (Status: 200):**\n\nSame response schema as [Create a pull request](#create-a-pull-request).\n\n## Archive a pull request\n\n```\nPUT /repos/{owner}/{repo}/pulls/{pull_number}/archive\n```\n\nArchives a pull request. Closes, locks, and marks the pull request as archived.\nOnly repository admins can archive pull requests.\nArchived pull requests are hidden from non-admin users.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\n\n### HTTP response status codes\n\n* **204** - No Content\n\n* **403** - Forbidden\n\n* **404** - Resource not found\n\n* **422** - Validation failed, or the endpoint has been spammed.\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/repos/OWNER/REPO/pulls/PULL_NUMBER/archive\n```\n\n**Response schema (Status: 204):**\n\n## Unarchive a pull request\n\n```\nDELETE /repos/{owner}/{repo}/pulls/{pull_number}/archive\n```\n\nUnarchives a pull request. Removes the archived flag from the pull request.\nDoes not automatically reopen or unlock the pull request.\nOnly repository admins can unarchive pull requests.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\n\n### HTTP response status codes\n\n* **204** - No Content\n\n* **403** - Forbidden\n\n* **404** - Resource not found\n\n* **422** - Validation failed, or the endpoint has been spammed.\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/pulls/PULL_NUMBER/archive\n```\n\n**Response schema (Status: 204):**\n\n## List commits on a pull request\n\n```\nGET /repos/{owner}/{repo}/pulls/{pull_number}/commits\n```\n\nLists a maximum of 250 commits for a pull request. To receive a complete\ncommit list for pull requests with more than 250 commits, use the List commits\nendpoint.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.raw+json: Returns the raw markdown body. Response will include body. This is the default if you do not pass any specific media type.\napplication/vnd.github.text+json: Returns a text only representation of the markdown body. Response will include body\\_text.\napplication/vnd.github.html+json: Returns HTML rendered from the body's markdown. Response will include body\\_html.\napplication/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body\\_text, and body\\_html.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\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### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/pulls/PULL_NUMBER/commits\n```\n\n**Response schema (Status: 200):**\n\nArray of `Commit`:\n\n* `url`: required, string, format: uri\n* `sha`: required, string\n* `node_id`: required, string\n* `html_url`: required, string, format: uri\n* `comments_url`: required, string, format: uri\n* `commit`: required, object:\n  * `url`: required, string, format: uri\n  * `author`: required, any of:\n    * **null**\n    * **Git User**\n      * `name`: string\n      * `email`: string\n      * `date`: string, format: date-time\n  * `committer`: required, any of:\n    * **null**\n    * **Git User**\n      * `name`: string\n      * `email`: string\n      * `date`: string, format: date-time\n  * `message`: required, string\n  * `comment_count`: required, integer\n  * `tree`: required, object:\n    * `sha`: required, string\n    * `url`: required, string, format: uri\n  * `verification`: `Verification`:\n    * `verified`: required, boolean\n    * `reason`: required, string\n    * `payload`: required, string or null\n    * `signature`: required, string or null\n    * `verified_at`: required, string or null\n* `author`: required, one of:\n  * **Simple User**\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n  * **Empty Object**\n* `committer`: required, one of:\n  * **Simple User**\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n  * **Empty Object**\n* `parents`: required, array of objects:\n  * `sha`: required, string\n  * `url`: required, string, format: uri\n  * `html_url`: string, format: uri\n* `stats`: object:\n  * `additions`: integer\n  * `deletions`: integer\n  * `total`: integer\n* `files`: array of `Diff Entry`:\n  * `sha`: required, string or null\n  * `filename`: required, string\n  * `status`: required, string, enum: `added`, `removed`, `modified`, `renamed`, `copied`, `changed`, `unchanged`\n  * `additions`: required, integer\n  * `deletions`: required, integer\n  * `changes`: required, integer\n  * `blob_url`: required, string, format: uri\n  * `raw_url`: required, string, format: uri\n  * `contents_url`: required, string, format: uri\n  * `patch`: string\n  * `previous_filename`: string\n\n## List pull requests files\n\n```\nGET /repos/{owner}/{repo}/pulls/{pull_number}/files\n```\n\nLists the files in a specified pull request.\nNote\n\nResponses include a maximum of 3000 files. The paginated response returns 30 files per page by default.\n\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.raw+json: Returns the raw markdown body. Response will include body. This is the default if you do not pass any specific media type.\napplication/vnd.github.text+json: Returns a text only representation of the markdown body. Response will include body\\_text.\napplication/vnd.github.html+json: Returns HTML rendered from the body's markdown. Response will include body\\_html.\napplication/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body\\_text, and body\\_html.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\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* **422** - Validation failed, or the endpoint has been spammed.\n\n* **500** - Internal Error\n\n* **503** - Service unavailable\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/pulls/PULL_NUMBER/files\n```\n\n**Response schema (Status: 200):**\n\nArray of `Diff Entry`:\n\n* `sha`: required, string or null\n* `filename`: required, string\n* `status`: required, string, enum: `added`, `removed`, `modified`, `renamed`, `copied`, `changed`, `unchanged`\n* `additions`: required, integer\n* `deletions`: required, integer\n* `changes`: required, integer\n* `blob_url`: required, string, format: uri\n* `raw_url`: required, string, format: uri\n* `contents_url`: required, string, format: uri\n* `patch`: string\n* `previous_filename`: string\n\n## Check if a pull request has been merged\n\n```\nGET /repos/{owner}/{repo}/pulls/{pull_number}/merge\n```\n\nChecks if a pull request has been merged into the base branch. The HTTP status of the response indicates whether or not the pull request has been merged; the response body is empty.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\n\n### HTTP response status codes\n\n* **204** - Response if pull request has been merged\n\n* **404** - Not Found if pull request has not been merged\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/pulls/PULL_NUMBER/merge\n```\n\n**Response schema (Status: 204):**\n\n## Merge a pull request\n\n```\nPUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\n```\n\nMerges a pull request into the base branch.\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\" and \"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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\n\n#### Body parameters\n\n* **`commit_title`** (string)\n  Title for the automatic commit message.\n\n* **`commit_message`** (string)\n  Extra detail to append to automatic commit message.\n\n* **`sha`** (string)\n  SHA that pull request head must match to allow merge.\n\n* **`merge_method`** (string)\n  The merge method to use.\n  Can be one of: `merge`, `squash`, `rebase`\n\n### HTTP response status codes\n\n* **200** - if merge was successful\n\n* **403** - Forbidden\n\n* **404** - Resource not found\n\n* **405** - Method Not Allowed if merge cannot be performed\n\n* **409** - Conflict if sha was provided and pull request head did not match\n\n* **422** - Validation failed, or the endpoint has been spammed.\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/repos/OWNER/REPO/pulls/PULL_NUMBER/merge \\\n  -d '{\n  \"commit_title\": \"Expand enum\",\n  \"commit_message\": \"Add a new value to the merge_method enum\"\n}'\n```\n\n**Response schema (Status: 200):**\n\n* `sha`: required, string\n* `merged`: required, boolean\n* `message`: required, string\n\n## Update a pull request branch\n\n```\nPUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\n```\n\nUpdates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch.\nNote: If making a request on behalf of a GitHub App you must also have permissions to write the contents of the head repository.\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* **`pull_number`** (integer) (required)\n  The number that identifies the pull request.\n\n#### Body parameters\n\n* **`expected_head_sha`** (string)\n  The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a 422 Unprocessable Entity status. You can use the \"List commits\" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref.\n\n### HTTP response status codes\n\n* **202** - Accepted\n\n* **403** - Forbidden\n\n* **422** - Validation failed, or the endpoint has been spammed.\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/repos/OWNER/REPO/pulls/PULL_NUMBER/update-branch \\\n  -d '{\n  \"expected_head_sha\": \"6dcb09b5b57875f334f61aebed695e2e4193db5e\"\n}'\n```\n\n**Response schema (Status: 202):**\n\n* `message`: string\n* `url`: string"}