In this guide

Search Public Repositories

Find repositories by name, language, stars or topic.

Action referenceRead

What this action does #

First, connect GitHub in Services. Then open Actions → + → GitHub and choose Search Public Repositories.

More about this action

The query is GitHub's own search syntax, so qualifiers do the real work: `language:swift`, `stars:>500`, `topic:shortcuts`, `user:apple`, `pushed:>2026-01-01`. Words with no qualifier are matched against the name, description and README.

Two limits are worth knowing before an action is built on this. Search allows 30 requests a minute, far less than the rest of the API, so a multi-page fetch here is expensive. And no search returns more than 1,000 results however many pages are requested — narrow the query rather than paging further.

Sorting is by best match unless Sort By is set; setting Direction alone does nothing.

Inputs to fill in #

Open an input to choose its value. Keep a fixed value with Text, receive it from Shortcuts, ask when the action runs, or use an Earlier Step. Read how input sources work.

Query

RequiredText

Keywords plus qualifiers.

Example value (replace with your own):
shortcuts language:swift stars:>100

Sort By

OptionalChoice

Omit for best match.

Choices: stars, forks, help-wanted-issues, updated

Direction

OptionalChoice

Ignored unless Sort By is set.

Choices: desc, asc

Default: desc

Page Size

OptionalWhole number

1–100. GitHub silently clamps anything larger.

Example value (replace with your own):
100

Page

OptionalWhole number

Starts at 1. Bind this to a Shortcuts slot if you want to page from a Repeat loop rather than fetching several pages in one go.

Example value (replace with your own):
1

What comes back #

In the action editor, open Output → Returned Value to choose fields for your shortcut. These are the response fields described by the app; a service may omit an optional field or return an empty list. JSON File contains the full response.

Returned fieldTypeMeaning
total_countintegerMatches found, capped for paging at 1,000.
incomplete_resultsbooleanTrue when the search timed out and the list is partial.
itemsarrayA list of values.
items[].idintegerWhole-number value.
items[].namestringWithout the owner.
items[].full_namestringowner/repo.
items[].descriptionstringNull when unset.
items[].html_urlstringThe repository page.
items[].clone_urlstringHTTPS clone URL.
items[].ssh_urlstringText value.
items[].homepagestringText value.
items[].privatebooleanTrue or false.
items[].visibilitystringpublic, private or internal.
items[].forkbooleanTrue or false.
items[].archivedbooleanArchived repositories are read-only.
items[].disabledbooleanTrue or false.
items[].default_branchstringUsually main.
items[].languagestringThe most-used language, or null.
items[].topicsarrayTopic strings.
items[].sizeintegerKilobytes.
items[].stargazers_countintegerWhole-number value.
items[].watchers_countintegerA copy of the star count, not watchers.
items[].forks_countintegerWhole-number value.
items[].open_issues_countintegerOpen issues plus open pull requests.
items[].has_issuesbooleanFalse means issues are turned off.
items[].created_atstringISO 8601.
items[].updated_atstringText value.
items[].pushed_atstringLast push to any branch.
items[].ownerobjectA group of named values.
items[].owner.loginstringUsername.
items[].owner.idintegerWhole-number value.
items[].owner.html_urlstringTheir profile page.
items[].owner.avatar_urlstringText value.
items[].owner.typestringUser, Organization or Bot.
items[].licenseobjectNull when the repository has no licence file.
items[].license.keystringmit, apache-2.0, …
items[].license.namestringText value.
items[].license.spdx_idstringText value.
items[].permissionsobjectWhat this token may do here.
items[].permissions.adminbooleanTrue or false.
items[].permissions.pushbooleanWrite access.
items[].permissions.pullbooleanRead access.
items[].scorenumberRelevance, only meaningful within one search.

Run it from Shortcuts #

  1. Give the action a recognizable name and tap Save.
  2. In Apple Shortcuts, add Shortcutify’s Execute Action and select the saved action.
  3. Supply any Param or File slots you bound in the inputs, then run the shortcut.

If the result is unexpected, open Logs in Shortcutify, select the run, and inspect this step’s inputs and response.

This action supports multiple pages of results. Open its Fetch setting to retrieve more pages when one page is not enough. Each page adds a service request.

Advanced reference #

Request, permissions, and identifiers

Request: GET https://api.github.com/search/repositories

Action identifier: github.repos.search.v1

No additional per-action permissions are declared in the app’s catalog. The integration’s connection and account access rules still apply.

InputRequest keyLocation
Queryqquery
Sort Bysortquery
Directionorderquery
Page Sizeper_pagequery
Pagepagequery

GitHub API reference