---
title: "List repositories starred by a user"
method: GET
path: "/users/{username}/starred"
tags: ["activity"]
---

# List repositories starred by a user

`GET /users/{username}/starred`

Lists repositories a user has starred.

If the specified user has a [private profile](https://docs.github.com/account-and-profile/concepts/personal-profile#private-profiles), this endpoint returns an empty list unless the request is authenticated as that user. A request authenticated as the specified user returns starred repositories visible to the token even if the token has no OAuth scopes.

This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."

- **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created.

## Path parameters

- `username` string, required

## Query parameters

- `sort` 'created' | 'updated'
- `direction` 'asc' | 'desc'
- `per_page` integer
- `page` integer

## Response `200`

Response

- union
  - StarredRepository[]
    - `starred_at` string, date-time, required
    - `repo` Repository, required — A repository on GitHub.
      - `id` integer, required — Unique identifier of the repository
      - `node_id` string, required
      - `name` string, required — The name of the repository.
      - `full_name` string, required
      - `license` NullableLicenseSimple, nullable, required — License Simple
        - `key` string, required
        - `name` string, required
        - `url` string, uri, nullable, required
        - `spdx_id` string, nullable, required
        - `node_id` string, required
        - `html_url` string, uri
      - `forks` integer, required
      - `permissions` object
        - `admin` boolean, required
        - `pull` boolean, required
        - `triage` boolean
        - `push` boolean, required
        - `maintain` boolean
      - `owner` SimpleUser, required — A GitHub user.
        - `name` string, nullable
        - `email` string, nullable
        - `login` string, required
        - `id` integer, required
        - `node_id` string, required
        - `avatar_url` string, uri, required
        - `gravatar_id` string, nullable, required
        - `url` string, uri, required
        - `html_url` string, uri, required
        - `followers_url` string, uri, required
        - `following_url` string, required
        - `gists_url` string, required
        - `starred_url` string, required
        - `subscriptions_url` string, uri, required
        - `organizations_url` string, uri, required
        - `repos_url` string, uri, required
        - `events_url` string, required
        - `received_events_url` string, uri, required
        - `type` string, required
        - `site_admin` boolean, required
        - `starred_at` string
        - `user_view_type` string
      - `private` boolean, required — Whether the repository is private or public.
      - `html_url` string, uri, required
      - `description` string, nullable, required
      - `fork` boolean, required
      - `url` string, uri, required
      - `archive_url` string, required
      - `assignees_url` string, required
      - `blobs_url` string, required
      - `branches_url` string, required
      - `collaborators_url` string, required
      - `comments_url` string, required
      - `commits_url` string, required
      - `compare_url` string, required
      - `contents_url` string, required
      - `contributors_url` string, uri, required
      - `deployments_url` string, uri, required
      - `downloads_url` string, uri, required
      - `events_url` string, uri, required
      - `forks_url` string, uri, required
      - `git_commits_url` string, required
      - `git_refs_url` string, required
      - `git_tags_url` string, required
      - `git_url` string, required
      - `issue_comment_url` string, required
      - `issue_events_url` string, required
      - `issues_url` string, required
      - `keys_url` string, required
      - `labels_url` string, required
      - `languages_url` string, uri, required
      - `merges_url` string, uri, required
      - `milestones_url` string, required
      - `notifications_url` string, required
      - `pulls_url` string, required
      - `releases_url` string, required
      - `ssh_url` string, required
      - `stargazers_url` string, uri, required
      - `statuses_url` string, required
      - `subscribers_url` string, uri, required
      - `subscription_url` string, uri, required
      - `tags_url` string, uri, required
      - `teams_url` string, uri, required
      - `trees_url` string, required
      - `clone_url` string, required
      - `mirror_url` string, uri, nullable, required
      - `hooks_url` string, uri, required
      - `svn_url` string, uri, required
      - `homepage` string, uri, nullable, required
      - `language` string, nullable, required
      - `forks_count` integer, required
      - `stargazers_count` integer, required
      - `watchers_count` integer, required
      - `size` integer, required — The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.
      - `default_branch` string, required — The default branch of the repository.
      - `open_issues_count` integer, required
      - `is_template` boolean — Whether this repository acts as a template that can be used to generate new repositories.
      - `topics` string[]
      - `has_issues` boolean, required — Whether issues are enabled.
      - `has_projects` boolean, required — Whether projects are enabled.
      - `has_wiki` boolean, required — Whether the wiki is enabled.
      - `has_pages` boolean, required
      - `has_downloads` boolean, required — Whether downloads are enabled.
      - `has_discussions` boolean — Whether discussions are enabled.
      - `has_pull_requests` boolean — Whether pull requests are enabled.
      - `pull_request_creation_policy` 'all' | 'collaborators_only' — The policy controlling who can create pull requests: all or collaborators_only.
      - `archived` boolean, required — Whether the repository is archived.
      - `disabled` boolean, required — Returns whether or not this repository disabled.
      - `visibility` string — The repository visibility: public, private, or internal.
      - `pushed_at` string, date-time, nullable, required
      - `created_at` string, date-time, nullable, required
      - `updated_at` string, date-time, nullable, required
      - `allow_rebase_merge` boolean — Whether to allow rebase merges for pull requests.
      - `temp_clone_token` string
      - `allow_squash_merge` boolean — Whether to allow squash merges for pull requests.
      - `allow_auto_merge` boolean — Whether to allow Auto-merge to be used on pull requests.
      - `delete_branch_on_merge` boolean — Whether to delete head branches when pull requests are merged
      - `allow_update_branch` boolean — Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.
      - `use_squash_pr_title_as_default` boolean — Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.
      - `squash_merge_commit_title` 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' — The default value for a squash merge commit title: - `PR_TITLE` - default to the pull request's title. - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).
      - `squash_merge_commit_message` 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK' — The default value for a squash merge commit message: - `PR_BODY` - default to the pull request's body. - `COMMIT_MESSAGES` - default to the branch's commit messages. - `BLANK` - default to a blank commit message.
      - `merge_commit_title` 'PR_TITLE' | 'MERGE_MESSAGE' — The default value for a merge commit title. - `PR_TITLE` - default to the pull request's title. - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).
      - `merge_commit_message` 'PR_BODY' | 'PR_TITLE' | 'BLANK' — The default value for a merge commit message. - `PR_TITLE` - default to the pull request's title. - `PR_BODY` - default to the pull request's body. - `BLANK` - default to a blank commit message.
      - `allow_merge_commit` boolean — Whether to allow merge commits for pull requests.
      - `allow_forking` boolean — Whether to allow forking this repo
      - `web_commit_signoff_required` boolean — Whether to require contributors to sign off on web-based commits
      - `open_issues` integer, required
      - `watchers` integer, required
      - `master_branch` string
      - `starred_at` string
      - `anonymous_access_enabled` boolean — Whether anonymous git access is enabled for this repository
      - `code_search_index_status` object — The status of the code search index for this repository
        - `lexical_search_ok` boolean
        - `lexical_commit_sha` string
  - Repository[]
    - `id` integer, required — Unique identifier of the repository
    - `node_id` string, required
    - `name` string, required — The name of the repository.
    - `full_name` string, required
    - `license` NullableLicenseSimple, nullable, required — License Simple
      - `key` string, required
      - `name` string, required
      - `url` string, uri, nullable, required
      - `spdx_id` string, nullable, required
      - `node_id` string, required
      - `html_url` string, uri
    - `forks` integer, required
    - `permissions` object
      - `admin` boolean, required
      - `pull` boolean, required
      - `triage` boolean
      - `push` boolean, required
      - `maintain` boolean
    - `owner` SimpleUser, required — A GitHub user.
      - `name` string, nullable
      - `email` string, nullable
      - `login` string, required
      - `id` integer, required
      - `node_id` string, required
      - `avatar_url` string, uri, required
      - `gravatar_id` string, nullable, required
      - `url` string, uri, required
      - `html_url` string, uri, required
      - `followers_url` string, uri, required
      - `following_url` string, required
      - `gists_url` string, required
      - `starred_url` string, required
      - `subscriptions_url` string, uri, required
      - `organizations_url` string, uri, required
      - `repos_url` string, uri, required
      - `events_url` string, required
      - `received_events_url` string, uri, required
      - `type` string, required
      - `site_admin` boolean, required
      - `starred_at` string
      - `user_view_type` string
    - `private` boolean, required — Whether the repository is private or public.
    - `html_url` string, uri, required
    - `description` string, nullable, required
    - `fork` boolean, required
    - `url` string, uri, required
    - `archive_url` string, required
    - `assignees_url` string, required
    - `blobs_url` string, required
    - `branches_url` string, required
    - `collaborators_url` string, required
    - `comments_url` string, required
    - `commits_url` string, required
    - `compare_url` string, required
    - `contents_url` string, required
    - `contributors_url` string, uri, required
    - `deployments_url` string, uri, required
    - `downloads_url` string, uri, required
    - `events_url` string, uri, required
    - `forks_url` string, uri, required
    - `git_commits_url` string, required
    - `git_refs_url` string, required
    - `git_tags_url` string, required
    - `git_url` string, required
    - `issue_comment_url` string, required
    - `issue_events_url` string, required
    - `issues_url` string, required
    - `keys_url` string, required
    - `labels_url` string, required
    - `languages_url` string, uri, required
    - `merges_url` string, uri, required
    - `milestones_url` string, required
    - `notifications_url` string, required
    - `pulls_url` string, required
    - `releases_url` string, required
    - `ssh_url` string, required
    - `stargazers_url` string, uri, required
    - `statuses_url` string, required
    - `subscribers_url` string, uri, required
    - `subscription_url` string, uri, required
    - `tags_url` string, uri, required
    - `teams_url` string, uri, required
    - `trees_url` string, required
    - `clone_url` string, required
    - `mirror_url` string, uri, nullable, required
    - `hooks_url` string, uri, required
    - `svn_url` string, uri, required
    - `homepage` string, uri, nullable, required
    - `language` string, nullable, required
    - `forks_count` integer, required
    - `stargazers_count` integer, required
    - `watchers_count` integer, required
    - `size` integer, required — The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.
    - `default_branch` string, required — The default branch of the repository.
    - `open_issues_count` integer, required
    - `is_template` boolean — Whether this repository acts as a template that can be used to generate new repositories.
    - `topics` string[]
    - `has_issues` boolean, required — Whether issues are enabled.
    - `has_projects` boolean, required — Whether projects are enabled.
    - `has_wiki` boolean, required — Whether the wiki is enabled.
    - `has_pages` boolean, required
    - `has_downloads` boolean, required — Whether downloads are enabled.
    - `has_discussions` boolean — Whether discussions are enabled.
    - `has_pull_requests` boolean — Whether pull requests are enabled.
    - `pull_request_creation_policy` 'all' | 'collaborators_only' — The policy controlling who can create pull requests: all or collaborators_only.
    - `archived` boolean, required — Whether the repository is archived.
    - `disabled` boolean, required — Returns whether or not this repository disabled.
    - `visibility` string — The repository visibility: public, private, or internal.
    - `pushed_at` string, date-time, nullable, required
    - `created_at` string, date-time, nullable, required
    - `updated_at` string, date-time, nullable, required
    - `allow_rebase_merge` boolean — Whether to allow rebase merges for pull requests.
    - `temp_clone_token` string
    - `allow_squash_merge` boolean — Whether to allow squash merges for pull requests.
    - `allow_auto_merge` boolean — Whether to allow Auto-merge to be used on pull requests.
    - `delete_branch_on_merge` boolean — Whether to delete head branches when pull requests are merged
    - `allow_update_branch` boolean — Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.
    - `use_squash_pr_title_as_default` boolean — Whether a squash merge commit can use the pull request title as default. **This property is closing down. Please use `squash_merge_commit_title` instead.
    - `squash_merge_commit_title` 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' — The default value for a squash merge commit title: - `PR_TITLE` - default to the pull request's title. - `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit).
    - `squash_merge_commit_message` 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK' — The default value for a squash merge commit message: - `PR_BODY` - default to the pull request's body. - `COMMIT_MESSAGES` - default to the branch's commit messages. - `BLANK` - default to a blank commit message.
    - `merge_commit_title` 'PR_TITLE' | 'MERGE_MESSAGE' — The default value for a merge commit title. - `PR_TITLE` - default to the pull request's title. - `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name).
    - `merge_commit_message` 'PR_BODY' | 'PR_TITLE' | 'BLANK' — The default value for a merge commit message. - `PR_TITLE` - default to the pull request's title. - `PR_BODY` - default to the pull request's body. - `BLANK` - default to a blank commit message.
    - `allow_merge_commit` boolean — Whether to allow merge commits for pull requests.
    - `allow_forking` boolean — Whether to allow forking this repo
    - `web_commit_signoff_required` boolean — Whether to require contributors to sign off on web-based commits
    - `open_issues` integer, required
    - `watchers` integer, required
    - `master_branch` string
    - `starred_at` string
    - `anonymous_access_enabled` boolean — Whether anonymous git access is enabled for this repository
    - `code_search_index_status` object — The status of the code search index for this repository
      - `lexical_search_ok` boolean
      - `lexical_commit_sha` string

## Changes

> 63 revisions in range; 1 not diffed.

- **2026-03-19** (2022-11-28) `9120d883b76e` — 2 info
  - added `subschema #1, subschema #2` to the response body `anyOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the response body `anyOf` list for the response status `200`
- **2026-03-11** (2022-11-28) `434db317b4c1` — 2 info
  - added `subschema #1, subschema #2` to the response body `anyOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the response body `anyOf` list for the response status `200`

[Change history](https://skmtc.dev/github/apis/rest/changes/users/:username/starred/get.md)

---

[API](https://skmtc.dev/github/apis/rest.md) · [All operations](https://skmtc.dev/github/apis/rest/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/github/rest/revisions/83c8dc621067/schema)
