---
title: "Search repositories"
method: GET
path: "/search/repositories"
tags: ["search"]
---

# Search repositories

`GET /search/repositories`

Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/enterprise-server@3.6/rest/guides/using-pagination-in-the-rest-api).

When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/enterprise-server@3.6/rest/search/search#text-match-metadata).

For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this:

`q=tetris+language:assembly&sort=stars&order=desc`

This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results.

## Query parameters

- `q` string, required
- `sort` 'stars' | 'forks' | 'help-wanted-issues' | 'updated'
- `order` 'desc' | 'asc'
- `per_page` integer
- `page` integer

## Response `200`

Response

- object
  - `total_count` integer, required
  - `incomplete_results` boolean, required
  - `items` RepoSearchResultItem[], required
    - `id` integer, required
    - `node_id` string, required
    - `name` string, required
    - `full_name` string, required
    - `owner` NullableSimpleUser, nullable, 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
    - `private` boolean, required
    - `html_url` string, uri, required
    - `description` string, nullable, required
    - `fork` boolean, required
    - `url` string, uri, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `pushed_at` string, date-time, required
    - `homepage` string, uri, nullable, required
    - `size` integer, required
    - `stargazers_count` integer, required
    - `watchers_count` integer, required
    - `language` string, nullable, required
    - `forks_count` integer, required
    - `open_issues_count` integer, required
    - `master_branch` string
    - `default_branch` string, required
    - `score` number, required
    - `forks_url` string, uri, required
    - `keys_url` string, required
    - `collaborators_url` string, required
    - `teams_url` string, uri, required
    - `hooks_url` string, uri, required
    - `issue_events_url` string, required
    - `events_url` string, uri, required
    - `assignees_url` string, required
    - `branches_url` string, required
    - `tags_url` string, uri, required
    - `blobs_url` string, required
    - `git_tags_url` string, required
    - `git_refs_url` string, required
    - `trees_url` string, required
    - `statuses_url` string, required
    - `languages_url` string, uri, required
    - `stargazers_url` string, uri, required
    - `contributors_url` string, uri, required
    - `subscribers_url` string, uri, required
    - `subscription_url` string, uri, required
    - `commits_url` string, required
    - `git_commits_url` string, required
    - `comments_url` string, required
    - `issue_comment_url` string, required
    - `contents_url` string, required
    - `compare_url` string, required
    - `merges_url` string, uri, required
    - `archive_url` string, required
    - `downloads_url` string, uri, required
    - `issues_url` string, required
    - `pulls_url` string, required
    - `milestones_url` string, required
    - `notifications_url` string, required
    - `labels_url` string, required
    - `releases_url` string, required
    - `deployments_url` string, uri, required
    - `git_url` string, required
    - `ssh_url` string, required
    - `clone_url` string, required
    - `svn_url` string, uri, required
    - `forks` integer, required
    - `open_issues` integer, required
    - `watchers` integer, required
    - `topics` string[]
    - `mirror_url` string, uri, nullable, required
    - `has_issues` boolean, required
    - `has_projects` boolean, required
    - `has_pages` boolean, required
    - `has_wiki` boolean, required
    - `has_downloads` boolean, required
    - `archived` boolean, required
    - `disabled` boolean, required — Returns whether or not this repository disabled.
    - `visibility` string — The repository visibility: public, private, or internal.
    - `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
    - `permissions` object
      - `admin` boolean, required
      - `maintain` boolean
      - `push` boolean, required
      - `triage` boolean
      - `pull` boolean, required
    - `text_matches` object[]
      - `object_url` string
      - `object_type` string, nullable
      - `property` string
      - `fragment` string
      - `matches` object[]
        - `text` string
        - `indices` integer[]
    - `temp_clone_token` string
    - `allow_merge_commit` boolean
    - `allow_squash_merge` boolean
    - `allow_rebase_merge` boolean
    - `allow_auto_merge` boolean
    - `delete_branch_on_merge` boolean
    - `allow_forking` boolean
    - `is_template` boolean
    - `web_commit_signoff_required` boolean

## Other responses

- `304` — Not modified
- `422` — Validation failed, or the endpoint has been spammed.
- `503` — Service unavailable

---

[API](https://skmtc.net/github/apis/github-v3-rest-api-5.md) · [All operations](https://skmtc.net/github/apis/github-v3-rest-api-5/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/github/github-v3-rest-api-5/versions/50ae54440071/schema)
