{"meta":{"title":"별표 표시에 대한 REST API 엔드포인트","intro":"REST API를 사용하여 리포지토리를 책갈피에 추가합니다.","product":"REST API","breadcrumbs":[{"href":"/ko/rest","title":"REST API"},{"href":"/ko/rest/activity","title":"활동"},{"href":"/ko/rest/activity/starring","title":"주연"}],"documentType":"article"},"body":"# 별표 표시에 대한 REST API 엔드포인트\n\nREST API를 사용하여 리포지토리를 책갈피에 추가합니다.\n\n## 별표 기능 안내\n\nREST API를 사용하여 리포지토리에 별표 표시(북마크)할 수 있습니다. 별은 리포지토리 옆에 표시되어 대략적인 수준의 관심을 표시합니다. 별은 알림 또는 작업 피드에 영향을 미치지 않습니다. 자세한 내용은 [스타 표시된 리포지토리 저장](/ko/get-started/exploring-projects-on-github/saving-repositories-with-stars)을(를) 참조하세요.\n\n### 별표 표시 vs. 감시\n\n2012년 8월에 GitHub에서 [감시 방식을 변경](https://github.com/blog/1204-notifications-stars)했습니다. 일부 API 클라이언트 애플리케이션에서 여전히 이 데이터에 액세스하기 위해 원래 \"watcher\" 엔드포인트를 사용할 수 있습니다. 이제 대신 \"star\" 엔드포인트를 사용해야 합니다(아래 설명 참조). 자세한 내용은 [관찰을 위한 REST API 엔드포인트](/ko/rest/activity/watching) 및 [변경 로그 게시물](https://developer.github.com/changes/2012-09-05-watcher-api/)을 참조하세요.\n\nREST API, `watchers`, `watchers_count`, `stargazers_count`의 응답에서 리포지토리를 별표 표시한 사용자 수에 해당하는 반면 `subscribers_count`는 감시자 수에 해당합니다.\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 stargazers\n\n```\nGET /repos/{owner}/{repo}/stargazers\n```\n\nLists the people that have starred the repository.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.star+json: Includes a timestamp of when the star was created.\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* **`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### Code examples\n\n#### Example 1: Status Code 200\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/stargazers\n```\n\n**Response schema (Status: 200):**\n\n* any of:\n  * **array**\n  * **array**\n\n#### Example 2: Status Code 200\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/repos/OWNER/REPO/stargazers\n```\n\n**Response schema (Status: 200):**\n\n* any of:\n  * **array**\n  * **array**\n\n## List repositories starred by the authenticated user\n\n```\nGET /user/starred\n```\n\nLists repositories the authenticated user has starred.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.star+json: Includes a timestamp of when the star was created.\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* **`sort`** (string)\n  The property to sort the results by. created means when the repository was starred. updated means when the repository was last pushed to.\n  Default: `created`\n  Can be one of: `created`, `updated`\n\n* **`direction`** (string)\n  The direction to sort the results by.\n  Default: `desc`\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* **401** - Requires authentication\n\n* **403** - Forbidden\n\n### Code examples\n\n#### Example 1: Status Code 200\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/user/starred\n```\n\n**Response schema (Status: 200):**\n\nArray of `Repository`:\n\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\n#### Example 2: Status Code 200\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/user/starred\n```\n\n**Response schema (Status: 200):**\n\nArray of `Starred Repository`:\n\n* `starred_at`: required, string, format: date-time\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\n## Check if a repository is starred by the authenticated user\n\n```\nGET /user/starred/{owner}/{repo}\n```\n\nWhether the authenticated user has starred the 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### HTTP response status codes\n\n* **204** - Response if this repository is starred by you\n\n* **304** - Not modified\n\n* **401** - Requires authentication\n\n* **403** - Forbidden\n\n* **404** - Not Found if this repository is not starred by you\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/user/starred/OWNER/REPO\n```\n\n**Response schema (Status: 204):**\n\n## Star a repository for the authenticated user\n\n```\nPUT /user/starred/{owner}/{repo}\n```\n\nNote that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP method.\"\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### HTTP response status codes\n\n* **204** - No Content\n\n* **304** - Not modified\n\n* **401** - Requires authentication\n\n* **403** - Forbidden\n\n* **404** - Resource not found\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PUT \\\n  https://api.github.com/user/starred/OWNER/REPO\n```\n\n**Response schema (Status: 204):**\n\n## Unstar a repository for the authenticated user\n\n```\nDELETE /user/starred/{owner}/{repo}\n```\n\nUnstar a repository that the authenticated user has previously starred.\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### HTTP response status codes\n\n* **204** - No Content\n\n* **304** - Not modified\n\n* **401** - Requires authentication\n\n* **403** - Forbidden\n\n* **404** - Resource not found\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X DELETE \\\n  https://api.github.com/user/starred/OWNER/REPO\n```\n\n**Response schema (Status: 204):**\n\n## List repositories starred by a user\n\n```\nGET /users/{username}/starred\n```\n\nLists repositories a user has starred.\nThis endpoint supports the following custom media types. For more information, see \"Media types.\"\n\napplication/vnd.github.star+json: Includes a timestamp of when the star was created.\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* **`username`** (string) (required)\n  The handle for the GitHub user account.\n\n* **`sort`** (string)\n  The property to sort the results by. created means when the repository was starred. updated means when the repository was last pushed to.\n  Default: `created`\n  Can be one of: `created`, `updated`\n\n* **`direction`** (string)\n  The direction to sort the results by.\n  Default: `desc`\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### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  https://api.github.com/users/USERNAME/starred\n```\n\n**Response schema (Status: 200):**\n\nSame response schema as [List stargazers](#list-stargazers)."}