# GitHub Repositories & Users Search

> GitHub search scraper: find repositories or users with GitHub search syntax. Get stars, forks, language, topics and licence. No login, no emails.

URL: https://cliqtomedia.com/actors/github-search/

Category: Developer & website monitoring · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

Search GitHub with its own search syntax. Get one row per repository or per user. You need no GitHub account or token.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `repositories` in What to search. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Search GitHub repositories or GitHub users with GitHub's own search syntax and get clean rows: stars, forks, language, topics, licence and last push for repositories, or name, company, location, followers and public repos for users. No login and no token needed.

- Repositories mode: one row per repository with `fullName`, `url`, `description`, `stars`, `forks`, `language`, `topics`, `license`, `pushedAt` and more.
- Users mode: one row per user or organisation with `login`, `url`, `name`, `company`, `location`, `followers`, `publicRepos` and more. Profile details come from the public GitHub profile.

### Good for

- Find the most-starred repositories for a topic or language, for example `web scraper language:python` sorted by `stars`.
- Track tools in your niche: repositories with a topic, licence or recent activity (`pushed:>2026-01-01`).
- Build a list of public developer profiles by location and language, for example `location:berlin language:rust`, sorted by followers.

### Not a good fit

- No code search, issues, pull requests, commits or README text. Only repositories and users.
- No emails and no private data. Only public fields that GitHub shows to anyone.
- GitHub returns at most 1,000 results per query. To get more, split the query, for example by `created:` date ranges or by `language:`.
- Without a token, GitHub gives about 60 full profile lookups per hour to the shared Apify IP. Bigger users runs still finish, but some profiles are partial or unavailable (see Limits).

## Price

Prices will be shown after release.

## Questions

### Do I need a GitHub account or token?

No. It works without a login. A token only gives you your own GitHub quota.

### Does it return email addresses?

No. It never reads the email field. It also removes emails from bio, blog and company text.

### Can I search code, issues or pull requests?

No. It searches repositories and users only.

### How many results can I get?

GitHub returns up to 1,000 results for one query. Split the query by date or language to get more.

### How fresh is the data?

Each row is read from GitHub at run time; `fetchedAt` shows when. Star and follower counts change all the time.

### Is the result complete?

You get what GitHub search returns for your query, up to 1,000 results. GitHub can report `incomplete_results` when its search times out; the summary then shows a warning.

### Can I use the data for outreach?

Use profile data only within GitHub's Acceptable Use Policies and your local privacy law. Do not use it for spam or resell personal information.

## Data fields

- `type` (string): Row type: repository or user.
- `query` (string): The search query that returned this row.
- `rank` (integer): Position in GitHub's result order for this query and sort (1 = first).
- `id` (integer): GitHub numeric ID of the repository or account.
- `fullName` (string): Repository owner/name, e.g. apify/crawlee.
- `name` (string): Repository name (repositories) or display name from the profile (users); null if not set.
- `owner` (string): Login of the repository owner.
- `ownerType` (string): Owner account type: User or Organization.
- `url` (string): Public github.com page of the repository or account.
- `description` (string): Repository description; null if empty.
- `homepage` (string): Repository homepage URL set by the owner; null if empty.
- `stars` (integer): Stargazer count. 0 means none; null means GitHub did not return it.
- `forks` (integer): Fork count.
- `openIssues` (integer): Open issues plus open pull requests, as GitHub counts them.
- `watchers` (integer): Watchers as reported by the search API (equals stars on GitHub).
- `language` (string): Primary language detected by GitHub; null if none.
- `topics` (array): Repository topics; empty list if none.
- `license` (string): SPDX licence ID such as MIT or Apache-2.0; null when no licence or GitHub could not classify it.
- `licenseName` (string): Licence name as GitHub shows it, including "Other".
- `isFork` (boolean): true if the repository is a fork.
- `isArchived` (boolean): true if the repository is archived (read-only).
- `isTemplate` (boolean): true if the repository is a template.
- `defaultBranch` (string): Default branch name.
- `sizeKb` (integer): Repository size in KB as reported by GitHub.
- `createdAt` (string): When the repository or account was created (ISO 8601). Users: null when details came from web search.
- `updatedAt` (string): Last metadata update (ISO 8601).
- `pushedAt` (string): Last push to any branch (ISO 8601) — the best signal of recent activity.
- `login` (string): Account login (users).
- `accountType` (string): User or Organization.
- `avatarUrl` (string): Avatar image URL.
- `company` (string): Company field from the public profile, free text such as "@github". null when not set or when details came from web search.
- `location` (string): Location field from the public profile, free text.
- `bio` (string): Profile bio; email addresses are replaced with [email removed].
- `blog` (string): Website link from the profile; null when empty or an email address.
- `twitterUsername` (string): X/Twitter username from the profile.
- `followers` (integer): Follower count.
- `following` (integer): Number of accounts followed (API details only).
- `publicRepos` (integer): Public repository count.
- `publicGists` (integer): Public gist count (API details only).
- `hireable` (boolean): true if the user marked themselves available for hire; null if not set.

## Input settings

- `mode` (string): Search repositories or user/organisation accounts.
- `query` (string, required): Same syntax as the GitHub search box. Repositories: <code>apify actor</code>, <code>language:python stars:&gt;1000</code>, <code>topic:scraper pushed:&gt;2026-01-01</code>, <code>org:apify</code>. Users: <code>location:berlin language:rust</code>, <code>followers:&gt;500 type:user</code>, <code>type:org location:paris</code>. Max 256 characters.
- `sort` (string): best-match is GitHub's default relevance order. Repositories: stars, forks, updated, help-wanted-issues. Users: followers, repositories, joined. A sort that does not fit the mode is rejected.
- `order` (string): Direction for the chosen sort. Ignored for best match.
- `maxItems` (integer): How many results to save, 1–1,000. GitHub serves at most the first 1,000 matches of any query; split a larger search into narrower queries (for example by created: or stars: ranges).
- `includeUserDetails` (boolean): Users mode: add name, company, location, bio, followers and public repo counts to each user. Without a token, GitHub allows 60 profile lookups per hour per IP; after that the Actor uses github.com user search, which fills name, location, bio, followers and repo counts but not company (detailsStatus "partial"). Turn off for the fastest login-only list.
- `githubToken` (string): Optional personal access token with no scopes (read-only public data). Raises GitHub limits to 30 searches per minute and 5,000 profile lookups per hour, so every user gets full details. Stored encrypted, never logged or saved to output.

## Step by step on Apify

1. Open the Input tab.
2. Keep What to search (`mode`) as `repositories`.
3. Keep the prefilled Search query (`query`) `apify actor`, or type your own query.
4. Keep Max results (`maxItems`) at the prefilled `10`.
5. Click Start.
6. Open the Repositories view of the Dataset.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Find popular projects for a topic | `mode=repositories`, `query`, `sort=stars` | Repository | `fullName`, `stars`, `language`, `topics` | Export to CSV or Google Sheets |
| Watch recent activity in a niche | `query` with `pushed:>YYYY-MM-DD`, `sort=updated` | Repository | `fullName`, `pushedAt`, `isArchived` | Schedule the run and compare Datasets |
| Build a list of public developer profiles | `mode=users`, `query` with `location:` and `language:`, `sort=followers` | User | `login`, `name`, `location`, `company`, `followers` | Your CRM or spreadsheet |

## Tips

- Add a date like pushed:>2026-01-01 to find active repositories.
- GitHub gives up to 1,000 results per query. Split big topics by language or date.
- Add your own token if you search many users. It gives you your own quota.

## Limits



- A failed run (for example a broken query) costs only the start.
- Every saved user row is charged once, whatever its `detailsStatus`.
- Set Maximum cost per run in the run options to cap the cost. The Actor stops when the next row would go over it and saves what fits.
- The default run timeout is 300 seconds. The Actor stops searching and saving at about 240 seconds so that the run ends cleanly.
- `maxItems` is 1–1000. Users mode was tested up to 500 rows in one run without a token.
- GitHub sometimes asks the shared Apify IP to slow down (a "secondary rate limit"). The Actor then waits about a minute and continues. Your cost does not change: you pay per saved row, not per second.
- Without a token, GitHub allows about 10 searches per minute (100 results each) and about 60 full profile lookups per hour for the shared IP. GitHub documents higher limits for requests made with a token.

## Sample result

```json
{
  "type": "repository",
  "query": "apify actor",
  "rank": 5,
  "id": 117851913,
  "fullName": "apify/apify-cli",
  "name": "apify-cli",
  "owner": "apify",
  "ownerType": "Organization",
  "url": "https://github.com/apify/apify-cli",
  "description": "Apify command-line interface helps you create, develop, build and run Apify Actors, and manage the Apify cloud platform.",
  "homepage": "https://docs.apify.com/cli",
  "stars": 259,
  "forks": 69,
  "openIssues": 176,
  "watchers": 259,
  "language": "TypeScript",
  "topics": ["apify", "command-line", "hacktoberfest", "headless-chrome", "puppeteer", "serveless"],
  "license": "Apache-2.0",
  "licenseName": "Apache License 2.0",
  "isFork": false,
  "isArchived": false,
  "isTemplate": false,
  "defaultBranch": "master",
  "sizeKb": 20339,
  "createdAt": "2018-01-17T15:05:58Z",
  "updatedAt": "2026-10-14T22:40:34Z",
  "pushedAt": "2026-10-16T20:23:39Z",
  "source": "GitHub REST API (api.github.com)",
  "fetchedAt": "2026-10-17T11:42:29.711Z"
}
```

## Similar tools

- [GitHub Releases Monitor & Scraper](https://cliqtomedia.com/actors/github-releases-monitor-scraper/)
- [Link Route Audit — Bulk HTTP Status & Redirects](https://cliqtomedia.com/actors/bulk-url-status-redirect-checker/)
- [Software End-of-Life Checker](https://cliqtomedia.com/actors/software-end-of-life-checker/)
- [Dependency Vulnerability Scanner (OSV)](https://cliqtomedia.com/actors/osv-dependency-vulnerability-scanner/)
- [OpenAPI Catalog & Breaking Change Detector](https://cliqtomedia.com/actors/openapi-spec-catalog-diff/)
- [SSL Certificate Checker: Expiry, Chain & CT, No Login](https://cliqtomedia.com/actors/ssl-certificate-inspector/)
